| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393 |
- <?php
- if ( ! defined( 'ABSPATH' ) ) {
- exit;
- }
- @include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
- $controls = new NewsletterControls();
- wp_enqueue_script( 'tnp-chart' );
- if ( $controls->is_action( 'feed_enable' ) ) {
- delete_option( 'newsletter_feed_demo_disable' );
- $controls->messages = 'Feed by Mail demo panels enabled. On next page reload it will show up.';
- }
- if ( $controls->is_action( 'feed_disable' ) ) {
- update_option( 'newsletter_feed_demo_disable', 1 );
- $controls->messages = 'Feed by Mail demo panel disabled. On next page reload it will disappear.';
- }
- $emails_module = NewsletterEmails::instance();
- $emails = $wpdb->get_results( "select * from " . NEWSLETTER_EMAILS_TABLE . " where type='message' order by id desc limit 5" );
- $users_module = NewsletterUsers::instance();
- $query = "select * from " . NEWSLETTER_USERS_TABLE . " order by id desc";
- $query .= " limit 10";
- $subscribers = $wpdb->get_results( $query );
- // Retrieves the last standard newsletter
- $last_email = $wpdb->get_row(
- $wpdb->prepare( "select * from " . NEWSLETTER_EMAILS_TABLE . " where type='message' and status in ('sent', 'sending') and send_on<%d order by id desc limit 1", time() ) );
- if ( $last_email ) {
- $last_email_sent = $last_email->sent;
- $last_email_opened = NewsletterStatistics::instance()->get_open_count( $last_email->id );
- $last_email_notopened = $last_email_sent - $last_email_opened;
- $last_email_clicked = NewsletterStatistics::instance()->get_click_count( $last_email->id );
- $last_email_opened -= $last_email_clicked;
- $overall_sent = $wpdb->get_var( "select sum(sent) from " . NEWSLETTER_EMAILS_TABLE . " where type='message' and status in ('sent', 'sending')" );
- $overall_opened = $wpdb->get_var( "select count(distinct user_id,email_id) from " . NEWSLETTER_STATS_TABLE );
- $overall_notopened = $overall_sent - $overall_opened;
- $overall_clicked = $wpdb->get_var( "select count(distinct user_id,email_id) from " . NEWSLETTER_STATS_TABLE . " where url<>''" );
- $overall_opened -= $overall_clicked;
- } else {
- $last_email_opened = 500;
- $last_email_notopened = 400;
- $last_email_clicked = 200;
- $overall_opened = 500;
- $overall_notopened = 400;
- $overall_clicked = 200;
- }
- $months = $wpdb->get_results( "select count(*) as c, concat(year(created), '-', date_format(created, '%m')) as d "
- . "from " . NEWSLETTER_USERS_TABLE . " where status='C' "
- . "group by concat(year(created), '-', date_format(created, '%m')) order by d desc limit 12" );
- $values = array();
- $labels = array();
- foreach ( $months as $month ) {
- $values[] = (int) $month->c;
- $labels[] = date( "M y", date_create_from_format( "Y-m", $month->d )->getTimestamp() );
- }
- $values = array_reverse( $values );
- $labels = array_reverse( $labels );
- ?>
- <div class="wrap" id="tnp-wrap">
- <?php include NEWSLETTER_DIR . '/tnp-header.php'; ?>
- <div id="tnp-heading">
- <h2><?php _e( 'Dashboard', 'newsletter' ) ?></h2>
- <p><?php _e( 'Your powerful control panel', 'newsletter' ) ?></p>
- </div>
- <div id="tnp-body" class="tnp-main-index">
- <div id="dashboard-widgets-wrap">
- <div id="dashboard-widgets" class="metabox-holder">
- <div id="postbox-container-1" class="postbox-container">
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
- <!-- START Statistics -->
- <div id="tnp-dash-statistics" class="postbox">
- <h3><?php _e( 'Statistics', 'newsletter' ) ?>
- <a href="<?php echo NewsletterStatistics::$instance->get_admin_page_url( 'index' ); ?>">
- <i class="fa fa-chart-bar"></i> <?php _e( 'Statistics', 'newsletter' ) ?>
- </a>
- </h3>
- <div class="inside">
- <?php if ( ! $last_email ) { ?>
- <p style="text-align: center">
- <?php _e( 'These charts are only for example:<br>create and send your first newsletter to have real statistics!', 'newsletter' ) ?>
- </p>
- <?php } ?>
- <div class="row tnp-row-pie-charts">
- <div class="col-md-6">
- <canvas id="tnp-rates1-chart"></canvas>
- <p style="text-align: center"><?php _e( 'Last Newsletter', 'newsletter' ) ?></p>
- </div>
- <div class="col-md-6">
- <canvas id="tnp-rates2-chart"></canvas>
- <p style="text-align: center"><?php _e( 'Overall', 'newsletter' ) ?></p>
- </div>
- </div>
- <script type="text/javascript">
- var rates1 = {
- labels: [
- "Not opened",
- "Opened",
- "Clicked"
- ],
- datasets: [
- {
- data: [<?php echo $last_email_notopened; ?>, <?php echo $last_email_opened; ?>, <?php echo $last_email_clicked ?>],
- backgroundColor: [
- "#ECF0F1",
- "#E67E22",
- "#27AE60"
- ],
- hoverBackgroundColor: [
- "#ECF0F1",
- "#E67E22",
- "#27AE60"
- ]
- }]
- };
- var rates2 = {
- labels: [
- "Not opened",
- "Opened",
- "Clicked"
- ],
- datasets: [
- {
- data: [<?php echo $overall_notopened; ?>, <?php echo $overall_opened; ?>, <?php echo $overall_clicked ?>],
- backgroundColor: [
- "#ECF0F1",
- "#E67E22",
- "#27AE60"
- ],
- hoverBackgroundColor: [
- "#ECF0F1",
- "#E67E22",
- "#27AE60"
- ]
- }]
- };
- jQuery(document).ready(function ($) {
- ctx1 = $('#tnp-rates1-chart').get(0).getContext("2d");
- ctx2 = $('#tnp-rates2-chart').get(0).getContext("2d");
- myPieChart1 = new Chart(ctx1, {
- type: 'doughnut',
- data: rates1,
- options: {legend: {display: false, labels: {boxWidth: 10}}}
- });
- myPieChart2 = new Chart(ctx2, {
- type: 'doughnut',
- data: rates2,
- options: {legend: {display: false, labels: {boxWidth: 10}}}
- });
- });
- </script>
- </div>
- </div>
- <!-- END Statistics -->
- <!-- START Statistics -->
- <div id="tnp-dash-statistics" class="postbox">
- <h3><?php _e( 'Subscriptions', 'newsletter' ) ?></h3>
- <div class="inside">
- <div id="canvas-holder">
- <canvas id="tnp-events-chart-canvas"></canvas>
- </div>
- <script type="text/javascript">
- var events_data = {
- labels: <?php echo json_encode( $labels ) ?>,
- datasets: [
- {
- label: "<?php _e( 'Subscriptions', 'newsletter' ) ?>",
- fill: true,
- strokeColor: "#27AE60",
- backgroundColor: "#ECF0F1",
- borderColor: "#27AE60",
- pointBorderColor: "#27AE60",
- pointBackgroundColor: "#ECF0F1",
- data: <?php echo json_encode( $values ) ?>
- }
- ]
- };
- jQuery(document).ready(function ($) {
- ctxe = $('#tnp-events-chart-canvas').get(0).getContext("2d");
- eventsLineChart = new Chart(ctxe, {
- type: 'line', data: events_data,
- options: {
- scales: {
- xAxes: [{
- type: "category",
- "id": "x-axis-1",
- gridLines: {display: false},
- ticks: {fontFamily: "Source Sans Pro"}
- }],
- yAxes: [
- {
- type: "linear",
- "id": "y-axis-1",
- gridLines: {display: false},
- ticks: {fontFamily: "Source Sans Pro"}
- },
- ]
- },
- }
- });
- });
- </script>
- </div>
- </div>
- <!-- END Statistics -->
- <!-- START Documentation -->
- <div id="tnp-dash-documentation" class="postbox">
- <h3><?php _e( 'Documentation', 'newsletter' ) ?>
- <a href="https://www.thenewsletterplugin.com/plugins/newsletter/newsletter-documentation"
- target="_blank">
- <i class="fa fa-life-ring"></i> <?php _e( 'Read all', 'newsletter' ) ?>
- </a>
- </h3>
- <div class="inside">
- <!-- <div class="tnp-video-container">
- <iframe width="480" height="360"
- src="https://www.youtube.com/embed/JaxK7XwqvVI?rel=0" frameborder="0"
- allowfullscreen></iframe>
- </div> -->
- <div>
- <a class="orange"
- href="https://www.thenewsletterplugin.com/plugins/newsletter/newsletter-documentation/email-sending-issues"
- target="_blank">
- <i class="fa fa-exclamation-triangle"></i> <?php _e( 'Problem sending messages? Start here!', 'newsletter' ) ?>
- </a>
- </div>
- <div>
- <a class="blue" href="https://www.thenewsletterplugin.com/support/video-tutorials"
- target="_blank">
- <i class="fa fa-youtube-play"></i> <?php _e( 'All Video Tutorials', 'newsletter' ) ?>
- </a>
- </div>
- <div>
- <a class="purple"
- href="https://www.thenewsletterplugin.com/plugins/newsletter/newsletter-preferences"
- target="_blank">
- <i class="fa fa-question-circle"></i> <?php _e( 'Learn how to segment your suscribers', 'newsletter' ) ?>
- </a>
- </div>
- </div>
- </div>
- <!-- END Documentation -->
- </div>
- </div>
- <div id="postbox-container-2" class="postbox-container">
- <div id="side-sortables" class="meta-box-sortables ui-sortable">
- <!-- START Newsletters -->
- <div id="tnp-dash-newsletters" class="postbox">
- <h3><?php _e( 'Newsletters', 'newsletter' ) ?>
- <a href="<?php echo $emails_module->get_admin_page_url( 'index' ); ?>">
- <i class="fa fa-list"></i> <?php _e( 'List', 'newsletter' ) ?>
- </a>
- <a href="<?php echo $emails_module->get_admin_page_url( 'theme' ); ?>">
- <i class="fa fa-plus-square"></i> <?php _e( 'New', 'newsletter' ) ?>
- </a>
- </h3>
- <div class="inside">
- <table width="100%">
- <?php
- foreach ( $emails as &$email ) { ?>
- <tr>
- <td><?php
- if ( $email->subject ) {
- echo htmlspecialchars( $email->subject );
- } else {
- echo "Newsletter #" . $email->id;
- }
- ?>
- </td>
- <td>
- <?php $emails_module->show_email_status_label( $email ) ?>
- </td>
- <td>
- <?php $emails_module->show_email_progress_bar( $email, array( 'scheduled' => true ) ) ?>
- </td>
- <td style="white-space:nowrap">
- <?php echo $emails_module->get_edit_button($email) ?>
- </td>
- </tr>
- <?php } ?>
- </table>
- </div>
- </div>
- <!-- END Newsletters -->
- <?php if ( empty( Newsletter::instance()->options['contract_key'] ) ) { ?>
- <!-- START Premium -->
- <div id="tnp-dash-premium" class="postbox">
- <h3><?php _e( 'Premium', 'newsletter' ) ?>
- <a href="https://www.thenewsletterplugin.com/extensions" target="_blank">
- <i class="fa fa-trophy"></i> <?php _e( 'Buy', 'newsletter' ) ?>
- </a>
- </h3>
- <div class="inside">
- <div>
- <a href="https://www.thenewsletterplugin.com/extensions" target="_blank">
- <img style="width: 100%;"
- src="https://cdn.thenewsletterplugin.com/dashboard01.gif">
- </a>
- </div>
- <div>
- <a href="https://www.thenewsletterplugin.com/extensions" target="_blank">
- <img style="width: 100%;"
- src="https://cdn.thenewsletterplugin.com/dashboard02.png">
- </a>
- </div>
- </div>
- </div>
- <!-- END Premium -->
- <?php } ?>
- </div>
- </div>
- <div id="postbox-container-3" class="postbox-container">
- <div id="column3-sortables" class="meta-box-sortables ui-sortable">
- <!-- START Subscribers -->
- <div id="tnp-dash-subscribers" class="postbox">
- <h3><?php _e( 'Last Subscribers', 'newsletter' ) ?>
- <a href="<?php echo $users_module->get_admin_page_url( 'index' ); ?>">
- <i class="fa fa-users"></i> <?php _e( 'List', 'newsletter' ) ?>
- </a>
- <a href="<?php echo $users_module->get_admin_page_url( 'new' ); ?>">
- <i class="fa fa-user-plus"></i> <?php _e( 'New', 'newsletter' ) ?>
- </a>
- </h3>
- <div class="inside">
- <table width="100%">
- <?php foreach ( $subscribers as $s ) { ?>
- <tr>
- <td><?php echo esc_html( $s->email ) ?><br>
- <?php echo esc_html( $s->name ) ?> <?php echo esc_html( $s->surname ) ?>
- </td>
- <td><?php echo $emails_module->get_user_status_label( $s ) ?></td>
- <td style="white-space:nowrap">
- <a class="button-primary tnp-button-white"
- title="<?php _e( 'Edit', 'newsletter' ) ?>"
- href="<?php echo $users_module->get_admin_page_url( 'edit' ); ?>&id=<?php echo $s->id; ?>"><i
- class="fa fa-edit"></i></a>
- <a title="<?php _e( 'Profile', 'newsletter' ) ?>"
- href="<?php echo home_url( '/' ) ?>?na=p&nk=<?php echo $s->id . '-' . $s->token; ?>"
- class="button-primary tnp-button-white" target="_blank"><i
- class="fa fa-user"></i></a>
- </td>
- </tr>
- <?php } ?>
- </table>
- </div>
- </div>
- <!-- END Subscribers -->
- </div>
- </div>
- </div>
- </div>
- </div>
- <?php include NEWSLETTER_DIR . '/tnp-footer.php'; ?>
- </div>
|