Server IP : 192.64.118.117 / Your IP : 3.148.113.167 Web Server : LiteSpeed System : Linux premium56.web-hosting.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64 User : thecgapy ( 1160) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/thecgapy/mobilecreationz.com/wp-content/plugins/leads/classes/ |
Upload File : |
<?php if (!class_exists('Inbound_Metaboxes_Leads')) { class Inbound_Metaboxes_Leads { static $tabs; static $active_tab; static $mapped_fields; static $full_contact; static $page_views; static $conversions; static $form_submissions; static $custom_event_data; static $comments; static $searches; static $custom_events; static $lead_metadata; /** * Initialize Class */ public function __construct() { self::load_hooks(); } /** * Load hooks and filters */ public static function load_hooks() { /* setup class variables */ add_action('admin_head', array(__CLASS__, 'setup_vars')); /* Hide metaboxes */ add_filter('default_hidden_meta_boxes', array(__CLASS__, 'hide_metaboxes'), 10, 2); /* Add Metaboxes */ add_action('add_meta_boxes', array(__CLASS__, 'define_metaboxes')); /* Add Quick Stats */ add_action('wpleads_display_quick_stat', array(__CLASS__, 'display_quick_stat_page_views')); add_action('wpleads_display_quick_stat', array(__CLASS__, 'display_quick_stat_form_submissions')); add_action('wpleads_display_quick_stat', array(__CLASS__, 'display_quick_stat_last_activity'), 100 ); /* Add header metabox */ add_action('edit_form_after_title', array(__CLASS__, 'add_header')); /* Add Save Actions */ add_action('save_post', array(__CLASS__, 'save_data')); /* Enqueue JS */ add_action('admin_enqueue_scripts', array(__CLASS__, 'enqueue_admin_scripts')); add_action('admin_print_footer_scripts', array(__CLASS__, 'print_admin_scripts')); } /** * Setup static variables */ public static function setup_vars() { $screen = get_current_screen(); if (!isset($screen) || $screen->id != 'wp-lead' || !isset($_GET['post'])) { return; } /* load lead meta data and make it available */ self::$lead_metadata = get_post_meta($_GET['post']); foreach (self::$lead_metadata as $key => $array) { self::$lead_metadata[$key] = $array[0]; } /* create first name and last name if not present */ self::$lead_metadata['wpleads_first_name'] = (isset(self::$lead_metadata['wpleads_first_name'])) ? self::$lead_metadata['wpleads_first_name'] : ''; self::$lead_metadata['wpleads_last_name'] = (isset(self::$lead_metadata['wpleads_last_name'])) ? self::$lead_metadata['wpleads_last_name']: ''; } /** * Hide unused metaboxes */ public static function hide_metaboxes($hidden, $screen) { global $post; if (isset($post) && $post->post_type != 'wp-lead') { return $hidden; } $hidden = array('postexcerpt', 'slugdiv', 'postcustom', 'trackbacksdiv', 'lead-timelinestatusdiv', 'lead-timelinesdiv', 'authordiv', 'revisionsdiv', 'wpseo_meta', 'wp-advertisement-dropper-post', 'postdivrich'); return $hidden; } /** * */ public static function define_metaboxes() { global $post, $wp_meta_boxes; if ($post->post_type != 'wp-lead') { return; } self::$form_submissions = Inbound_Events::get_form_submissions($post->ID); self::$custom_events = Inbound_Events::get_custom_event_data_by('lead_id', array('lead_id' => $post->ID)); /* Show quick stats */ add_meta_box('wplead-quick-stats-metabox', __("Lead Stats", 'inbound-pro'), array(__CLASS__, 'display_quick_stats'), 'wp-lead', 'side', 'high'); /* Show IP Address & Geolocation metabox */ add_meta_box('lp-ip-address-sidebar-preview', __('Last Conversion Activity Location', 'inbound-pro'), array(__CLASS__, 'display_geolocation'), 'wp-lead', 'side', 'low'); /* Main metabox */ add_meta_box('wplead_metabox_main', // $id __('Lead Overview', 'inbound-pro'), array(__CLASS__, 'display_main'), // $callback 'wp-lead', // $page 'normal', // $context 'high' // $priority ); add_meta_box('wplead_metabox_referal', // $id __('Source of Lead', 'inbound-pro'), array(__CLASS__, 'display_sources'), 'wp-lead', // $page 'normal', // $context 'high' // $priority ); /*change the lead list metabox callback to a new function*/ $wp_meta_boxes['wp-lead']['side']['core']['wplead_list_categorydiv']['callback'] = array(__CLASS__, 'display_lead_list_metabox'); } /** * Renders a custom metabox for leads * The base function is post_categories_meta_box */ public static function display_lead_list_metabox($post, $box){ $defaults = array( 'taxonomy' => 'category' ); if ( ! isset( $box['args'] ) || ! is_array( $box['args'] ) ) { $args = array(); } else { $args = $box['args']; } $r = wp_parse_args( $args, $defaults ); $tax_name = esc_attr( $r['taxonomy'] ); $taxonomy = get_taxonomy( $r['taxonomy'] ); /*get the lists waiting for double optin from the lead's meta*/ $double_optin_lists = get_post_meta($post->ID, 'double_optin_lists', true); /*get the lists that the lead is in*/ $applied_terms = wp_get_post_terms($post->ID, 'wplead_list_category'); /**Update the lead's array of lists that still need confirmation if a list has been manually confirmed**/ /*if there are double optin lists*/ if(!empty($double_optin_lists) && is_array($double_optin_lists)){ foreach($applied_terms as $applied_term){ if(in_array($applied_term->term_id, $double_optin_lists)){ $index = array_search($applied_term->term_id, $double_optin_lists); unset($double_optin_lists[$index]); } } /**if there are still lists awaiting double optin confirmation after the "waiting" meta listing has been updated**/ if(!empty($double_optin_lists)){ /*update the "waiting" meta listing with the remaining lists*/ update_post_meta($post->ID, 'double_optin_lists', array_values($double_optin_lists)); }else{ /**if there are no lists awaiting double optin confirmation**/ /*get the double optin waiting list id*/ if(!defined('INBOUND_PRO_CURRENT_VERSION')){ $double_optin_list_id = get_option('list-double-optin-list-id', ''); }else{ $settings = Inbound_Options_API::get_option('inbound-pro', 'settings', array()); $double_optin_list_id = $settings['leads']['list-double-optin-list-id']; } /*remove the meta listing for double optin*/ delete_post_meta($post->ID, 'double_optin_lists'); /*remove this lead from the double optin list*/ wp_remove_object_terms($post->ID, $double_optin_list_id, 'wplead_list_category'); /*update the lead status*/ update_post_meta( $post->ID , 'wp_lead_status' , 'read'); ?> <script> /**update the status selector for the initial page reload**/ jQuery(document).ready(function(){ jQuery('#wp_lead_status').val('read'); }); </script> <?php } } ?> <div id="taxonomy-<?php echo $tax_name; ?>" class="categorydiv"> <ul id="<?php echo $tax_name; ?>-tabs" class="category-tabs"> <li class="tabs"><a href="#<?php echo $tax_name; ?>-all"><?php echo $taxonomy->labels->all_items; ?></a></li> <li class="hide-if-no-js"><a href="#<?php echo $tax_name; ?>-pop"><?php _e( 'Most Used' ); ?></a></li> <?php if(!empty($double_optin_lists) && is_array($double_optin_lists)){ ?> <li class="hide-if-no-js"><a href="#<?php echo $tax_name; ?>-need-double-optin"><?php _e( 'Unconfirmed' ); ?></a></li> <?php } ?> </ul> <div id="<?php echo $tax_name; ?>-pop" class="tabs-panel" style="display: none;"> <ul id="<?php echo $tax_name; ?>checklist-pop" class="categorychecklist form-no-clear" > <?php $popular_ids = wp_popular_terms_checklist( $tax_name ); ?> </ul> </div> <div id="<?php echo $tax_name; ?>-all" class="tabs-panel"> <?php $name = ( $tax_name == 'category' ) ? 'post_category' : 'tax_input[' . $tax_name . ']'; echo "<input type='hidden' name='{$name}[]' value='0' />"; // Allows for an empty term set to be sent. 0 is an invalid Term ID and will be ignored by empty() checks. ?> <ul id="<?php echo $tax_name; ?>checklist" data-wp-lists="list:<?php echo $tax_name; ?>" class="categorychecklist form-no-clear"> <?php wp_terms_checklist( $post->ID, array( 'taxonomy' => $tax_name, 'popular_cats' => $popular_ids ) ); ?> </ul> </div> <?php if(!empty($double_optin_lists) && is_array($double_optin_lists)){ ?> <div id="<?php echo $tax_name; ?>-need-double-optin" class="tabs-panel" style="display: none;"> <ul id="<?php echo $tax_name; ?>checklist-need-double-optin" class="categorychecklist form-no-clear" > <?php foreach($double_optin_lists as $list_id){ ?> <li id="wplead_list_category-<?php echo $list_id; ?>"> <input value="<?php echo $list_id; ?>" type="checkbox" name="tax_input[wplead_list_category][]" id="in-wplead_list_category-<?php echo $list_id; ?>" > <label class="selectit" for="in-wplead_list_category-<?php echo $list_id; ?>" ><?php echo get_term($list_id, 'wplead_list_category')->name; ?></label> </li> <?php } ?> </ul> </div> <?php } ?> <?php if(!empty($double_optin_lists) && is_array($double_optin_lists)){ ?> <div id="<?php echo $tax_name; ?>-need-double-optin" class="tabs-panel" style="display: none;"> </div> <?php } ?> <?php if ( current_user_can( $taxonomy->cap->edit_terms ) ) : ?> <div id="<?php echo $tax_name; ?>-adder" class="wp-hidden-children"> <a id="<?php echo $tax_name; ?>-add-toggle" href="#<?php echo $tax_name; ?>-add" class="hide-if-no-js taxonomy-add-new"> <?php /* translators: %s: add new taxonomy label */ printf( __( '+ %s' ), $taxonomy->labels->add_new_item ); ?> </a> <p id="<?php echo $tax_name; ?>-add" class="category-add wp-hidden-child"> <label class="screen-reader-text" for="new<?php echo $tax_name; ?>"><?php echo $taxonomy->labels->add_new_item; ?></label> <input type="text" name="new<?php echo $tax_name; ?>" id="new<?php echo $tax_name; ?>" class="form-required form-input-tip" value="<?php echo esc_attr( $taxonomy->labels->new_item_name ); ?>" aria-required="true"/> <label class="screen-reader-text" for="new<?php echo $tax_name; ?>_parent"> <?php echo $taxonomy->labels->parent_item_colon; ?> </label> <?php /*commented out to avoid possible conflicts*/ /* $parent_dropdown_args = array( 'taxonomy' => $tax_name, 'hide_empty' => 0, 'name' => 'new' . $tax_name . '_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '— ' . $taxonomy->labels->parent_item . ' —', ); */ /** * Filters the arguments for the taxonomy parent dropdown on the Post Edit page. * * @since 4.4.0 * * @param array $parent_dropdown_args { * Optional. Array of arguments to generate parent dropdown. * * @type string $taxonomy Name of the taxonomy to retrieve. * @type bool $hide_if_empty True to skip generating markup if no * categories are found. Default 0. * @type string $name Value for the 'name' attribute * of the select element. * Default "new{$tax_name}_parent". * @type string $orderby Which column to use for ordering * terms. Default 'name'. * @type bool|int $hierarchical Whether to traverse the taxonomy * hierarchy. Default 1. * @type string $show_option_none Text to display for the "none" option. * Default "— {$parent} —", * where `$parent` is 'parent_item' * taxonomy label. * } */ /*$parent_dropdown_args = apply_filters( 'post_edit_category_parent_dropdown_args', $parent_dropdown_args ); wp_dropdown_categories( $parent_dropdown_args );*/ ?> <input type="button" id="<?php echo $tax_name; ?>-add-submit" data-wp-lists="add:<?php echo $tax_name; ?>checklist:<?php echo $tax_name; ?>-add" class="button category-add-submit" value="<?php echo esc_attr( $taxonomy->labels->add_new_item ); ?>" /> <?php wp_nonce_field( 'add-' . $tax_name, '_ajax_nonce-add-' . $tax_name, false ); ?> <span id="<?php echo $tax_name; ?>-ajax-response"></span> </p> </div> <?php endif; ?> </div> <?php } /** * Adds header menu items */ public static function add_header() { global $post; $statuses = Inbound_Leads::get_lead_statuses(); if (empty ($post) || 'wp-lead' !== get_post_type($GLOBALS['post'])) { return; } echo "<div id='lead-top-area'>"; echo "<div id='lead-header'><h1>" . self::$lead_metadata['wpleads_first_name'] . ' ' . self::$lead_metadata['wpleads_last_name'] . "</h1></div>"; ?> <!-- REWRITE FOR FILTERS --> <div id='lead-status'> <label for="wp_lead_status"><?php _e('Lead Status:', 'inbound-pro'); ?></label> <?php echo '<select name="wp_lead_status" id="wp_lead_status" class="lead_status_dropdown">'; foreach ($statuses as $status) { $selected = $status['key'] == (self::$lead_metadata['wp_lead_status']) ? ' selected ' : ''; echo '<option value="' . $status['key'] . '" data-color="' . $status['color'] . '" ' . $selected . '> ' . $status['label'] . '</option>'; } echo "</select>"; ?> </div> <span id="current-lead-status" style="display:none;"><?php echo self::$lead_metadata['wp_lead_status']; ?></span> </div> <?php } /** * Save meta data */ public static function save_data($post_id) { global $post; if (!isset($post) || $post->post_type != 'wp-lead') { return; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } /* lead status */ if (isset($_POST['wp_lead_status'])) { update_post_meta($post_id, 'wp_lead_status', sanitize_text_field($_POST['wp_lead_status'])); } /* Loop through mappable fields and save data */ $Leads_Field_Map = new Leads_Field_Map(); $wpleads_user_fields = $Leads_Field_Map->get_lead_fields(); foreach ($wpleads_user_fields as $key => $field) { $old = get_post_meta($post_id, $field['key'], true); if (isset($_POST[$field['key']])) { $new = $_POST[$field['key']]; if (is_array($new)) { $new = implode(',', $new); update_post_meta($post_id, $field['key'], array($new)); } else if (isset($new) && $new != $old) { update_post_meta($post_id, $field['key'], $new); if ($field['key'] == 'wpleads_email_address') { $args = array('ID' => $post_id, 'post_title' => $new); wp_update_post($args); } } else if ('' == $new && $old) { delete_post_meta($post_id, $field['key'], $old); } } } } /* Enqueue Admin Scripts */ public static function enqueue_admin_scripts($hook) { global $post; $post_type = isset($post) ? get_post_type($post) : null; if ($post_type != 'wp-lead') { return; } $screen = get_current_screen(); if ($screen->id == 'wp-lead') { wp_enqueue_script('wpleads-edit', WPL_URLPATH . 'assets/js/wpl.admin.edit.js', array('jquery')); wp_enqueue_script('tinysort', WPL_URLPATH . 'assets/js/jquery.tinysort.js', array('jquery')); wp_enqueue_script('tag-cloud', WPL_URLPATH . 'assets/js/jquery.tagcloud.js', array('jquery')); wp_localize_script('wpleads-edit', 'wp_lead_map', array('ajaxurl' => admin_url('admin-ajax.php'), 'wp_lead_map_nonce' => wp_create_nonce('wp-lead-map-nonce'))); if (isset($_GET['small_lead_preview'])) { wp_enqueue_style('wpleads-popup-css', WPL_URLPATH . 'assets/css/wpl.popup.css'); wp_enqueue_script('wpleads-popup-js', WPL_URLPATH . 'assets/js/wpl.popup.js', array('jquery')); } wp_enqueue_style('wpleads-admin-edit-css', WPL_URLPATH . 'assets/css/wpl.edit-lead.css'); //Tool tip js wp_enqueue_script('jquery-qtip', WPL_URLPATH . 'assets/js/jquery-qtip/jquery.qtip.min.js'); wp_enqueue_script('wpl-load-qtip', WPL_URLPATH . 'assets/js/jquery-qtip/load.qtip.js'); wp_enqueue_style('qtip-css', WPL_URLPATH . 'assets/css/jquery.qtip.min.css'); //Tool tip css wp_enqueue_style('wpleads-admin-css', WPL_URLPATH . 'assets/css/wpl.admin.css'); } if ($hook == 'post-new.php') { wp_enqueue_script('wpleads-create-new-lead', WPL_URLPATH . 'assets/js/wpl.add-new.js'); } if ($hook == 'post.php') { if (isset($_GET['small_lead_preview'])) { wp_enqueue_style('wpleads-popup-css', WPL_URLPATH . 'assets/css/wpl.popup.css'); } wp_enqueue_style('wpleads-admin-edit-css', WPL_URLPATH . 'assets/css/wpl.edit-lead.css'); } } /* Print Admin Scripts */ public static function print_admin_scripts() { global $post; $screen = get_current_screen(); if ($screen->base != 'post' && $screen->post_type != 'wp-lead') { return; } } /** * Gets time difference between two date time strings */ public static function get_time_diff($date1, $date2) { $time_diff = array(); $diff = abs(strtotime($date2) - strtotime($date1)); //echo $diff; //exit; $years = floor($diff / (365 * 60 * 60 * 24)); $months = floor(($diff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24)); $days = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24)); $hours = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24 - $days * 60 * 60 * 24) / (60 * 60)); $minutes = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24 - $days * 60 * 60 * 24 - $hours * 60 * 60) / 60); $seconds = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24 - $days * 60 * 60 * 24 - $hours * 60 * 60 - $minutes * 60)); $time_diff['years'] = $years; $time_diff['y-text'] = ($years > 1) ? __('Years', 'inbound-pro') : __('Year', 'inbound-pro'); $time_diff['months'] = $months; $time_diff['m-text'] = ($months > 1) ? __('Months', 'inbound-pro') : __('Month', 'inbound-pro'); $time_diff['days'] = $days; $time_diff['d-text'] = ($days > 1) ? __('Days', 'inbound-pro') : __('Day', 'inbound-pro'); $time_diff['hours'] = $hours; $time_diff['h-text'] = ($hours > 1) ? __('Hours', 'inbound-pro') : __('Hour', 'inbound-pro'); $time_diff['minutes'] = $minutes; $time_diff['mm-text'] = ($minutes > 1) ? __('Minutes', 'inbound-pro') : __('Minute', 'inbound-pro'); $time_diff['seconds'] = $seconds; $time_diff['sec-text'] = ($seconds > 1) ? __('Seconds', 'inbound-pro') : __('Second', 'inbound-pro'); return $time_diff; } /** * Get details from full contact */ public static function get_full_contact_details() { global $post; self::$full_contact = false; $email = self::$mapped_fields['wpleads_email_address']['value']; $api_key = Leads_Settings::get_setting('wpl-main-extra-lead-data', ""); if (!$api_key) { return; } $social_data = get_post_meta($post->ID, 'social_data', true); $person_obj = $social_data; /* check for social data */ if (!$social_data) { $args = array('sslverify' => false); $api_call = "https://api.fullcontact.com/v2/person.json?email=" . urlencode($email) . "&apiKey=$api_key"; $response = wp_remote_get($api_call, $args); /* error. bail. */ if (is_wp_error($response)) { return; } $status_code = $response['response']['code']; /* Check for API limit */ if ($status_code === 200) { // if api still good. parse return values $person_obj = json_decode($response['body'], true); $image = (isset($person_obj['photos'][0]['url'])) ? $person_obj['photos'][0]['url'] : ""; update_post_meta($post->ID, 'lead_main_image', $image); update_post_meta($post->ID, 'social_data', $person_obj); } elseif ($status_code === 404) { $person_obj = array(); // return empty on failure } else { $person_obj = array(); // return empty on failure } } self::$full_contact = $person_obj; } /** * Setups main metabox tab navigation */ public static function setup_tabs() { $tabs['wpleads_lead_tab_main'] = array( 'id' => 'wpleads_lead_tab_main', 'label' => __('Profile', 'inbound-pro') ); $tabs['wpleads_lead_tab_activity'] = array( 'id' => 'wpleads_lead_tab_activity', 'label' => __('Activity', 'inbound-pro') ); $tabs['wpleads_lead_tab_conversions'] = array( 'id' => 'wpleads_lead_tab_conversions', 'label' => __('Conversion Paths', 'inbound-pro') ); /* $tabs['wpleads_lead_tab_raw_form_data'] = array( 'id' => 'wpleads_lead_tab_raw_form_data', 'label' => __('WordPress Meta Fields', 'inbound-pro') );*/ self::$tabs = apply_filters('wpl_lead_tabs', $tabs); /* get open tab */ self::$active_tab = 'wpleads_lead_tab_main'; if (isset($_REQUEST['open-tab'])) { self::$active_tab = sanitize_text_field($_REQUEST['open-tab']); } /* Set hidden input for active tab */ echo "<input type='hidden' name='open-tab' id='id-open-tab' value='" . self::$active_tab . "'>"; /* Print JS controls */ self::navigation_js($tabs); } /** * Generates JS for Tab Switching */ public static function navigation_js($tabs) { if (isset($_GET['tab'])) { $default_id = $_GET['tab']; } else { $default_id = 'main'; } ?> <script type='text/javascript'> jQuery(document).ready(function () { jQuery('.wpl-nav-tab').live('click', function () { var this_id = this.id.replace('tabs-', ''); jQuery('.lead-profile-section').css('display', 'none'); jQuery('#' + this_id).css('display', 'block'); jQuery('.wpl-nav-tab').removeClass('nav-tab-special-active'); jQuery('.wpl-nav-tab').addClass('nav-tab-special-inactive'); jQuery('#tabs-' + this_id).addClass('nav-tab-special-active'); jQuery('#id-open-tab').val(this_id); }); <?php if ( $default_id == 'main' ) { ?> jQuery('.lead-profile-section').hide(); jQuery('#wpleads_lead_tab_main').show(); <?php } ?> }); </script> <?php } /** * Gets mapped field data for this lead provide and sets it into static variable */ public static function get_mapped_fields() { global $post; $fields = array(); $mapped_fields = Leads_Field_Map::get_lead_fields(); $mapped_fields = Leads_Field_Map::prioritize_lead_fields($mapped_fields); foreach ($mapped_fields as $key => $field) { if (isset($field['enable']) && $field['enable'] == 'off') { continue; } $fields[$field['key']] = $field; /* Get related meta value if exists */ $fields[$field['key']]['value'] = get_post_meta($post->ID, $mapped_fields[$key]['key'], true); /* Get default mapped value if meta value does not exists */ if (!$fields[$field['key']]['value'] && isset($mapped_fields[$key]['default'])) { $fields[$field['key']]['value'] = $mapped_fields[$key]['default']; } elseif (!isset($fields[$field['key']]['value'])) { $fields[$field['key']]['value'] = ""; } } self::$mapped_fields = $fields; } /** * Display Nav Tabs */ public static function display_tabs() { ?> <h2 id="lead-tabs" class="nav-tab-wrapper"> <?php foreach (self::$tabs as $key => $array) { ?> <a id='tabs-<?php echo $array['id']; ?>' class="wpl-nav-tab nav-tab nav-tab-special<?php echo self::$active_tab == $array['id'] ? '-active' : '-inactive'; ?>"><?php echo $array['label']; ?></a> <?php } ?> </h2> <?php } /** * Display Quick Stats Metabox */ public static function display_quick_stats() { global $post; ?> <div> <div class="inside" style='margin-left:-8px;text-align:center;'> <div id="quick-stats-box"> <?php do_action('wpleads_before_quickstats', $post); ?> <div class="leads_stat_box"> <div class="leads_stat_box_heading"> <div class="label_1"><?php _e('Action Breakdown' , 'inbound-pro'); ?> </div> <div class="label_2"><?php _e('Count' , 'inbound-pro'); ?></div> <div class="clearfix"></div> </div> <?php do_action('wpleads_display_quick_stat', $post); ?> <!-- Display's the data--> </div> <div id="time-since-last-visit"></div> <div id="lead-score"></div> <!-- Custom Before Quick stats and After Hook here for custom fields shown --> </div> <?php do_action('wpleads_after_quickstats'); // Custom Action for additional data after quick stats ?> </div> </div> <?php } /** * Adds Page Views to Quick Stat Box */ public static function display_quick_stat_page_views($post) { self::$page_views = Inbound_Events::get_page_views($post->ID); ?> <div class="quick-stat-label"> <div class="label_1"><?php _e('Page Views', 'inbound-pro') ?>:</div> <div class="label_2"> <?php if (class_exists('Inbound_Analytics')) { ?> <a href='<?php echo admin_url('index.php?action=inbound_generate_report&class=Inbound_Visitor_Impressions_Report&range=10000&lead_id='.$post->ID.'&title='.__('Page Views','inbound-pro') .'&tb_hide_nav=true&TB_iframe=true&width=1000&height=600'); ?>' class='thickbox inbound-thickbox' title="<?php echo sprintf(__('past %s days','inbound-pro') , 10000 ); ?>"> <?php echo count(self::$page_views); ?> </a> <?php } else { echo count(self::$page_views); } ?> </div> <div class="clearfix"></div> </div> <?php } /** * Adds Inbound Form Submissions to Quick Stat Box */ public static function display_quick_stat_form_submissions($post) { ?> <div class="quick-stat-label"> <div class="label_1"><?php echo Inbound_Events::get_event_label('inbound_form_submission'); ?>:</div> <div class="label_2"> <?php if (class_exists('Inbound_Analytics')) { ?> <a href='<?php echo admin_url('index.php?action=inbound_generate_report&lead_id='.$post->ID.'&class=Inbound_Event_Report&event_name=inbound_form_submission&range=10000&title='. urlencode(Inbound_Events::get_event_label('inbound_form_submission')).'&tb_hide_nav=true&TB_iframe=true&width=1000&height=600'); ?>' class='thickbox inbound-thickbox'> <?php echo count(self::$form_submissions); ?> </a> <?php } else { echo count(self::$form_submissions); } ?> </div> <div class="clearfix"></div> </div> <?php } /** * Adds Latest Activity to Quick Stat Box */ public static function display_quick_stat_last_activity($post) { /* skip stat if none available */ if (!self::$custom_events) { return; } /* get time of last activity */ $datetime = Inbound_Events::get_last_activity($post->ID, 'any'); /* skip if no recorded activity */ if (!$datetime) { return; } $time = current_time('timestamp', 0); // Current wordpress time from settings $wordpress_date_time = date("Y-m-d G:i:s T", $time); $today = new DateTime($wordpress_date_time); $today = $today->format('Y-m-d G:i:s T'); $date_obj = self::get_time_diff($datetime, $today); $wordpress_timezone = get_option('gmt_offset'); $years = $date_obj['years']; $months = $date_obj['months']; $days = $date_obj['days']; $hours = $date_obj['hours']; $minutes = $date_obj['minutes']; $year_text = $date_obj['y-text']; $month_text = $date_obj['m-text']; $day_text = $date_obj['d-text']; $hours_text = $date_obj['h-text']; $minute_text = $date_obj['mm-text']; ?> <div id="last_touch_point"><?php _e('Time Since Last Activity', 'inbound-pro'); ?> <span id="touch-point"> <?php echo "<span class='touchpoint-year'><span class='touchpoint-value'>" . $years . "</span> " . $year_text . " </span><span class='touchpoint-month'><span class='touchpoint-value'>" . $months . "</span> " . $month_text . " </span><span class='touchpoint-day'><span class='touchpoint-value'>" . $days . "</span> " . $day_text . " </span><span class='touchpoint-hour'><span class='touchpoint-value'>" . $hours . "</span> " . $hours_text . " </span><span class='touchpoint-minute'><span class='touchpoint-value'>" . $minutes . "</span> " . $minute_text . "</span>"; ?> </span> </div> <?php } /** * Display information about last visit given ip address */ public static function display_geolocation() { global $post; $ip_addresses = get_post_meta($post->ID, 'wpleads_ip_address', true); $array = json_decode(stripslashes($ip_addresses), true); if (is_array($array)) { $ip_address = key($array); if (isset($array[$ip_address]['geodata'])) { $geodata = $array[$ip_address]['geodata']; } } else { $array = array(); $ip_address = $ip_addresses; } if ($ip_address === "127.0.0.1") { echo "<h3>" . __('Last conversion detected from localhost', 'inbound-pro') . "</h3>"; return; } if (!isset($geodata[$ip_address]) && $ip_address) { $geodata = wp_remote_get('http://www.geoplugin.net/php.gp?ip=' . $ip_address, array('timeout' => '2')); if (!is_wp_error($geodata)) { $geodata = unserialize($geodata['body']); $array[$ip_address]['geodata'] = $geodata; update_post_meta($post->ID, 'wpleads_ip_address', json_encode($ip_addresses)); } } if (!isset($geodata) || !is_array($geodata) || is_wp_error($geodata) || !$ip_address) { echo "<h2>" . __('No Geo data collected', 'inbound-pro') . "</h2>"; return; } $latitude = (isset($geodata['geoplugin_latitude'])) ? $geodata['geoplugin_latitude'] : 'NA'; $longitude = (isset($geodata['geoplugin_longitude'])) ? $geodata['geoplugin_longitude'] : 'NA'; ?> <div> <div class="inside" style='margin-left:-8px;text-align:left;'> <div id='last-conversion-box'> <div id='lead-geo-data-area'> <?php if (is_array($geodata)) { unset($geodata['geoplugin_status']); unset($geodata['geoplugin_credit']); unset($geodata['geoplugin_request']); unset($geodata['geoplugin_currencyConverter']); unset($geodata['geoplugin_currencySymbol_UTF8']); unset($geodata['geoplugin_currencySymbol']); unset($geodata['geoplugin_dmaCode']); if (isset($geodata['geoplugin_city']) && $geodata['geoplugin_city'] != "") { echo "<div class='lead-geo-field'><span class='geo-label'>" . __('City:', 'inbound-pro') . "</span>" . $geodata['geoplugin_city'] . "</div>"; } if (isset($geodata['geoplugin_regionName']) && $geodata['geoplugin_regionName'] != "") { echo "<div class='lead-geo-field'><span class='geo-label'>" . __('State:', 'inbound-pro') . "</span>" . $geodata['geoplugin_regionName'] . "</div>"; } if (isset($geodata['geoplugin_areaCode']) && $geodata['geoplugin_areaCode'] != "") { echo "<div class='lead-geo-field'><span class='geo-label'>" . __('Area Code:', 'inbound-pro') . "</span>" . $geodata['geoplugin_areaCode'] . "</div>"; } if (isset($geodata['geoplugin_countryName']) && $geodata['geoplugin_countryName'] != "") { echo "<div class='lead-geo-field'><span class='geo-label'>" . __('Country:', 'inbound-pro') . "</span>" . $geodata['geoplugin_countryName'] . "</div>"; } if (isset($geodata['geoplugin_regionName']) && $geodata['geoplugin_regionName'] != "") { echo "<div class='lead-geo-field'><span class='geo-label'>" . __('IP Address:', 'inbound-pro') . "</span>" . $ip_address . "</div>"; } if (($geodata['geoplugin_latitude'] != 0) && ($geodata['geoplugin_longitude'] != 0)) { echo '<a class="maps-link" href="https://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=' . $latitude . ',' . $longitude . '&z=12" target="_blank">' . __('View Map:', 'inbound-pro') . '</a>'; echo '<div id="lead-google-map"> <iframe width="278" height="276" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&source=s_q&hl=en&q=' . $latitude . ',' . $longitude . '&aq=&output=embed&z=11"></iframe> </div>'; } } else { echo "<h2>" . __('No Geo data collected', 'inbound-pro') . "</h2>"; } ?> </div> </div> </div> </div> <?php } public static function display_lead_profile() { self::display_profile_image(); echo '<div id="leads-right-col">'; do_action('wpleads_before_main_fields'); self::render_settings(); echo "<table id='full-contact-table'>"; self::display_full_contact_details(self::$full_contact, 'work'); // Display extra data work history self::display_full_contact_details(self::$full_contact, 'social'); // Display extra social /* Display more Full Contact data */ self::display_full_contact_details(self::$full_contact, 'website'); self::display_full_contact_details(self::$full_contact, 'demographics'); self::display_full_contact_details(self::$full_contact, 'topics'); echo "</table>"; /* Display tag cloud */ self::display_tag_cloud(); /* Hook for displaying content after mapped fields */ echo "<div id='wpl-after-main-fields'>"; do_action('wpleads_after_main_fields'); // Custom Action for additional info above Lead list echo "</div>"; echo '</div>'; } /** * Displayed mapped field data */ public static function display_profile_image() { global $post; $extra_image = get_post_meta($post->ID, 'lead_main_image', true); $size = 150; $size_small = 36; $url = site_url(); $default = WPL_URLPATH . '/assets/images/gravatar_default_150.jpg'; $gravatar = "//www.gravatar.com/avatar/" . md5(strtolower(trim(self::$mapped_fields['wpleads_email_address']['value']))) . "?d=" . urlencode($default) . "&s=" . $size; $gravatar2 = "//www.gravatar.com/avatar/" . md5(strtolower(trim(self::$mapped_fields['wpleads_email_address']['value']))) . "?d=" . urlencode($default) . "&s=" . $size_small; if (in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1'))) { $gravatar = $default; $gravatar2 = WPL_URLPATH . '/assets/images/gravatar_default_32-2x.png'; } // If social picture exists use it if (preg_match("/gravatar_default_/", $gravatar) && $extra_image != "") { $gravatar = $extra_image; $gravatar2 = $extra_image; } ?> <div id="left-sidebar"> <div id="lead_image"> <div id="lead_image_container"> <?php if (preg_match("/gravatar_default_/", $gravatar) && $extra_image != "") { $gravatar = $extra_image; } echo '<img src="' . $gravatar . '" id="lead-main-image" title="' . self::$mapped_fields['wpleads_first_name']['value'] . ' ' . self::$mapped_fields['wpleads_last_name']['value'] . '"></a>'; ?> </div> <?php /* Display WP USer edit link */ $wp_user_id = get_post_meta($post->ID, 'wpleads_wordpress_user_id', true); if (isset($wp_user_id) && ($wp_user_id != 1)) { $edit_user_link = get_edit_user_link($wp_user_id); //echo '<a target="_blank" href="'.$edit_user_link.'">'. __( 'Edit User Profile' , 'inbound-pro' ) .'</a>'; } ?> </div> <?php $user = get_user_by( 'email', self::$lead_metadata['wpleads_email_address'] ); if (isset($user->ID)) { ?> <div id='show-edit-user'> <a class='button button-secondary' href="<?php echo get_edit_user_link($user->ID); ?>"><?php _e('Edit User Profile', 'inbound-pro'); ?></a> </div> <?php } ?> <div id='toggle-lead-fields'> <a class='button button-primary' id='show-hidden-fields'> <?php _e('Show Empty Fields', 'inbound-pro'); ?> </a> </div> </div> <style type="text/css">.icon32-posts-wp-lead { background-image: url("<?php echo $gravatar2;?>") !important; }</style> <?php } /** * Loads Activity UI */ public static function display_lead_activity() { /* do not render legacy activity tab if Inbound Analytics is on */ if (class_exists('Inbound_Analytics')) { return; } echo '<div id="activity-data-display">'; self::activity_navigation(); self::activity_form_submissions(); self::activity_comments(); //self::activity_searches(); self::activity_pageviews(); do_action('wpleads_after_activity_log'); echo '</div>'; } /** * Displays conversion funnel data */ public static function display_lead_conversion_paths() { global $post, $wpdb; /* do not render legacy activity tab if Inbound Analytics is on */ if (class_exists('Inbound_Analytics')) { return; } self::get_conversions( $post->ID ); if (!self::$conversions) { return; } foreach (self::$conversions as $key => $value) { /* get funnel */ $value['funnel'] = json_decode($value['funnel'],true); if (!$value['funnel']) { continue; } $date = date_create($value['datetime']); /* now add action event */ switch($value['event_name']) { case 'inbound_cta_click': $event_label = __('Call to Action Click','inbound-pro'); $event_id = ($value['cta_id']) ? $value['cta_id'] : __('undefined', 'inbound-pro' ); $event_source_title = ($value['form_id']) ? get_the_title($value['form_id']) : __('undefined', 'inbound-pro' ); break; default: $event_label = __('Form Submission','inbound-pro'); $event_id = ($value['form_id']) ? $value['form_id'] : __('undefined', 'inbound-pro' ); $event_source_title = ($value['form_id']) ? get_the_title($value['form_id']) : __('undefined', 'inbound-pro' ); break; } /* start funnel */ ?> <div id="conversion-tracking" class="wpleads-conversion-tracking-table"> <div class="conversion-tracking-header"> <div class="path-left"> <h2><?php echo $event_label; ?> - <span class="shown_date"><?php echo date_format($date, 'F jS, Y \a\t g:i:s a');?></span></h2> </div> <div class="path-right"> <span class="toggle-conversion-list">-</span> </div> </div> <div class="session-item-holder"> <?php /* show source */ ?> <div class="lp-page-view-item "> <div class="path-left"> <span class="marker"> <i class="fa fa-map-marker" aria-hidden="true"></i> </span> <?php echo __( 'Source' , 'inbound-pro'); ?> </div> <div class="path-right"> <?php echo $value['source']; ?> </div> </div> <?php $count = 1; foreach($value['funnel'] as $page_id) { if (!$page_id) { continue; } if (strpos($page_id, 'cat_') !== false) { $cat_id = str_replace("cat_", "", $page_id); $page_title = get_cat_name($cat_id) . " Category Page"; $tag_names = ''; $page_permalink = get_category_link($cat_id); } elseif (strpos($page_id, 'tag_') !== false) { $tag_id = str_replace("tag_", "", $page_id); $tag = get_tag($tag_id); $page_title = $tag->name . " - Tag Page"; $tag_names = ''; $page_permalink = get_tag_link($tag_id); } else { $page_title = get_the_title($page_id); $page_title = ($page_id != 0) ? $page_title : 'N/A'; $page_permalink = get_permalink($page_id); } $page_title_short = strlen($page_title) > 65 ? substr($page_title, 0, 65) . "..." : $page_title; ?> <div class="lp-page-view-item "> <div class="path-left"> <span class="marker"> <?php echo $count; ?> </span> <a href='<?php echo $page_permalink; ?>' title='<?php echo $page_title; ?>' target='_blank'><?php echo $page_title_short; ?></a> </div> <div class="path-right"> <span class="time-on-page"> </span> </div> </div> <?php $count++; } ?> <div class="lp-page-view-item "> <div class="path-left"> <span class="marker"> <i class="fa fa-crosshairs" aria-hidden="true"></i> </span> <?php echo $event_label; ?> (<?php echo $value['event_name'];?>) </div> <div class="path-right"> <?php echo $event_source_title; ?> </div> </div> <?php ?> </div> </div> <?php } } /** * Displays main lead content containers */ public static function display_sources() { global $post; /* Get Referrals */ $referrals = Inbound_Events::get_lead_sources($post->ID); if (count($referrals)>0) { foreach ($referrals as $key => $value) { $date = date_create($value['datetime']); /* skip internal sources */ if (strstr($value['source'],site_url()) || !$value['source']) { //continue; } ?> <div class="wpl-raw-data-tr"> <span class="wpl-raw-data-td-value"> <?php if (isset($value['source'])) { $src = ($value['source'] === "Direct Traffic") ? __("Direct Traffic",'inbound-pro') : $value['source']; echo $src . ' on ' . date_format($date, 'F jS, Y \a\t g:ia (l)'); } ?> </span> </div> <?php } } else { echo "<h2>" .__('No Referral Data Detected.' , 'inbound-pro' ) . "</h2>"; } } /** * Display raw data logs */ public static function display_raw_logs() { global $post; ?> <div id="raw-data-display"> </div> <?php } /** * Gets data from full contact social object */ public static function display_full_contact_details($values, $type) { $person_obj = $values; //print_r($person_obj); $confidence_level = (isset($person_obj['likelihood'])) ? $person_obj['likelihood'] : ""; $photos = (isset($person_obj['photos'])) ? $person_obj['photos'] : "No Photos"; $fullname = (isset($person_obj['contactInfo']['fullName'])) ? $person_obj['contactInfo']['fullName'] : ""; $websites = (isset($person_obj['contactInfo']['websites'])) ? $person_obj['contactInfo']['websites'] : "N/A"; $chats = (isset($person_obj['contactInfo']['chats'])) ? $person_obj['contactInfo']['chats'] : "No"; $social_profiles = (isset($person_obj['socialProfiles'])) ? $person_obj['socialProfiles'] : "No Profiles Found"; $organizations = (isset($person_obj['organizations'])) ? $person_obj['organizations'] : "No Organizations Found"; $demographics = (isset($person_obj['demographics'])) ? $person_obj['demographics'] : "N/A"; $interested_in = (isset($person_obj['digitalFootprint']['topics'])) ? $person_obj['digitalFootprint']['topics'] : "N/A"; $image = (isset($person_obj['photos'][0]['url'])) ? $person_obj['photos'][0]['url'] : "/wp-content/plugins/leads/assets/images/gravatar_default_150.jpg"; $klout_score = (isset($person_obj['digitalFootprint']['scores'][0]['value'])) ? $person_obj['digitalFootprint']['scores'][0]['value'] : "N/A"; echo '<tr class="" style="display: table-row;">'; /* Get All Photos associated with the person */ if ($type === 'photo' && isset($photos) && is_array($photos)) { foreach ($photos as $photo) { echo $photo['url'] . " from " . $photo['typeName'] . "<br>"; } } /* Get All Websites associated with the person */ else if ($type === 'website' && isset($websites) && is_array($websites)) { ?> <td class="wpleads-th"> <img title="<?php _e('Full Contact' , 'inbound-pro' ); ?>" src="<?php echo WPL_URLPATH . 'assets/images/fullcontact.png'; ?>" width="16px"> <label for=""><?php _e('Websites:', 'inbound-pro'); ?></label></td> <td class="wpleads-td" id=""> <?php foreach ($websites as $site) { echo "<a href='" . $site['url'] . "' target='_blank'>" . $site['url'] . "</a><br>"; } ?> </td> <?php } /* Get All Social Media Account associated with the person */ else if ($type === 'social' && isset($social_profiles) && is_array($social_profiles)) { ?> <td class="wpleads-th"> <img title="<?php _e('Full Contact' , 'inbound-pro' ); ?>" src="<?php echo WPL_URLPATH . 'assets/images/fullcontact.png'; ?>" width="16px"> <label for=""><?php _e('Social Profiles:', 'inbound-pro'); ?></label> </td> <td class="wpleads-td" id=""> <?php foreach ($social_profiles as $profiles) { $network = (isset($profiles['typeName'])) ? $profiles['typeName'] : ""; $username = (isset($profiles['username'])) ? $profiles['username'] : ""; ($network == 'Twitter') ? $echo_val = "@" . $username : $echo_val = ""; echo "<a href='" . $profiles['url'] . "' target='_blank'>" . $profiles['typeName'] . "</a> " . $echo_val . "<br>"; } ?> </td> <?php } /* Get All Work Organizations associated with the person */ else if ($type === 'work' && isset($organizations) && is_array($organizations) && $organizations ) { ?> <td class="wpleads-th"> <img title="<?php _e('Full Contact' , 'inbound-pro' ); ?>" src="<?php echo WPL_URLPATH . 'assets/images/fullcontact.png'; ?>" width="16px"> <label for=""><?php _e('Work:', 'inbound-pro'); ?></label> </td> <td class="wpleads-td" id=""> <?php foreach ($organizations as $org) { $title = (isset($org['title'])) ? $org['title'] : ""; $org_name = (isset($org['name'])) ? $org['name'] : ""; (isset($org['name'])) ? $at_org = "<span class='primary-work-org'>" . $org['name'] . "</span>" : $at_org = ""; // get primary org (isset($org['isPrimary']) && $org['isPrimary'] === true) ? $print = "<span id='primary-title'>" . $title . "</span> at " . $at_org : $print = ""; (isset($org['isPrimary']) && $org['isPrimary'] === true) ? $hideclass = "work-primary" : $hideclass = "work-secondary"; echo $print; echo "<span class='lead-work-label " . $hideclass . "'>" . $title . " at " . $org_name . "</span><br>"; } echo "<span id='show-work-history'>" . __('View past work', 'inbound-pro') . "</span></div>"; ?> </td> <?php } /* Get All demo graphic info associated with the person */ else if ($type === 'demographics' && isset($demographics) && is_array($demographics)) { ?> <td class="wpleads-th"> <img id="full-contact-icon" title="<?php _e('Full Contact' , 'inbound-pro' ); ?>" src="<?php echo WPL_URLPATH . '/assets/images/fullcontact.png'; ?>" width="16px"> <label for=""><?php _e('Demographics', 'inbound-pro'); ?></label> </td> <td class="wpleads-td" id=""> <?php $location = (isset($demographics['locationGeneral'])) ? $demographics['locationGeneral'] : ""; $age = (isset($demographics['age'])) ? $demographics['age'] : ""; $ageRange = (isset($demographics['ageRange'])) ? $demographics['ageRange'] : ""; $gender = (isset($demographics['gender'])) ? $demographics['gender'] : ""; echo $gender . " in " . $location; ?> </td> <?php } /* Get All Topics associated with the person */ elseif ($type === 'topics' && isset($interested_in) && is_array($interested_in)) { ?> <td class="wpleads-th"><label for=""><?php _e('Interests:', 'inbound-pro'); ?></label></td> <td class="wpleads-td" id=""> <?php foreach ($interested_in as $topic) { echo "<span class='lead-topic-tag'>" . $topic['value'] . "</span>"; } ?> </td> <?php } echo '</tr>'; } /** * Displays tag cloud */ public static function display_tag_cloud() { $tags = self::get_lead_tag_cloud(); // get content tags if (!$tags) { return; } ?> <table> <tr class="" style="display: table-row;"> <td class="wpleads-th"><label for=""><?php _e('Consumed Tags:', 'inbound-pro'); ?></label></td> <td class="wpleads-td" id=""> <?php foreach ($tags as $key => $value) { echo "<a href='#' rel='$value'>$key</a> ,"; } ?> </tr> </table> <?php } /** * Displays main lead content containers */ public static function display_main() { global $post, $wpdb; self::setup_tabs(); self::get_mapped_fields(); self::get_full_contact_details(); ?> <div class="lead-profile"> <?php self::display_tabs(); ?> <div class="lead-profile-section" id='wpleads_lead_tab_main'> <div id="wpleads_lead_tab_main_inner"> <?php self::display_lead_profile(); ?> </div> </div> <div class="lead-profile-section" id='wpleads_lead_tab_activity'> <?php self::display_lead_activity(); ?> </div> <div class="lead-profile-section" id='wpleads_lead_tab_conversions'> <?php self::display_lead_conversion_paths(); ?> </div> <div class="lead-profile-section" id="wpleads_lead_tab_raw_form_data"> <?php //self::display_raw_logs(); ?> </div> </div> <?php do_action('wpl_print_lead_tab_sections'); } /** * Gets number of form submission events */ public static function get_form_submissions_count() { global $post; $form_submissions = count(self::$form_submissions); return $form_submissions; } /** * Gets number of onsite search events */ public static function get_search_count() { global $post; $wpleads_search_data = get_post_meta($post->ID, 'wpleads_search_data', true); self::$searches = json_decode($wpleads_search_data, true); if (is_array(self::$searches)) { $search_count = count(self::$searches); } else { $search_count = 0; } return $search_count; } /** * Gets number of comment events */ public static function get_comment_count() { global $post; $comments_query = new WP_Comment_Query; self::$comments = $comments_query->query(array('author_email' => self::$mapped_fields['wpleads_email_address']['value'])); if (self::$comments) { $comment_count = count(self::$comments); } else { $comment_count = 0; } return $comment_count; } /** * Gets number of tracked link clicks */ public static function get_custom_events_count() { global $post; if (isset(self::$custom_events) && is_array(self::$custom_events)) { return count(self::$custom_events); } else { return 0; } } /** * Setup Activity Navigation */ public static function activity_navigation() { global $post; $nav_items = array( array( 'id' => 'lead-form-submissions', 'label' => __('Form Submissions', 'inbound-pro'), 'count' => self::get_form_submissions_count() ), array( 'id' => 'lead-page-views', 'label' => __('Page Views', 'inbound-pro'), 'count' => count(self::$page_views) ), array( 'id' => 'lead-comments', 'label' => __('Comments', 'inbound-pro'), 'count' => self::get_comment_count() ) ); $nav_items = apply_filters('wpl_lead_activity_tabs', $nav_items); ?> <div class="nav-container"> <nav> <ul id="lead-activity-toggles"> <li class="active"><a href="#all" class="lead-activity-show-all"><?php _e('All', 'inbound-pro'); ?></a></li> <?php // Print toggles foreach ($nav_items as $key => $array) { $count = (isset($array['count'])) ? $array['count'] : '0'; ?> <li><a href='#<?php echo $array['id']; ?>' class="lead-activity-toggle"><?php echo $array['label']; ?><span class="badge"><?php echo $count; ?></span></a></li> <?php } ?> </ul> </nav> </div> <ul class="event-order-list" data-change-sort='#all-lead-history'> Sort by: <li id="newest-event" class='lead-sort-active'><?php _e('Most Recent', 'inbound-pro'); ?></li> | <li id="oldest-event"><?php _e('Oldest', 'inbound-pro'); ?></li> <!-- <li id="highest">Highest Rated</li> <li id="lowest">Lowest Rated</li> --> </ul> <div id="all-lead-history"> <ol></ol> </div> <?php } /** * Display form submission activity */ public static function activity_form_submissions() { global $post; echo '<div id="lead-form-submissions" class="lead-activity">'; echo ' <h2>' . __('Form Submissions', 'inbound-pro') . '</h2>'; if (!isset(self::$form_submissions) || !is_array(self::$form_submissions)) { echo " <span id='wpl-message-none'>" . __('No submissions found!', 'inbound-pro') . "</span>"; echo '</div>'; return; } $i = count(self::$form_submissions); foreach (self::$form_submissions as $key => $event) { if (!isset($event['id']) || !isset($event['datetime'])) { continue; } $form_id = ($event['form_id']) ? $event['form_id'] : __('undefined', 'inbound-pro' ); $form_name = ($event['form_id']) ? get_the_title($event['form_id']) : __('undefined', 'inbound-pro' ); $converted_page_id = $event['page_id']; $converted_page_permalink = get_permalink($converted_page_id); $converted_page_title = get_the_title($converted_page_id); $date_raw = new DateTime($event['datetime']); $datetime = $date_raw->format('F jS, Y \a\t g:ia (l)'); // Display Data ?> <div class="lead-timeline recent-conversion-item form-conversion" data-date="<?php echo $event['datetime']; ?>"> <a class="lead-timeline-img" href="#non"> <!--<i class="lead-timeline-img page-views"></i>--> </a> <div class="lead-timeline-body"> <div class="lead-event-text"> <p> <span class="lead-item-num"><?php echo $i; ?></span> <span class="conversion-date"><b><?php echo $datetime; ?></b></span> <br> <span class="lead-helper-text" style="padding-left:6px;"> <?php _e(' Converted on page', 'inbound-pro' ); ?> </span> <a href="<?php echo $converted_page_permalink; ?>" id="lead-session-<?php echo $i; ?>" rel="<?php echo $i; ?>" target="_blank"><?php echo $converted_page_title; ?></a> <?php _e('using the form ', 'inbound-pro' ); echo '<a href="' . admin_url('post.php?post=' . $event['form_id'] . '&action=edit') . '" target="_blank" title="' . ($event['form_id'] ? __('This is the form the user submitted their data through', 'inbound-pro' ) : __('Submission was processed through a 3rd party form tool or event data is incomplete.', 'inbound-pro')) . '">' . $form_name . '</a>'; ?> </p> </div> </div> </div> <?php $i--; } echo '</div>'; } /** * Displays activity comments */ public static function activity_comments() { echo '<div id="lead-comments" class="lead-activity">'; echo '<h2>Lead Comments</h2>'; if (!self::$comments) { echo "<span id='wpl-message-none'>No comments found!</span>"; echo '</div>'; return; } $comment_count = count(self::$comments); $c_i = $comment_count; foreach (self::$comments as $comment) { $comment_date_raw = new DateTime($comment->comment_date); $date_of_comment = $comment_date_raw->format('F jS, Y \a\t g:ia (l)'); $comment_clean_date = $comment_date_raw->format('Y-m-d H:i:s'); $commented_page_permalink = get_permalink($comment->comment_post_ID); $commented_page_title = get_the_title($comment->comment_post_ID); $comment_id = "#comment-" . $comment->comment_ID; // Display Data echo '<div class="lead-timeline recent-conversion-item lead-comment-conversion" data-date="' . $comment_clean_date . '"> <a class="lead-timeline-img" href="#non"> <img src="/wp-content/plugins/leads/assets/images/comment.png" alt="" width="50" height="50" /> </a> <div class="lead-timeline-body"> <div class="lead-event-text lead-comment-div"> <p><span class="lead-item-num">' . $c_i . '.</span><span class="lead-helper-text">Comment on </span><a title="' . __('View and respond to the comment', 'inbound-pro') . '" href="' . $commented_page_permalink . $comment_id . '" id="lead-session-' . $c_i . '" rel="' . $c_i . '" target="_blank">' . $commented_page_title . '</a><span class="conversion-date">' . $date_of_comment . '</span> <!--<a rel="' . $c_i . '" href="#view-session-"' . $c_i . '">(view visit path)</a>--></p> <p class="lead-comment">"' . $comment->comment_content . '" - <a target="_blank" href="' . $comment->comment_author_url . '">' . $comment->comment_author . '</a></p> </div> </div> </div>'; $c_i--; } echo '</div>'; } /** * Displays activity searches */ public static function activity_searches() { echo '<div id="lead-searches" class="lead-activity">'; echo ' <h2>' . __('Lead Searches', 'inbound-pro') . '</h2>'; if (!is_array(self::$searches)) { echo "<span id='wpl-message-none'>No searches found!</span>"; echo '</div>'; return; } $search_count = count(self::$searches); $c_i = $search_count; foreach (self::$searches as $key => $value) { $search_date_raw = new DateTime($value['date']); $date_of_search = $search_date_raw->format('F jS, Y \a\t g:ia (l)'); $search_clean_date = $search_date_raw->format('Y-m-d H:i:s'); $search_query = $value['value']; // Display Data echo '<div class="lead-timeline recent-conversion-item lead-search-conversion" data-date="' . $search_clean_date . '"> <a class="lead-timeline-img" href="#non"> </a> <div class="lead-timeline-body"> <div class="lead-event-text lead-search-div"> <p><span class="lead-item-num">' . $c_i . '.</span><span class="lead-helper-text">Search for "</span><strong>' . $search_query . '"</strong> on <span class="conversion-date">' . $date_of_search . '</span> <!--<a rel="' . $c_i . '" href="#view-session-"' . $c_i . '">(view visit path)</a>--></p> </div> </div> </div>'; $c_i--; } echo '</div>'; } /** * Displays page view activity */ public static function activity_pageviews() { global $post; echo '<div id="lead-page-views" class="lead-activity">'; echo ' <h2>' . __('Page Views', 'inbound-pro') . '</h2>'; if (!self::$page_views) { echo "<span id='wpl-message-none'>" . __('No Page View History Found', 'inbound-pro') . "</span>"; echo '</div>'; return; } foreach (self::$page_views as $key => $row) { $this_post_type = ''; if (strpos($row['page_id'], 'cat_') !== false) { $cat_id = str_replace("cat_", "", $row['page_id']); $page_name = get_cat_name($cat_id) . ' '. __('Category Page' , 'inbound-pro'); $page_permalink = get_category_link($cat_id); } elseif (strpos($row['page_id'], 'tag_') !== false) { $tag_id = str_replace("tag_", "", $row['page_id']); $tag = get_tag($tag_id); $page_name = $tag->name . " - " . __('Tag Page' , 'inbound-pro'); $page_permalink = get_tag_link($tag_id); } else { $page_title = get_the_title($row['page_id']); $page_name = ($row['page_id'] != 0) ? $page_title : 'N/A'; $page_permalink = get_permalink($row['page_id']); $this_post_type = get_post_type($row['page_id']); } $date_print = date_create($row['datetime']); // Display Data echo '<div class="lead-timeline recent-conversion-item page-view-item ' . $this_post_type . '" title="' . $page_permalink . '" data-date="' . date_format($date_print, 'F jS, Y \a\t g:ia (l)') . '"> <a class="lead-timeline-img page-views" href="#non"> </a> <div class="lead-timeline-body"> <div class="lead-event-text"> <p> <span class="lead-item-num"></span> <span class="lead-helper-text"> <b>' . __('Viewed page', 'inbound-pro' ) . ' :</b> <span class="conversion-date"><b>' . date_format($date_print, 'F jS, Y \a\t g:ia (l)') . '</b></span> <br> </span> <a href="' . $page_permalink . '" id="lead-session" rel="" target="_blank">' . $page_title . '</a> </p> </div> </div> </div>'; } echo '</div>'; } /** * Field sorting array filter */ public static function piority_sort_filter($a, $b) { return $a['priority'] > $b['priority'] ? 1 : -1; } /** * Loops through settings definitions and displays settings * @param ARRAY $fields */ public static function render_settings() { global $inbound_settings; //uasort( self::$mapped_fields , array( __CLASS__ , 'piority_sort_filter' ) ); ?> <table id='wpleads_main_container'> <?php $api_key = Leads_Settings::get_setting('wpl-main-extra-lead-data', ""); if ($api_key === "" || empty($api_key)) { if (class_exists('Inbound_Pro_Plugin')) { $full_contact_setup_link = admin_url('edit.php?post_type=wp-lead&page=inbound-pro-leads'); } else { $full_contact_setup_link = admin_url('edit.php?post_type=wp-lead&page=wpleads_global_settings'); } echo "<div class='lead-notice'>". sprintf(__('Please %s enter your Full Contact API key %s for additional lead data.' , 'inbound-pro' ) , "<a href='" . $full_contact_setup_link . "'>" , '</a>')." <a href='http://www.inboundnow.com/collecting-advanced-lead-intelligence-wordpress-free/' target='_blank'>". __('Read more' , 'inbound-pro') ."</a></div>"; } foreach (self::$mapped_fields as $field) { $id = strtolower($field['key']); echo '<tr class="' . $id . '"> <th class="wpleads-th" ><label for="' . $id . '">' . $field['label'] . ':</label></th> <td class="wpleads-td" id="wpleads-td-' . $id . '">'; switch (true) { case strstr($field['type'], 'textarea'): $parts = explode('-', $field['type']); if (is_array($field['value'])) { $field['value'] = implode( "\r\n" , $field['value'] ); } (isset($parts[1])) ? $rows = $parts[1] : $rows = '10'; $is_json = self::is_json($field['value']); if ($is_json ) { echo "<textarea name='" . $id . "' id='" . $id . "' rows='" . $rows . "' style='' readonly>" . $field['value'] . "</textarea>"; } else { echo '<textarea name="' . $id . '" id="' . $id . '" rows=' . $rows . '" style="" >' . $field['value'] . '</textarea>'; } break; case strstr($field['type'], 'text'): $parts = explode('-', $field['type']); (isset($parts[1])) ? $size = $parts[1] : $size = 35; $field['value'] = (!is_array($field['value'])) ? $field['value'] : implode(' ' , $field['value']); $is_json = self::is_json($field['value']); if ($is_json ) { echo "<input type='text' name='" . $id . "' id='" . $id . "' value='" . $field['value'] . "' size='" . $size . "' readonly/>"; } else { echo '<input type="text" name="' . $id . '" id="' . $id . '" value="' . $field['value'] . '" size="' . $size . '" />'; } break; case strstr($field['type'], 'links'): if (!$field['value']) { continue; } $parts = explode('-', $field['type']); (isset($parts[1])) ? $channel = $parts[1] : $channel = 'related'; $links = explode(';', $field['value']); $links = array_filter($links); echo "<div style='position:relative;'><span class='add-new-link'>" . __('Add New Link') . " <span title='" . __('add link') . "' align='ABSMIDDLE' class='wpleads-add-link' 'id='{$id}-add-link'>+</span></div>"; echo "<div class='wpleads-links-container' id='{$id}-container'>"; $remove_icon = WPL_URLPATH . '/assets/images/remove.png'; if (count($links) > 0) { foreach ($links as $key => $link) { $icon = self::get_social_link_icon($link); $icon = apply_filters('wpleads_links_icon', $icon); echo '<span id="' . $id . '-' . $key . '"><img src="' . $remove_icon . '" class="wpleads_remove_link" id = "' . $key . '" title="Remove Link">'; echo '<a href="' . $link . '" target="_blank"><img src="' . $icon . '" align="ABSMIDDLE" class="wpleads_link_icon"><input type="hidden" name="' . $id . '[' . $key . ']" value="' . $link . '" size="70" class="wpleads_link" />' . $link . '</a> '; echo "</span><br>"; } } else { echo '<input type="text" name="' . $id . '[]" value="" size="70" />'; } echo '</div>'; break; // wysiwyg case strstr($field['type'], 'wysiwyg'): wp_editor($field['value'], $id, $settings = array()); echo '<p class="description">' . $field['desc'] . '</p>'; break; /* media */ case strstr($field['type'], 'media'): //echo 1; exit; echo '<label for="upload_image">'; echo '<input name="' . $id . '" id="' . $id . '" type="text" size="36" name="upload_image" value="' . $field['value'] . '" />'; echo '<input class="upload_image_button" id="uploader_' . $id . '" type="button" value="Upload Image" />'; echo '<p class="description">' . $field['desc'] . '</p>'; break; /* checkbox */ case strstr($field['type'], 'checkbox'): if (!isset($field['value']) || !$field['value'] ) { $field['value'] = array(); } else if (!is_array($field['value'])) { $field['value'] = explode( ',' , $field['value'] ); } /* get available options from memory */ $field['options'] = (isset($inbound_settings['leads-custom-fields']['fields'][$id]['options']) ) ? $inbound_settings['leads-custom-fields']['fields'][$id]['options'] : array(); $inbound_settings['leads-custom-fields']['fields'][$id]['options'] = $field['options']; /* store current option if not available */ foreach ($field['value'] as $key=>$value) { if (in_array( $value , $field['options'])) { continue; } $inbound_settings['leads-custom-fields']['fields'][$id]['options'] = array_merge($field['value'] , $field['options']); $inbound_settings['leads-custom-fields']['fields'][$id]['options'] = array_unique($inbound_settings['leads-custom-fields']['fields'][$id]['options']); Inbound_Options_API::update_option( 'inbound-pro' , 'settings' , $inbound_settings ); } $field['options'] = array_merge($inbound_settings['leads-custom-fields']['fields'][$id]['options'] , $field['options']); $field['options'] = array_unique($field['options']); foreach( $field['options'] as $key => $value) { echo '<input type="checkbox" name="' . $id . '[]" id="' . $id . '" value="' . $value . '" '. ( in_array($value, $field['value']) ? ' checked="checked"' : '' ) . '/>'; echo ' ' . $value; echo '<br>'; } if (isset($field['desc'])) { echo '<div class="wpl_tooltip tool_checkbox" title="' . $field['desc'] . '"></div>'; } break; /* radio */ case strstr($field['type'], 'radio'): /* get available options from memory */ $field['options'] = (isset($inbound_settings['leads-custom-fields']['fields'][$id]['options']) ) ? $inbound_settings['leads-custom-fields']['fields'][$id]['options'] : array(); $inbound_settings['leads-custom-fields']['fields'][$id]['options'] = $field['options']; /* store current option if not available */ if (!in_array($field['value'], $field['options'])) { $inbound_settings['leads-custom-fields']['fields'][$id]['options'][] = $field['value']; $inbound_settings['leads-custom-fields']['fields'][$id]['options'] = array_filter($inbound_settings['leads-custom-fields']['fields'][$id]['options']); $inbound_settings['leads-custom-fields']['fields'][$id]['options'] = array_unique($inbound_settings['leads-custom-fields']['fields'][$id]['options']); Inbound_Options_API::update_option( 'inbound-pro' , 'settings' , $inbound_settings ); } $field['options'] = array_merge($inbound_settings['leads-custom-fields']['fields'][$id]['options'] , $field['options']); $field['options'] = array_unique($field['options']); foreach ($field['options'] as $key => $value) { echo '<input type="radio" name="' . $id . '" id="' . $id . '" value="' . $value . '" ', $field['value'] == $value ? ' checked="checked"' : '', '/>'; echo '<label for="' . $value . '"> ' . $value . '</label> '; } if (isset($field['desc'])) { echo '<div class="wpl_tooltip" title="' . $field['desc'] . '"></div>'; } break; // select case $field['type'] == 'dropdown': echo '<select name="' . $id . '" id="' . $id . '" >'; foreach ($field['options'] as $value => $label) { echo '<option', $field['value'] == $value ? ' selected="selected"' : '', ' value="' . $value . '">' . $label . '</option>'; } echo '</select>'; if (isset($field['desc'])) { echo '<div class="wpl_tooltip" title="' . $field['desc'] . '"></div>'; } break; case $field['type'] == 'dropdown-country': echo '<input type="hidden" id="hidden-country-value" value="' . $field['value'] . '">'; echo '<select name="' . $id . '" id="' . $id . '" class="wpleads-country-dropdown">'; ?> <option value=""><?php _e('Country...', 'inbound-pro'); ?></option> <option value="AF"><?php _e('Afghanistan', 'inbound-pro'); ?></option> <option value="AL"><?php _e('Albania', 'inbound-pro'); ?></option> <option value="DZ"><?php _e('Algeria', 'inbound-pro'); ?></option> <option value="AS"><?php _e('American Samoa', 'inbound-pro'); ?></option> <option value="AD"><?php _e('Andorra', 'inbound-pro'); ?></option> <option value="AG"><?php _e('Angola', 'inbound-pro'); ?></option> <option value="AI"><?php _e('Anguilla', 'inbound-pro'); ?></option> <option value="AG"><?php _e('Antigua & Barbuda', 'inbound-pro'); ?></option> <option value="AR"><?php _e('Argentina', 'inbound-pro'); ?></option> <option value="AA"><?php _e('Armenia', 'inbound-pro'); ?></option> <option value="AW"><?php _e('Aruba', 'inbound-pro'); ?></option> <option value="AU"><?php _e('Australia', 'inbound-pro'); ?></option> <option value="AT"><?php _e('Austria', 'inbound-pro'); ?></option> <option value="AZ"><?php _e('Azerbaijan', 'inbound-pro'); ?></option> <option value="BS"><?php _e('Bahamas', 'inbound-pro'); ?></option> <option value="BH"><?php _e('Bahrain', 'inbound-pro'); ?></option> <option value="BD"><?php _e('Bangladesh', 'inbound-pro'); ?></option> <option value="BB"><?php _e('Barbados', 'inbound-pro'); ?></option> <option value="BY"><?php _e('Belarus', 'inbound-pro'); ?></option> <option value="BE"><?php _e('Belgium', 'inbound-pro'); ?></option> <option value="BZ"><?php _e('Belize', 'inbound-pro'); ?></option> <option value="BJ"><?php _e('Benin', 'inbound-pro'); ?></option> <option value="BM"><?php _e('Bermuda', 'inbound-pro'); ?></option> <option value="BT"><?php _e('Bhutan', 'inbound-pro'); ?></option> <option value="BO"><?php _e('Bolivia', 'inbound-pro'); ?></option> <option value="BL"><?php _e('Bonaire', 'inbound-pro'); ?></option> <option value="BA"><?php _e('Bosnia & Herzegovina', 'inbound-pro'); ?></option> <option value="BW"><?php _e('Botswana', 'inbound-pro'); ?></option> <option value="BR"><?php _e('Brazil', 'inbound-pro'); ?></option> <option value="BC"><?php _e('British Indian Ocean Ter', 'inbound-pro'); ?></option> <option value="BN"><?php _e('Brunei', 'inbound-pro'); ?></option> <option value="BG"><?php _e('Bulgaria', 'inbound-pro'); ?></option> <option value="BF"><?php _e('Burkina Faso', 'inbound-pro'); ?></option> <option value="BI"><?php _e('Burundi', 'inbound-pro'); ?></option> <option value="KH"><?php _e('Cambodia', 'inbound-pro'); ?></option> <option value="CM"><?php _e('Cameroon', 'inbound-pro'); ?></option> <option value="CA"><?php _e('Canada', 'inbound-pro'); ?></option> <option value="IC"><?php _e('Canary Islands', 'inbound-pro'); ?></option> <option value="CV"><?php _e('Cape Verde', 'inbound-pro'); ?></option> <option value="KY"><?php _e('Cayman Islands', 'inbound-pro'); ?></option> <option value="CF"><?php _e('Central African Republic', 'inbound-pro'); ?></option> <option value="TD"><?php _e('Chad', 'inbound-pro'); ?></option> <option value="CD"><?php _e('Channel Islands', 'inbound-pro'); ?></option> <option value="CL"><?php _e('Chile', 'inbound-pro'); ?></option> <option value="CN"><?php _e('China', 'inbound-pro'); ?></option> <option value="CI"><?php _e('Christmas Island', 'inbound-pro'); ?></option> <option value="CS"><?php _e('Cocos Island', 'inbound-pro'); ?></option> <option value="CO"><?php _e('Colombia', 'inbound-pro'); ?></option> <option value="CC"><?php _e('Comoros', 'inbound-pro'); ?></option> <option value="CG"><?php _e('Congo', 'inbound-pro'); ?></option> <option value="CK"><?php _e('Cook Islands', 'inbound-pro'); ?></option> <option value="CR"><?php _e('Costa Rica', 'inbound-pro'); ?></option> <option value="CT"><?php _e('Cote D\'Ivoire', 'inbound-pro'); ?></option> <option value="HR"><?php _e('Croatia', 'inbound-pro'); ?></option> <option value="CU"><?php _e('Cuba', 'inbound-pro'); ?></option> <option value="CB"><?php _e('Curacao', 'inbound-pro'); ?></option> <option value="CY"><?php _e('Cyprus', 'inbound-pro'); ?></option> <option value="CZ"><?php _e('Czech Republic', 'inbound-pro'); ?></option> <option value="DK"><?php _e('Denmark', 'inbound-pro'); ?></option> <option value="DJ"><?php _e('Djibouti', 'inbound-pro'); ?></option> <option value="DM"><?php _e('Dominica', 'inbound-pro'); ?></option> <option value="DO"><?php _e('Dominican Republic', 'inbound-pro'); ?></option> <option value="TM"><?php _e('East Timor', 'inbound-pro'); ?></option> <option value="EC"><?php _e('Ecuador', 'inbound-pro'); ?></option> <option value="EG"><?php _e('Egypt', 'inbound-pro'); ?></option> <option value="SV"><?php _e('El Salvador', 'inbound-pro'); ?></option> <option value="GQ"><?php _e('Equatorial Guinea', 'inbound-pro'); ?></option> <option value="ER"><?php _e('Eritrea', 'inbound-pro'); ?></option> <option value="EE"><?php _e('Estonia', 'inbound-pro'); ?></option> <option value="ET"><?php _e('Ethiopia', 'inbound-pro'); ?></option> <option value="FA"><?php _e('Falkland Islands', 'inbound-pro'); ?></option> <option value="FO"><?php _e('Faroe Islands', 'inbound-pro'); ?></option> <option value="FJ"><?php _e('Fiji', 'inbound-pro'); ?></option> <option value="FI"><?php _e('Finland', 'inbound-pro'); ?></option> <option value="FR"><?php _e('France', 'inbound-pro'); ?></option> <option value="GF"><?php _e('French Guiana', 'inbound-pro'); ?></option> <option value="PF"><?php _e('French Polynesia', 'inbound-pro'); ?></option> <option value="FS"><?php _e('French Southern Ter', 'inbound-pro'); ?></option> <option value="GA"><?php _e('Gabon', 'inbound-pro'); ?></option> <option value="GM"><?php _e('Gambia', 'inbound-pro'); ?></option> <option value="GE"><?php _e('Georgia', 'inbound-pro'); ?></option> <option value="DE"><?php _e('Germany', 'inbound-pro'); ?></option> <option value="GH"><?php _e('Ghana', 'inbound-pro'); ?></option> <option value="GI"><?php _e('Gibraltar', 'inbound-pro'); ?></option> <option value="GB"><?php _e('Great Britain', 'inbound-pro'); ?></option> <option value="GR"><?php _e('Greece', 'inbound-pro'); ?></option> <option value="GL"><?php _e('Greenland', 'inbound-pro'); ?></option> <option value="GD"><?php _e('Grenada', 'inbound-pro'); ?></option> <option value="GP"><?php _e('Guadeloupe', 'inbound-pro'); ?></option> <option value="GU"><?php _e('Guam', 'inbound-pro'); ?></option> <option value="GT"><?php _e('Guatemala', 'inbound-pro'); ?></option> <option value="GN"><?php _e('Guinea', 'inbound-pro'); ?></option> <option value="GY"><?php _e('Guyana', 'inbound-pro'); ?></option> <option value="HT"><?php _e('Haiti', 'inbound-pro'); ?></option> <option value="HW"><?php _e('Hawaii', 'inbound-pro'); ?></option> <option value="HN"><?php _e('Honduras', 'inbound-pro'); ?></option> <option value="HK"><?php _e('Hong Kong', 'inbound-pro'); ?></option> <option value="HU"><?php _e('Hungary', 'inbound-pro'); ?></option> <option value="IS"><?php _e('Iceland', 'inbound-pro'); ?></option> <option value="IN"><?php _e('India', 'inbound-pro'); ?></option> <option value="ID"><?php _e('Indonesia', 'inbound-pro'); ?></option> <option value="IA"><?php _e('Iran', 'inbound-pro'); ?></option> <option value="IQ"><?php _e('Iraq', 'inbound-pro'); ?></option> <option value="IR"><?php _e('Ireland', 'inbound-pro'); ?></option> <option value="IM"><?php _e('Isle of Man', 'inbound-pro'); ?></option> <option value="IL"><?php _e('Israel', 'inbound-pro'); ?></option> <option value="IT"><?php _e('Italy', 'inbound-pro'); ?></option> <option value="JM"><?php _e('Jamaica', 'inbound-pro'); ?></option> <option value="JP"><?php _e('Japan', 'inbound-pro'); ?></option> <option value="JO"><?php _e('Jordan', 'inbound-pro'); ?></option> <option value="KZ"><?php _e('Kazakhstan', 'inbound-pro'); ?></option> <option value="KE"><?php _e('Kenya', 'inbound-pro'); ?></option> <option value="KI"><?php _e('Kiribati', 'inbound-pro'); ?></option> <option value="NK"><?php _e('Korea North', 'inbound-pro'); ?></option> <option value="KS"><?php _e('Korea South', 'inbound-pro'); ?></option> <option value="KW"><?php _e('Kuwait', 'inbound-pro'); ?></option> <option value="KG"><?php _e('Kyrgyzstan', 'inbound-pro'); ?></option> <option value="LA"><?php _e('Laos', 'inbound-pro'); ?></option> <option value="LV"><?php _e('Latvia', 'inbound-pro'); ?></option> <option value="LB"><?php _e('Lebanon', 'inbound-pro'); ?></option> <option value="LS"><?php _e('Lesotho', 'inbound-pro'); ?></option> <option value="LR"><?php _e('Liberia', 'inbound-pro'); ?></option> <option value="LY"><?php _e('Libya', 'inbound-pro'); ?></option> <option value="LI"><?php _e('Liechtenstein', 'inbound-pro'); ?></option> <option value="LT"><?php _e('Lithuania', 'inbound-pro'); ?></option> <option value="LU"><?php _e('Luxembourg', 'inbound-pro'); ?></option> <option value="MO"><?php _e('Macau', 'inbound-pro'); ?></option> <option value="MK"><?php _e('Macedonia', 'inbound-pro'); ?></option> <option value="MG"><?php _e('Madagascar', 'inbound-pro'); ?></option> <option value="MY"><?php _e('Malaysia', 'inbound-pro'); ?></option> <option value="MW"><?php _e('Malawi', 'inbound-pro'); ?></option> <option value="MV"><?php _e('Maldives', 'inbound-pro'); ?></option> <option value="ML"><?php _e('Mali', 'inbound-pro'); ?></option> <option value="MT"><?php _e('Malta', 'inbound-pro'); ?></option> <option value="MH"><?php _e('Marshall Islands', 'inbound-pro'); ?></option> <option value="MQ"><?php _e('Martinique', 'inbound-pro'); ?></option> <option value="MR"><?php _e('Mauritania', 'inbound-pro'); ?></option> <option value="MU"><?php _e('Mauritius', 'inbound-pro'); ?></option> <option value="ME"><?php _e('Mayotte', 'inbound-pro'); ?></option> <option value="MX"><?php _e('Mexico', 'inbound-pro'); ?></option> <option value="MI"><?php _e('Midway Islands', 'inbound-pro'); ?></option> <option value="MD"><?php _e('Moldova', 'inbound-pro'); ?></option> <option value="MC"><?php _e('Monaco', 'inbound-pro'); ?></option> <option value="MN"><?php _e('Mongolia', 'inbound-pro'); ?></option> <option value="MS"><?php _e('Montserrat', 'inbound-pro'); ?></option> <option value="MA"><?php _e('Morocco', 'inbound-pro'); ?></option> <option value="MZ"><?php _e('Mozambique', 'inbound-pro'); ?></option> <option value="MM"><?php _e('Myanmar', 'inbound-pro'); ?></option> <option value="NA"><?php _e('Nambia', 'inbound-pro'); ?></option> <option value="NU"><?php _e('Nauru', 'inbound-pro'); ?></option> <option value="NP"><?php _e('Nepal', 'inbound-pro'); ?></option> <option value="AN"><?php _e('Netherland Antilles', 'inbound-pro'); ?></option> <option value="NL"><?php _e('Netherlands (Holland, Europe)', 'inbound-pro'); ?></option> <option value="NV"><?php _e('Nevis', 'inbound-pro'); ?></option> <option value="NC"><?php _e('New Caledonia', 'inbound-pro'); ?></option> <option value="NZ"><?php _e('New Zealand', 'inbound-pro'); ?></option> <option value="NI"><?php _e('Nicaragua', 'inbound-pro'); ?></option> <option value="NE"><?php _e('Niger', 'inbound-pro'); ?></option> <option value="NG"><?php _e('Nigeria', 'inbound-pro'); ?></option> <option value="NW"><?php _e('Niue', 'inbound-pro'); ?></option> <option value="NF"><?php _e('Norfolk Island', 'inbound-pro'); ?></option> <option value="NO"><?php _e('Norway', 'inbound-pro'); ?></option> <option value="OM"><?php _e('Oman', 'inbound-pro'); ?></option> <option value="PK"><?php _e('Pakistan', 'inbound-pro'); ?></option> <option value="PW"><?php _e('Palau Island', 'inbound-pro'); ?></option> <option value="PS"><?php _e('Palestine', 'inbound-pro'); ?></option> <option value="PA"><?php _e('Panama', 'inbound-pro'); ?></option> <option value="PG"><?php _e('Papua New Guinea', 'inbound-pro'); ?></option> <option value="PY"><?php _e('Paraguay', 'inbound-pro'); ?></option> <option value="PE"><?php _e('Peru', 'inbound-pro'); ?></option> <option value="PH"><?php _e('Philippines', 'inbound-pro'); ?></option> <option value="PO"><?php _e('Pitcairn Island', 'inbound-pro'); ?></option> <option value="PL"><?php _e('Poland', 'inbound-pro'); ?></option> <option value="PT"><?php _e('Portugal', 'inbound-pro'); ?></option> <option value="PR"><?php _e('Puerto Rico', 'inbound-pro'); ?></option> <option value="QA"><?php _e('Qatar', 'inbound-pro'); ?></option> <option value="ME"><?php _e('Republic of Montenegro', 'inbound-pro'); ?></option> <option value="RS"><?php _e('Republic of Serbia', 'inbound-pro'); ?></option> <option value="RE"><?php _e('Reunion', 'inbound-pro'); ?></option> <option value="RO"><?php _e('Romania', 'inbound-pro'); ?></option> <option value="RU"><?php _e('Russia', 'inbound-pro'); ?></option> <option value="RW"><?php _e('Rwanda', 'inbound-pro'); ?></option> <option value="NT"><?php _e('St Barthelemy', 'inbound-pro'); ?></option> <option value="EU"><?php _e('St Eustatius', 'inbound-pro'); ?></option> <option value="HE"><?php _e('St Helena', 'inbound-pro'); ?></option> <option value="KN"><?php _e('St Kitts-Nevis', 'inbound-pro'); ?></option> <option value="LC"><?php _e('St Lucia', 'inbound-pro'); ?></option> <option value="MB"><?php _e('St Maarten', 'inbound-pro'); ?></option> <option value="PM"><?php _e('St Pierre & Miquelon', 'inbound-pro'); ?></option> <option value="VC"><?php _e('St Vincent & Grenadines', 'inbound-pro'); ?></option> <option value="SP"><?php _e('Saipan', 'inbound-pro'); ?></option> <option value="SO"><?php _e('Samoa', 'inbound-pro'); ?></option> <option value="AS"><?php _e('Samoa American', 'inbound-pro'); ?></option> <option value="SM"><?php _e('San Marino', 'inbound-pro'); ?></option> <option value="ST"><?php _e('Sao Tome & Principe', 'inbound-pro'); ?></option> <option value="SA"><?php _e('Saudi Arabia', 'inbound-pro'); ?></option> <option value="SN"><?php _e('Senegal', 'inbound-pro'); ?></option> <option value="SC"><?php _e('Seychelles', 'inbound-pro'); ?></option> <option value="SL"><?php _e('Sierra Leone', 'inbound-pro'); ?></option> <option value="SG"><?php _e('Singapore', 'inbound-pro'); ?></option> <option value="SK"><?php _e('Slovakia', 'inbound-pro'); ?></option> <option value="SI"><?php _e('Slovenia', 'inbound-pro'); ?></option> <option value="SB"><?php _e('Solomon Islands', 'inbound-pro'); ?></option> <option value="OI"><?php _e('Somalia', 'inbound-pro'); ?></option> <option value="ZA"><?php _e('South Africa', 'inbound-pro'); ?></option> <option value="ES"><?php _e('Spain', 'inbound-pro'); ?></option> <option value="LK"><?php _e('Sri Lanka', 'inbound-pro'); ?></option> <option value="SD"><?php _e('Sudan', 'inbound-pro'); ?></option> <option value="SR"><?php _e('Suriname', 'inbound-pro'); ?></option> <option value="SZ"><?php _e('Swaziland', 'inbound-pro'); ?></option> <option value="SE"><?php _e('Sweden', 'inbound-pro'); ?></option> <option value="CH"><?php _e('Switzerland', 'inbound-pro'); ?></option> <option value="SY"><?php _e('Syria', 'inbound-pro'); ?></option> <option value="TA"><?php _e('Tahiti', 'inbound-pro'); ?></option> <option value="TW"><?php _e('Taiwan', 'inbound-pro'); ?></option> <option value="TJ"><?php _e('Tajikistan', 'inbound-pro'); ?></option> <option value="TZ"><?php _e('Tanzania', 'inbound-pro'); ?></option> <option value="TH"><?php _e('Thailand', 'inbound-pro'); ?></option> <option value="TG"><?php _e('Togo', 'inbound-pro'); ?></option> <option value="TK"><?php _e('Tokelau', 'inbound-pro'); ?></option> <option value="TO"><?php _e('Tonga', 'inbound-pro'); ?></option> <option value="TT"><?php _e('Trinidad & Tobago', 'inbound-pro'); ?></option> <option value="TN"><?php _e('Tunisia', 'inbound-pro'); ?></option> <option value="TR"><?php _e('Turkey', 'inbound-pro'); ?></option> <option value="TU"><?php _e('Turkmenistan', 'inbound-pro'); ?></option> <option value="TC"><?php _e('Turks & Caicos Is', 'inbound-pro'); ?></option> <option value="TV"><?php _e('Tuvalu', 'inbound-pro'); ?></option> <option value="UG"><?php _e('Uganda', 'inbound-pro'); ?></option> <option value="UA"><?php _e('Ukraine', 'inbound-pro'); ?></option> <option value="AE"><?php _e('United Arab Emirates', 'inbound-pro'); ?></option> <option value="GB"><?php _e('United Kingdom', 'inbound-pro'); ?></option> <option value="US"><?php _e('United States of America', 'inbound-pro'); ?></option> <option value="UY"><?php _e('Uruguay', 'inbound-pro'); ?></option> <option value="UZ"><?php _e('Uzbekistan', 'inbound-pro'); ?></option> <option value="VU"><?php _e('Vanuatu', 'inbound-pro'); ?></option> <option value="VS"><?php _e('Vatican City State', 'inbound-pro'); ?></option> <option value="VE"><?php _e('Venezuela', 'inbound-pro'); ?></option> <option value="VN"><?php _e('Vietnam', 'inbound-pro'); ?></option> <option value="VB"><?php _e('Virgin Islands (Brit)', 'inbound-pro'); ?></option> <option value="VA"><?php _e('Virgin Islands (USA)', 'inbound-pro'); ?></option> <option value="WK"><?php _e('Wake Island', 'inbound-pro'); ?></option> <option value="WF"><?php _e('Wallis & Futana Is', 'inbound-pro'); ?></option> <option value="YE"><?php _e('Yemen', 'inbound-pro'); ?></option> <option value="ZR"><?php _e('Zaire', 'inbound-pro'); ?></option> <option value="ZM"><?php _e('Zambia', 'inbound-pro'); ?></option> <option value="ZW"><?php _e('Zimbabwe', 'inbound-pro'); ?></option> </select> <?php break; } //end switch echo '</td></tr>'; } echo '</table>'; } /** * Get conversion events from event table */ public static function get_conversions( $lead_id ){ global $wpdb; $event_whitelist = array('inbound_form_submission','inbound_cta_click','ninja_form_submission' , 'gravity_form_submission'); $table_name = $wpdb->prefix . "inbound_events"; $query = 'SELECT * FROM '.$table_name.' WHERE `lead_id` = "'.$lead_id.'" AND ( '; foreach($event_whitelist as $key => $event_name) { $query .= 'event_name = "'.$event_name.'" '; if (isset($event_whitelist[$key+1])) { $query .= 'OR '; } } $query .= ') ORDER BY `datetime` DESC'; self::$conversions = $wpdb->get_results( $query , ARRAY_A ); return self::$conversions; } /** * fetches social icon given link url */ public static function get_social_link_icon($link) { switch (true) { case strstr($link, 'facebook.com'): $icon = WPL_URLPATH . '/assets/images/icons/facebook.png'; break; case strstr($link, 'linkedin.com'): $icon = WPL_URLPATH . '/assets/images/icons/linkedin.png'; break; case strstr($link, 'twitter.com'): $icon = WPL_URLPATH . '/assets/images/icons/twitter.png'; break; case strstr($link, 'pinterest.com'): $icon = WPL_URLPATH . '/assets/images/icons/pinterest.png'; break; case strstr($link, 'plus.google.'): $icon = WPL_URLPATH . '/assets/images/icons/google.png'; break; case strstr($link, 'youtube.com'): $icon = WPL_URLPATH . '/assets/images/icons/youtube.png'; break; case strstr($link, 'reddit.com'): $icon = WPL_URLPATH . '/assets/images/icons/reddit.png'; break; case strstr($link, 'badoo.com'): $icon = WPL_URLPATH . '/assets/images/icons/badoo.png'; break; case strstr($link, 'meetup.com'): $icon = WPL_URLPATH . '/assets/images/icons/meetup.png'; break; case strstr($link, 'livejournal.com'): $icon = WPL_URLPATH . '/assets/images/icons/livejournal.png'; break; case strstr($link, 'myspace.com'): $icon = WPL_URLPATH . '/assets/images/icons/myspace.png'; break; case strstr($link, 'deviantart.com'): $icon = WPL_URLPATH . '/assets/images/icons/deviantart.png'; break; default: $icon = WPL_URLPATH . '/assets/images/icons/link.png'; break; } return $icon; } /** * Fetches tag cloud */ public static function get_lead_tag_cloud() { global $post; if (self::$page_views && is_array(self::$page_views)) { // Collect all viewed page IDs foreach (self::$page_views as $key => $val) { $id = $key; $ids[] = $key; } // Get Tags from all pages viewed foreach ($ids as $key => $val) { //echo $val; $array = wp_get_post_tags($val, array('fields' => 'names')); if (!empty($array)) $tag_names[] = wp_get_post_tags($val, array('fields' => 'names')); } // Merge and count $final_tags = array(); if (!empty($tag_names)) { foreach ($tag_names as $array) { foreach ($array as $key => $value) { $final_tags[] = $value; } } } $return_tags = array_count_values($final_tags); } else { $return_tags = array(); // empty } return $return_tags; // return tag array } /** * Array filter for sorting by datetime DESC */ public static function datetime_sort_reverse($a, $b) { return strtotime($a['date']) > strtotime($b['date']) ? 1 : -1; } /** * Array filter for sorting by datetime ASC */ public static function datetime_sort($a, $b) { return strtotime($a['date']) < strtotime($b['date']) ? 1 : -1; } /** * Check if string is a json string * @param $string * @return bool */ public static function is_json($string) { $array = array('{','['); foreach ($array as $v) { if (substr($string, 0, 1) === $v) { return true; } } return false; } } $Inbound_Metaboxes_Leads = new Inbound_Metaboxes_Leads; }