static function data() { $transient_key = 'sendpress_tracking_cache'; $data = get_transient($transient_key); // bail if transient is set and valid if ($data !== false) { return; } // Make sure to only send tracking data once a week set_transient($transient_key, 1, WEEK_IN_SECONDS); // Start of Metrics global $blog_id, $wpdb; $hash = get_option('SendPress_Tracking_Hash', false); if (!$hash || empty($hash)) { // create and store hash $hash = md5(site_url()); update_option('SendPress_Tracking_Hash', $hash); } $pts = array(); $post_types = get_post_types(array('public' => true)); if (is_array($post_types) && $post_types !== array()) { foreach ($post_types as $post_type) { $count = wp_count_posts($post_type); $pts[$post_type] = $count->publish; } } unset($post_types); $comments_count = wp_count_comments(); $theme_data = wp_get_theme(); $theme = array('name' => $theme_data->display('Name', false, false), 'theme_uri' => $theme_data->display('ThemeURI', false, false), 'version' => $theme_data->display('Version', false, false), 'author' => $theme_data->display('Author', false, false), 'author_uri' => $theme_data->display('AuthorURI', false, false)); $theme_template = $theme_data->get_template(); if ($theme_template !== '' && $theme_data->parent()) { $theme['template'] = array('version' => $theme_data->parent()->display('Version', false, false), 'name' => $theme_data->parent()->display('Name', false, false), 'theme_uri' => $theme_data->parent()->display('ThemeURI', false, false), 'author' => $theme_data->parent()->display('Author', false, false), 'author_uri' => $theme_data->parent()->display('AuthorURI', false, false)); } else { $theme['template'] = ''; } unset($theme_template); $plugins = array(); $active_plugin = get_option('active_plugins'); foreach ($active_plugin as $plugin_path) { if (!function_exists('get_plugin_data')) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } $plugin_info = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin_path); $slug = str_replace('/' . basename($plugin_path), '', $plugin_path); $plugins[$slug] = array('version' => $plugin_info['Version'], 'name' => $plugin_info['Name'], 'plugin_uri' => $plugin_info['PluginURI'], 'author' => $plugin_info['AuthorName'], 'author_uri' => $plugin_info['AuthorURI']); } unset($active_plugins, $plugin_path); $lists = SendPress_Data::get_lists(); $data = array('site' => array('hash' => $hash, 'wp_version' => get_bloginfo('version'), 'sp' => SENDPRESS_VERSION, 'pro' => defined('SENDPRESS_PRO_VERSION') ? SENDPRESS_PRO_VERSION : 0, 'lists' => count($lists->posts), 'subscribers' => SendPress_Data::get_total_subscribers(), 'multisite' => is_multisite(), 'lang' => get_locale()), 'pts' => $pts, 'options' => apply_filters('sp_tracking_filters', array()), 'theme' => $theme, 'plugins' => $plugins); $args = array('body' => $data, 'blocking' => false, 'sslverify' => false); wp_remote_post('http://api.sendpress.com/api/v1/track/add', $args); }
function html($sp) { SendPress_Tracking::event('Overview Tab'); global $wp_version; $classes = 'sp-welcome-panel'; $option = get_user_meta(get_current_user_id(), 'show_sp_welcome_panel', true); // 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner $hide = 0 == $option || 2 == $option && wp_get_current_user()->user_email != get_option('admin_email'); list($display_version) = explode('-', $wp_version); ?> <br> <div class="sp-row "> <div class="sp-block sp-25 sp-first"> <h2 class="nomargin nopadding"><?php echo SendPress_Data::bd_nice_number(SendPress_Data::get_total_subscribers()); ?> </h2> <p class="fwb"><?php _e('Subscribers', 'sendpress'); ?> </p> </div> <div class="sp-block sp-25"> <h2 class="nomargin nopadding"><?php $report = SendPress_Data::get_last_report(); echo SendPress_Data::emails_active_in_queue(); ?> </h2> <p class="fwb"><?php _e('Emails Actively Sending', 'sendpress'); ?> </small></p> </div> <div class="sp-block sp-25"> <h2 class="nomargin nopadding"><?php echo SendPress_Data::emails_maxed_in_queue(); ?> </h2> <p class="fwb"><?php _e('Emails Stuck in Queue', 'sendpress'); ?> </p> </div> <div class="sp-block sp-25"> <h2 class="nomargin nopadding"><?php _e('Autocron last check', 'sendpress'); ?> </h2> <p class="fwb"> <?php $autocron = SendPress_Option::get('autocron', 'no'); //print_r(SendPress_Data::emails_stuck_in_queue()); if ($autocron == 'yes') { $api_info = json_decode(SendPress_Cron::get_info()); if (isset($api_info->lastcheck)) { echo $api_info->lastcheck . " UTC"; } else { echo "No Data"; } } else { echo "Not Enabled"; } ?> </p> </div> </div> <?php if ($report) { $rec = get_post_meta($report->ID, '_send_last_count', true); $this->panel_start($report->post_title . " <small style='color:#333;'>" . __('This email had', 'sendpress') . " " . $rec . " " . __('Recipients', 'sendpress') . "</small>"); $stat_type = get_post_meta($report->ID, '_stat_type', true); $clicks = SPNL()->db("Subscribers_Url")->clicks_email_id($report->ID); $clicks_total = SPNL()->db("Subscribers_Url")->clicks_total_email_id($report->ID); ?> <div class="sp-row"> <div class="sp-50 sp-first"> <h4 style="text-align:center;"><?php _e('Opens', 'sendpress'); ?> </h4> <?php $this->panel_start(); $open = 0; $rec = get_post_meta($report->ID, '_send_last_count', true); if ($report) { if ($stat_type == 'new') { $open = SPNL()->db("Subscribers_Tracker")->get_opens_total($report->ID); } else { $open = SendPress_Data::get_opens($report->ID); } $p = $open / $rec * 100; } ?> <div class="sp-row"> <div class="sp-50 sp-first"> <div style="float:left;"> <div id="myStat" class="chartid" data-dimension="150" data-text="<?php echo floor($p); ?> %" data-info="Total Opens" data-width="15" data-fontsize="30" data-percent="<?php echo floor($p); ?> " data-fgcolor="#61a9dc" data-bgcolor="#eee" data-fill="#ddd" data-total="<?php echo $rec; ?> " data-part="<?php echo $open; ?> " data-icon="long-arrow-up" data-icon-size="28" data-icon-color="#fff"></div> </div> <div style="text-align:center;"> <h5>Total</h5> <?php echo $open; ?> </div> </div> <div class="sp-50"> <?php $ou = 0; if ($stat_type == 'new') { $ou = SPNL()->db("Subscribers_Tracker")->get_opens($report->ID); } else { $ou = SendPress_Data::get_opens_unique_total($report->ID); } $px = $ou / $rec * 100; ?> <div style="float:left;"> <div id="myStat" class="chartid" data-dimension="150" data-text="<?php echo floor($px); ?> %" data-info="Unique Opens" data-width="15" data-fontsize="30" data-percent="35" data-fgcolor="#85d002" data-bgcolor="#eee" data-fill="#ddd" data-total="<?php echo $rec; ?> " data-part="<?php echo $ou; ?> " data-icon="long-arrow-up" data-icon-size="28" data-icon-color="#fff"></div> </div> <div style="text-align:center;"> <h5>Unique</h5> <?php echo $ou; ?> </div> </div> </div> <?php $this->panel_end(); ?> </div> <div class="sp-50"> <h4 style="text-align:center;"><?php _e('Clicks', 'sendpress'); ?> </h4> <?php $this->panel_start(); $click = 0; $rec = get_post_meta($report->ID, '_send_last_count', true); if ($report) { if ($stat_type == 'new') { $click = SPNL()->db("Subscribers_Url")->clicks_email_id($report->ID); } else { $click = SendPress_Data::get_clicks($report->ID); } $p = $click / $rec * 100; } ?> <div class="sp-row"> <div class="sp-50 sp-first"> <div style="float:left;"> <div id="myStat" class="chartid" data-dimension="150" data-text="<?php echo floor($p); ?> %" data-info="Total Opens" data-width="15" data-fontsize="30" data-percent="<?php echo floor($p); ?> " data-fgcolor="#61a9dc" data-bgcolor="#eee" data-fill="#ddd" data-total="<?php echo $rec; ?> " data-part="<?php echo $click; ?> " data-icon="long-arrow-up" data-icon-size="28" data-icon-color="#fff"></div> </div> <div style="text-align:center;"> <h5><?php _e('Total', 'sendpress'); ?> </h5> <?php echo $click; ?> </div> </div> <div class="sp-50"> <?php $ou = 0; if ($stat_type == 'new') { $ou = SPNL()->db("Subscribers_Url")->clicks_total_email_id($report->ID); } else { $ou = SendPress_Data::get_clicks_unique_total($report->ID); } $px = $ou / $rec * 100; ?> <div style="float:left;"> <div id="myStat" class="chartid" data-dimension="150" data-text="<?php echo floor($px); ?> %" data-info="Unique Opens" data-width="15" data-fontsize="30" data-percent="35" data-fgcolor="#85d002" data-bgcolor="#eee" data-fill="#ddd" data-total="<?php echo $rec; ?> " data-part="<?php echo $ou; ?> " data-icon="long-arrow-up" data-icon-size="28" data-icon-color="#fff"></div> </div> <div style="text-align:center;"> <h5><?php _e('Unique', 'sendpress'); ?> </h5> <?php echo $ou; ?> </div> </div> </div> <?php $this->panel_end(); ?> </div> </div> <?php $this->panel_end(); } ?> <div class="sp-row"> <div class="sp-33 sp-first"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><?php _e('Recent Subscribers', 'sendpress'); ?> </h3> </div> <div class="panel-body"> <table class="table table-striped table-condensed"> <tr> <th>Date</th> <th>List</th> <th><div style="text-align:right;">Email</div></th> </tr> <?php $recent = SendPress_Data::get_recent_subscribers(); foreach ($recent as $item) { echo "<tr>"; echo "<td>"; if (property_exists($item, 'subscriberID')) { $d = SendPress_Data::get_subscriber($item->subscriberID); if (property_exists($item, 'updated')) { echo date_i18n("m.d.y", strtotime($item->updated)); } echo "</td>"; echo "<td >"; if (property_exists($item, 'listID')) { echo get_the_title($item->listID); } echo "</td>"; echo "<td align='right'>"; if (is_object($d)) { echo $d->email . "<br>"; } echo "</td>"; echo "</tr>"; } } ?> </table> </div> </div> </div> <div class="sp-33"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><?php _e('Most Active Subscribers', 'sendpress'); ?> </h3> </div> <div class="panel-body"> <ul> <?php $recent = SPNL()->db("Subscribers_Tracker")->get_most_active(); // SendPress_Data::get_most_active_subscriber(); foreach ($recent as $item) { if (property_exists($item, 'subscriber_id')) { echo "<li>"; $d = SendPress_Data::get_subscriber($item->subscriber_id); if (is_object($d)) { echo $d->email; } echo "</li>"; } } ?> </ul> </div> </div> </div> <div class="sp-33"> <?php if (!defined('SENDPRESS_PRO_VERSION')) { ?> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><?php _e('Go Pro!', 'sendpress'); ?> </h3> </div> <div class="panel-body"> <ul> <li><a href="http://sendpress.com/purchase-pricing/"><?php _e('Advanced Reports', 'sendpress'); ?> </a></li> <li><a href="http://sendpress.com/purchase-pricing/"><?php _e('Check Spam Scores', 'sendpress'); ?> </a></li> <li><a href="http://sendpress.com/purchase-pricing/"><?php _e('Post Notifications', 'sendpress'); ?> </a></li> </ul> </div> </div> <?php } ?> </div> </div> <script> jQuery( document ).ready(function($) { $('.chartid').circliful(); }); </script> <!-- <div class="panel panel-default"> <div class="panel-body"> <h2>Welcome to SendPress</h2> </div> </div> --> <?php if (SendPress_Option::get('feedback') == 'yes' || SendPress_Option::get('allow_tracking') == 'yes') { SendPress_Tracking::data(); } }
function html($sp) { //SendPress_Template_Manager::update_template_content(); SendPress_Tracking::event('Overview Tab'); //print_r( SendPress_Data::get_subcribers_by_meta('test','test') ); //echo wp_next_scheduled('wysija_cron_queue') . 'asdf'; //SPNL()->db->subscribers_tracker->add( array('subscriber_id'=> 101, 'email_id'=> 20 ) ); //SPNL()->db->subscribers_url->add_update( array('subscriber_id'=> 101, 'email_id'=> 20 , 'url_id' => 123 ) ); //SPNL()->log->add( 'Email Skiped' , 'Email test',' did not have any Text.', 'sending'); //print_r(_get_cron_array()); global $wp_version; $classes = 'sp-welcome-panel'; $option = get_user_meta(get_current_user_id(), 'show_sp_welcome_panel', true); // 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner $hide = 0 == $option || 2 == $option && wp_get_current_user()->user_email != get_option('admin_email'); //if ( $hide ) // $classes .= ' hidden'; /* $args = array( 'post_type' => 'sendpress_list','numberposts' => -1, 'offset' => 0, 'orderby' => 'post_title', 'order' => 'DESC', ); $lists = get_posts( $args ); $sp->send_optin(1,array('1','2','3'),$lists); */ list($display_version) = explode('-', $wp_version); //SendPress_Template_Manager::update_template_content(); /* echo spnl_do_email_tags( 'here is some {subscriber_list} content that should run tags' , 0 , 0 ); SPNL()->log->add('Bad Email','This email can not be sent'); echo "<pre>"; print_r( SPNL()->log->get_logs() ); echo "</pre>"; */ ?> <br> <div class="sp-row "> <div class="sp-block sp-25 sp-first"> <h2 class="nomargin nopadding"><?php echo SendPress_Data::bd_nice_number(SendPress_Data::get_total_subscribers()); ?> </h2> <p class="fwb"><?php _e('Subscribers', 'sendpress'); ?> </p> </div> <div class="sp-block sp-25"> <h2 class="nomargin nopadding"><?php $report = SendPress_Data::get_last_report(); echo SendPress_Data::emails_active_in_queue(); ?> </h2> <p class="fwb"><?php _e('Emails Actively Sending', 'sendpress'); ?> </small></p> </div> <div class="sp-block sp-25"> <h2 class="nomargin nopadding"><?php echo SendPress_Data::emails_maxed_in_queue(); ?> </h2> <p class="fwb"><?php _e('Emails Stuck in Queue', 'sendpress'); ?> </p> </div> <div class="sp-block sp-25"> <h2 class="nomargin nopadding"><?php _e('Autocron last check', 'sendpress'); ?> </h2> <p class="fwb"> <?php $autocron = SendPress_Option::get('autocron', 'no'); //print_r(SendPress_Data::emails_stuck_in_queue()); if ($autocron == 'yes') { $api_info = json_decode(SendPress_Cron::get_info()); if (isset($api_info->lastcheck)) { echo $api_info->lastcheck . " UTC"; } else { echo "No Data"; } } else { echo "Not Enabled"; } ?> </p> </div> </div> <?php if ($report) { $rec = get_post_meta($report->ID, '_send_last_count', true); $this->panel_start($report->post_title . " <small style='color:#333;'>" . __('This email had', 'sendpress') . " " . $rec . " " . __('Recipients', 'sendpress') . "</small>"); $stat_type = get_post_meta($report->ID, '_stat_type', true); $clicks = SPNL()->db->subscribers_url->clicks_email_id($report->ID); $clicks_total = SPNL()->db->subscribers_url->clicks_total_email_id($report->ID); ?> <div class="sp-row"> <div class="sp-50 sp-first"> <h4 style="text-align:center;"><?php _e('Opens', 'sendpress'); ?> </h4> <?php $this->panel_start(); $open = 0; $rec = get_post_meta($report->ID, '_send_last_count', true); if ($report) { if ($stat_type == 'new') { $open = SPNL()->db->subscribers_tracker->get_opens_total($report->ID); } else { $open = SendPress_Data::get_opens($report->ID); } $p = $open / $rec * 100; } ?> <div class="sp-row"> <div class="sp-50 sp-first"> <div style="float:left;"> <div id="myStat" class="chartid" data-dimension="150" data-text="<?php echo floor($p); ?> %" data-info="Total Opens" data-width="15" data-fontsize="30" data-percent="<?php echo floor($p); ?> " data-fgcolor="#61a9dc" data-bgcolor="#eee" data-fill="#ddd" data-total="<?php echo $rec; ?> " data-part="<?php echo $open; ?> " data-icon="long-arrow-up" data-icon-size="28" data-icon-color="#fff"></div> </div> <div style="text-align:center;"> <h5>Total</h5> <?php echo $open; ?> </div> </div> <div class="sp-50"> <?php $ou = 0; if ($stat_type == 'new') { $ou = SPNL()->db->subscribers_tracker->get_opens($report->ID); } else { $ou = SendPress_Data::get_opens_unique_total($report->ID); } $px = $ou / $rec * 100; ?> <div style="float:left;"> <div id="myStat" class="chartid" data-dimension="150" data-text="<?php echo floor($px); ?> %" data-info="Unique Opens" data-width="15" data-fontsize="30" data-percent="35" data-fgcolor="#85d002" data-bgcolor="#eee" data-fill="#ddd" data-total="<?php echo $rec; ?> " data-part="<?php echo $ou; ?> " data-icon="long-arrow-up" data-icon-size="28" data-icon-color="#fff"></div> </div> <div style="text-align:center;"> <h5>Unique</h5> <?php echo $ou; ?> </div> </div> </div> <?php $this->panel_end(); ?> </div> <div class="sp-50"> <h4 style="text-align:center;"><?php _e('Clicks', 'sendpress'); ?> </h4> <?php $this->panel_start(); $click = 0; $rec = get_post_meta($report->ID, '_send_last_count', true); if ($report) { if ($stat_type == 'new') { $click = SPNL()->db->subscribers_url->clicks_email_id($report->ID); } else { $click = SendPress_Data::get_clicks($report->ID); } $p = $click / $rec * 100; } ?> <div class="sp-row"> <div class="sp-50 sp-first"> <div style="float:left;"> <div id="myStat" class="chartid" data-dimension="150" data-text="<?php echo floor($p); ?> %" data-info="Total Opens" data-width="15" data-fontsize="30" data-percent="<?php echo floor($p); ?> " data-fgcolor="#61a9dc" data-bgcolor="#eee" data-fill="#ddd" data-total="<?php echo $rec; ?> " data-part="<?php echo $click; ?> " data-icon="long-arrow-up" data-icon-size="28" data-icon-color="#fff"></div> </div> <div style="text-align:center;"> <h5><?php _e('Total', 'sendpress'); ?> </h5> <?php echo $click; ?> </div> </div> <div class="sp-50"> <?php $ou = 0; if ($stat_type == 'new') { $ou = SPNL()->db->subscribers_url->clicks_total_email_id($report->ID); } else { $ou = SendPress_Data::get_clicks_unique_total($report->ID); } $px = $ou / $rec * 100; ?> <div style="float:left;"> <div id="myStat" class="chartid" data-dimension="150" data-text="<?php echo floor($px); ?> %" data-info="Unique Opens" data-width="15" data-fontsize="30" data-percent="35" data-fgcolor="#85d002" data-bgcolor="#eee" data-fill="#ddd" data-total="<?php echo $rec; ?> " data-part="<?php echo $ou; ?> " data-icon="long-arrow-up" data-icon-size="28" data-icon-color="#fff"></div> </div> <div style="text-align:center;"> <h5><?php _e('Unique', 'sendpress'); ?> </h5> <?php echo $ou; ?> </div> </div> </div> <?php $this->panel_end(); ?> </div> </div> <?php $this->panel_end(); } ?> <div class="sp-row"> <div class="sp-33 sp-first"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><?php _e('Recent Subscribers', 'sendpress'); ?> </h3> </div> <div class="panel-body"> <table class="table table-striped table-condensed"> <tr> <th>Date</th> <th>List</th> <th><div style="text-align:right;">Email</div></th> </tr> <?php $recent = SendPress_Data::get_subscribed_events(); foreach ($recent as $item) { echo "<tr>"; echo "<td>"; if (property_exists($item, 'subscriberID')) { $d = SendPress_Data::get_subscriber($item->subscriberID); if (property_exists($item, 'eventdate')) { echo date_i18n("m.d.y", strtotime($item->eventdate)); } echo "</td>"; echo "<td >"; if (property_exists($item, 'listID')) { echo get_the_title($item->listID); } echo "</td>"; echo "<td align='right'>"; if (is_object($d)) { echo $d->email . "<br>"; } echo "</td>"; echo "</tr>"; } } ?> </table> </div> </div> </div> <div class="sp-33"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><?php _e('Most Active Subscribers', 'sendpress'); ?> </h3> </div> <div class="panel-body"> <ul> <?php $recent = SendPress_Data::get_most_active_subscriber(); foreach ($recent as $item) { if (property_exists($item, 'subscriberID')) { echo "<li>"; $d = SendPress_Data::get_subscriber($item->subscriberID); if (is_object($d)) { echo $d->email; } echo "</li>"; } } ?> </ul> </div> </div> </div> <div class="sp-33"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><?php _e('Go Pro!', 'sendpress'); ?> </h3> </div> <div class="panel-body"> <ul> <li><a href="http://sendpress.com/purchase-pricing/"><?php _e('Advanced Reports', 'sendpress'); ?> </a></li> <li><a href="http://sendpress.com/purchase-pricing/"><?php _e('Check Spam Scores', 'sendpress'); ?> </a></li> <li><a href="http://sendpress.com/purchase-pricing/"><?php _e('Post Notifications', 'sendpress'); ?> </a></li> </ul> </div> </div> </div> </div> <script> jQuery( document ).ready(function($) { $('.chartid').circliful(); }); </script> <!-- <div class="panel panel-default"> <div class="panel-body"> <h2>Welcome to SendPress</h2> </div> </div> --> <?php if (SendPress_Option::get('feedback') == 'yes' || SendPress_Option::get('allow_tracking') == 'yes') { SendPress_Tracking::data(); } }