Exemplo n.º 1
0
 function get_current_theme_options()
 {
     $theme_options = $this->themes->get_options($this->get_current_theme());
     // main options merge
     $main_options = Newsletter::instance()->options;
     foreach ($main_options as $key => $value) {
         $theme_options['main_' . $key] = $value;
     }
     return $theme_options;
 }
Exemplo n.º 2
0
}
//if (isset($controls->data['search_test'])) {
//    $where .= " and test=1";
//}
if (!empty($controls->data['search_status'])) {
    if ($controls->data['search_status'] == 'T') {
        $where .= " and test=1";
    } else {
        $query_args[] = $controls->data['search_status'];
        $where .= " and status=%s";
    }
}
// Total items, total pages
$items_per_page = 20;
$where = $wpdb->prepare($where, $query_args);
$count = Newsletter::instance()->store->get_count(NEWSLETTER_USERS_TABLE, $where);
$last_page = floor($count / $items_per_page) - ($count % $items_per_page == 0 ? 1 : 0);
if ($last_page < 0) {
    $last_page = 0;
}
if ($controls->is_action('last')) {
    $controls->data['search_page'] = $last_page;
}
if ($controls->is_action('first')) {
    $controls->data['search_page'] = 0;
}
if ($controls->is_action('next')) {
    $controls->data['search_page'] = (int) $controls->data['search_page'] + 1;
}
if ($controls->is_action('prev')) {
    $controls->data['search_page'] = (int) $controls->data['search_page'] - 1;
Exemplo n.º 3
0
 function mail($to, $subject, $message, $headers = null)
 {
     $newsletter = Newsletter::instance();
     if ($this->mandrill == null) {
         require_once dirname(__FILE__) . '/api/Mandrill.php';
         $mandrill = new Mandrill($this->options['smtp_password']);
     }
     $data = array();
     if (!is_array($message)) {
         $data['html'] = $message;
     } else {
         if (!empty($message['html'])) {
             $data['html'] = $message['html'];
         }
         if (!empty($message['text'])) {
             $data['text'] = $message['text'];
         }
     }
     $data['subject'] = $subject;
     $data['to'] = array(array('email' => $to, 'type' => 'to'));
     if (isset($headers['X-Newsletter-Email-Id'])) {
         $data['tags'] = array('Newsletter ' . $headers['X-Newsletter-Email-Id']);
     }
     if (!empty($headers)) {
         $data['headers'] = $headers;
     } else {
         $data['headers'] = array();
     }
     $data['from_email'] = $newsletter->options['sender_email'];
     $data['from_name'] = $newsletter->options['sender_name'];
     if (!empty($newsletter->options['reply_to'])) {
         $data['headers']['Reply-To'] = $newsletter->options['reply_to'];
     }
     try {
         //    $async = false;
         //    $ip_pool = 'Main Pool';
         //    $send_at = 'example send_at';
         //    $result = $mandrill->messages->send($message, $async, $ip_pool, $send_at);
         $this->mandrill_result = $mandrill->messages->send($data);
         //print_r($result);
         return true;
     } catch (Mandrill_Error $e) {
         $this->mandrill_result = $e->getMessage();
         // Mandrill errors are thrown as exceptions
         //echo 'A mandrill error occurred: ' . get_class($e) . ' - ' . $e->getMessage();
         // A mandrill error occurred: Mandrill_Unknown_Subaccount - No subaccount exists with the id 'customer-123'
         //throw $e;
         return false;
     }
 }
Exemplo n.º 4
0
    $email['send_on'] = time();
    $email['type'] = 'message';
    $email['editor'] = $original->editor;
    $email['track'] = $original->track;
    Newsletter::instance()->save_email($email);
    $controls->messages .= __('Message duplicated.', 'newsletter');
}
if ($controls->is_action('delete')) {
    Newsletter::instance()->delete_email($_POST['btn']);
    $controls->messages .= __('Message deleted.', 'newsletter');
}
if ($controls->is_action('delete_selected')) {
    $r = Newsletter::instance()->delete_email($_POST['ids']);
    $controls->messages .= $r . ' message(s) deleted';
}
$emails = Newsletter::instance()->get_emails('message');
?>

<div class="wrap" id="tnp-wrap">

    <?php 
$help_url = 'http://www.thenewsletterplugin.com/plugins/newsletter/newsletters-module';
?>
    
    <?php 
include NEWSLETTER_DIR . '/tnp-header.php';
?>

    <div id="tnp-heading">
    
    <h2><?php 
Exemplo n.º 5
0
 /**
  * Send emails during the subscription process. Emails are themes with email.php file.
  * @global type $newsletter
  * @return type
  */
 function mail($to, $subject, $message)
 {
     // If the template setup on administrative panel is enabled, use it, if not
     // use the default old templating system.
     if ($this->options['template_enabled'] == 1) {
         $template = $this->options['template'];
         if (strpos($template, '{message}') === false) {
             $template .= '{message}';
         }
         $message = str_replace('{message}', $message, $template);
     } else {
         ob_start();
         include NEWSLETTER_DIR . '/subscription/email.php';
         $message = ob_get_clean();
     }
     return Newsletter::instance()->mail($to, $subject, $message);
 }
Exemplo n.º 6
0
<?php 
if (NEWSLETTER_DEBUG || !isset($dismissed['newsletter-page']) && empty(NewsletterSubscription::instance()->options['url'])) {
    ?>
    <div class="notice">
        <a href="<?php 
    echo $_SERVER['REQUEST_URI'] . '&dismiss=newsletter-page';
    ?>
" class="dismiss">&times;</a>
        <p>
            You should create a blog page to show the subscription form and the subscription messages. Go to the
            <a href="?page=newsletter_subscription_options">subscription panel</a> to
            configure it.
        </p>
    </div>
<?php 
}
?>

<div id="tnp-notification">
    <?php 
Newsletter::instance()->warnings();
?>
    <?php 
if (isset($controls)) {
    $controls->show();
    $controls->messages = '';
    $controls->errors = '';
}
?>
</div>
Exemplo n.º 7
0
    $email['status'] = 'sending';
}
if ($controls->is_action('abort')) {
    $wpdb->query("update " . NEWSLETTER_EMAILS_TABLE . " set last_id=0, total=0, sent=0, status='new' where id=" . $email_id);
    $email['status'] = 'new';
    $email['total'] = 0;
    $email['sent'] = 0;
    $email['last_id'] = 0;
    $controls->messages = "Sending aborted.";
}
if ($controls->is_action('test')) {
    $users = NewsletterUsers::instance()->get_test_users();
    if (count($users) == 0) {
        $controls->errors = 'There are no test subscribers. Read more about test subscribers <a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#test" target="_blank">here</a>.';
    } else {
        Newsletter::instance()->send(Newsletter::instance()->get_email($email_id), $users);
        $controls->messages .= 'Test emails sent to ' . count($users) . ' test subscribers. Read more about test subscribers <a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#test" target="_blank">here</a>.';
    }
    $controls->messages .= '<br>If diagnostic emails are delivered but test emails are not, try to change the encoding to "base 64" on main configuration panel';
}
if ($email['editor'] == 0) {
    $x = strpos($controls->data['message'], '<body');
    // Some time the message in $nc->data is already cleaned up, it depends on action called
    if ($x !== false) {
        $x = strpos($controls->data['message'], '>', $x);
        $y = strpos($controls->data['message'], '</body>');
        $controls->data['message'] = substr($controls->data['message'], $x + 1, $y - $x - 1);
    }
}
?>
Exemplo n.º 8
0
 }
 if ($controls->is_action('test-template')) {
     $users = NewsletterUsers::instance()->get_test_users();
     if (count($users) == 0) {
         $controls->errors = 'There are no test subscribers. Read more about test subscribers <a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#test" target="_blank">here</a>.';
     } else {
         $template = $controls->data['template'];
         if (strpos($template, '{message}') === false) {
             $template .= '{message}';
         }
         $message = '<p>This is a generic example of message embedded inside the template.</p>';
         $message = str_replace('{message}', $message, $template);
         $addresses = array();
         foreach ($users as &$user) {
             $addresses[] = $user->email;
             Newsletter::instance()->mail($user->email, 'Newsletter Messages Template Test', $newsletter->replace($message, $user));
         }
         $controls->messages .= 'Test emails sent to ' . count($users) . ' test subscribers: ' . implode(', ', $addresses) . '. Read more about test subscribers <a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#test" target="_blank">here</a>.';
     }
 }
 if ($controls->is_action('test-confirmation')) {
     $users = NewsletterUsers::instance()->get_test_users();
     if (count($users) == 0) {
         $controls->errors = 'There are no test subscribers. Read more about test subscribers <a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#test" target="_blank">here</a>.';
     } else {
         $template = $controls->data['template'];
         if (strpos($template, '{message}') === false) {
             $template .= '{message}';
         }
         $message = '<p>This is a generic example of message embedded inside the template.</p>';
         $message = str_replace('{message}', $message, $template);
Exemplo n.º 9
0
<?php

require_once '../../../../wordpress/wp-load.php';
$newsletter = Newsletter::instance();
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
// TODO: Check the user capabilities
if (current_user_can('manage_options') || $newsletter->options['editor'] == 1 && current_user_can('manage_categories')) {
    $controls = new NewsletterControls();
    if ($controls->is_action('export')) {
        NewsletterUsers::instance()->export($controls->data);
    }
} else {
    die('Not allowed.');
}
Exemplo n.º 10
0
<?php

header('Content-Type: text/html;charset=UTF-8');
header('X-Robots-Tag: noindex,nofollow,noarchive');
header('Cache-Control: no-cache,no-store,private');
include '../../../../wp-load.php';
$user = Newsletter::instance()->get_user_from_request(true);
$field = $_REQUEST['nf'];
$value = $_REQUEST['nv'];
$url = $_REQUEST['nu'];
switch ($field) {
    case 'sex':
        if (!in_array($value, array('f', 'm', 'n'))) {
            die('Invalid sex value');
        }
        NewsletterUsers::instance()->set_user_field($user->id, 'sex', $value);
        break;
        // Should be managed by Feed by Mail
    // Should be managed by Feed by Mail
    case 'feed':
        if (isset($value) && ($value === '0' || $value === '1')) {
            NewsletterUsers::instance()->set_user_field($user->id, 'feed', $value);
        } else {
            die('Invalid feed value');
        }
        break;
}
if (strpos($field, 'preference_') === 0) {
    $idx = (int) substr($field, 11);
    $options_profile = get_option('newsletter_profile');
    if ($options_profile['list_' . $idx . '_status'] == 0) {
Exemplo n.º 11
0
//die($url);
$verified = $parts['host'] == $_SERVER['HTTP_HOST'];
if (!$verified) {
    $options = NewsletterStatistics::instance()->options;
    $verified = $key == md5($email_id . ';' . $user_id . ';' . $url . ';' . $anchor . $options['key']);
}
// For feed by mail tests
if ($verified && empty($email_id) && is_user_logged_in()) {
    header('Location: ' . $url);
    die;
}
$ip = preg_replace('/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR']);
if ($verified) {
    $wpdb->insert(NEWSLETTER_STATS_TABLE, array('email_id' => $email_id, 'user_id' => $user_id, 'url' => $url, 'ip' => $ip));
    $wpdb->query($wpdb->prepare("update " . NEWSLETTER_SENT_TABLE . " set open=2, ip=%s where email_id=%d and user_id=%d limit 1", $ip, $email_id, $user_id));
    $user = Newsletter::instance()->get_user($user_id);
    if ($user) {
        setcookie('newsletter', $user->id . '-' . $user->token, time() + 60 * 60 * 24 * 365, '/');
    }
    header('Location: ' . $url);
    die;
} else {
    header("HTTP/1.0 404 Not Found");
    //header('Location: ' . home_url());
    //die();
}
?>
<html>
    <head>
        <style>
            body {
Exemplo n.º 12
0
 function shortcode_newsletter_lock($attrs, $content = null)
 {
     global $hyper_cache_stop, $cache_stop;
     $hyper_cache_stop = true;
     $cache_stop = true;
     $this->found = true;
     $user = $this->check_user();
     if ($user != null && $user->status == 'C') {
         return do_shortcode($content);
     }
     $buffer = $this->options['message'];
     $buffer = str_ireplace('<form', '<form method="post" action="' . plugins_url('newsletter/do/subscribe.php') . '"', $buffer);
     $buffer = Newsletter::instance()->replace($buffer, null, null, 'lock');
     $buffer = do_shortcode($buffer);
     return '<div class="newsletter-lock">' . $buffer . '</div>';
 }
Exemplo n.º 13
0
    ?>
" href="<?php 
    echo NewsletterStatistics::instance()->get_statistics_url($email->id);
    ?>
"><i class="fa fa-bar-chart"></i></a>
                                            </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="http://www.thenewsletterplugin.com/extensions" target="_blank">
                                        <i class="fa fa-trophy"></i> <?php 
    _e('Buy', 'newsletter');
    ?>
                                    </a>
                                </h3>
                                <div class="inside">
                                    <div>
                                        <a href="http://www.thenewsletterplugin.com/extensions" target="_blank">
Exemplo n.º 14
0
 /**
  * @return Newsletter
  */
 static function instance()
 {
     if (self::$instance == null) {
         self::$instance = new Newsletter();
     }
     return self::$instance;
 }
Exemplo n.º 15
0
 function hook_site_transient_update_plugins($value)
 {
     if (!class_exists('Newsletter')) {
         return $value;
     }
     // See the wp_update_plugins function
     if (!is_object($value)) {
         return $value;
     }
     if (!isset($value->response[$this->plugin])) {
         return $value;
     }
     if (defined('NEWSLETTER_LICENSE_KEY')) {
         $value->response[$this->plugin]->package = 'http://www.thenewsletterplugin.com/wp-content/plugins/file-commerce-pro/get.php?f=' . $this->id . '&k=' . NEWSLETTER_LICENSE_KEY;
     } else {
         $value->response[$this->plugin]->package = 'http://www.thenewsletterplugin.com/wp-content/plugins/file-commerce-pro/get.php?f=' . $this->id . '&k=' . Newsletter::instance()->options['contract_key'];
     }
     return $value;
 }
Exemplo n.º 16
0
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$module = Newsletter::instance();
$controls = new NewsletterControls();
if (!$controls->is_action()) {
    $controls->data = $module->get_options('smtp');
} else {
    if ($controls->is_action('save')) {
        if ($controls->data['enabled'] && empty($controls->data['host'])) {
            $controls->errors = 'The host must be set to enable the SMTP';
        }
        if (empty($controls->errors)) {
            $module->save_options($controls->data, 'smtp');
            $controls->messages .= __('Saved. Remember to test your changes right now!', 'newsletter');
        }
    }
    if ($controls->is_action('test')) {
        require_once ABSPATH . WPINC . '/class-phpmailer.php';
        require_once ABSPATH . WPINC . '/class-smtp.php';
        $mail = new PHPMailer();
        ob_start();
        $mail->IsSMTP();
        $mail->SMTPDebug = true;
        $mail->CharSet = 'UTF-8';
        $message = 'This Email is sent by PHPMailer of WordPress';
        $mail->IsHTML(false);
        $mail->Body = $message;
        $mail->From = $module->options['sender_email'];
        $mail->FromName = $module->options['sender_name'];
        if (!empty($module->options['return_path'])) {
Exemplo n.º 17
0
 function get_email_from_request()
 {
     $newsletter = Newsletter::instance();
     if (isset($_REQUEST['nek'])) {
         list($id, $token) = @explode('-', $_REQUEST['nek'], 2);
     } else {
         return null;
     }
     $email = $newsletter->get_email($id);
     return $email;
 }
Exemplo n.º 18
0
                    <tr valign="top">
                        <th>Enabled?</th>
                        <td>
                            <?php 
$controls->yesno('enabled');
?>
                        </td>
                    </tr>
                    <tr valign="top">
                        <th>License key</th>
                        <td>
                            <?php 
if (empty(Newsletter::instance()->options['contract_key'])) {
    echo 'Not set';
} else {
    echo Newsletter::instance()->options['contract_key'];
}
?>
                            <p class="description">
                                The license key can be set on main Newsletter configuration and will be used for the one clic
                                update feature.
                            </p>
                        </td>
                    </tr>
                </table>
            </div>


            <div id="tabs-smtp">

                <p>
Exemplo n.º 19
0
<?php

include '../../../../wp-load.php';
$email_id = (int) $_GET['id'];
$body = Newsletter::instance()->get_email_field($email_id, 'message');
$x = strpos($body, '<style');
if ($x === false) {
    return;
}
$x = strpos($body, '>', $x);
$y = strpos($body, '</style>');
header('Content-Type: text/css');
echo substr($body, $x + 1, $y - $x - 1);
Exemplo n.º 20
0
                <?php 
if ($email['editor'] == 0) {
    $controls->editor('message', 30);
} else {
    $controls->textarea_preview('message', '100%', '700');
}
?>


            </div>


            <div id="tabs-b">
                <?php 
if (Newsletter::instance()->options['phpmailer'] == 0) {
    ?>
                <p class="tnp-tab-warning">The text part is sent only when Newsletter manages directly the sending process. <a href="admin.php?page=newsletter_main_main" target="_blank">See the main settings</a>.</p>
                <?php 
}
?>
                <p>
                    This is the textual version of your newsletter. If you empty it, only an HTML version will be sent but
                    is an anti-spam best practice to include a text only version.
                </p>

                <?php 
$controls->textarea_fixed('message_text', '100%', '500');
?>
            </div>
Exemplo n.º 21
0
}
if (Newsletter::instance()->options['editor'] != 1 && !current_user_can('manage_options')) {
    die('Not enough privileges');
}
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterEmails::instance();
if ($controls->is_action('create')) {
    $module->save_options($controls->data);
    $email = array();
    $email['status'] = 'new';
    $email['subject'] = '';
    //__('Here the email subject', 'newsletter-emails');
    $email['track'] = 1;
    $theme_options = $module->get_current_theme_options();
    $theme_url = $module->get_current_theme_url();
    $theme_subject = '';
    ob_start();
    include $module->get_current_theme_file_path('theme.php');
    $email['message'] = ob_get_clean();
    if (!empty($theme_subject)) {
        $email['subject'] = $theme_subject;
    }
    ob_start();
    include $module->get_current_theme_file_path('theme-text.php');
    $email['message_text'] = ob_get_clean();
    $email['type'] = 'message';
    $email['send_on'] = time();
    $email = Newsletter::instance()->save_email($email);
    header('Location: ' . $module->get_admin_page_url('edit') . '&id=' . $email->id);
}
Exemplo n.º 22
0
if ($controls->is_action('undismiss')) {
    update_option('newsletter_dismissed', array());
    $controls->messages = 'Notices restored.';
}
if ($controls->is_action('trigger_followup')) {
    NewsletterFollowup::instance()->send();
    $controls->messages = 'Follow up delivery engine triggered.';
}
if ($controls->is_action('engine_on')) {
    wp_clear_scheduled_hook('newsletter');
    wp_schedule_event(time() + 30, 'newsletter', 'newsletter');
    $controls->messages = 'Delivery engine reactivated.';
}
if ($controls->is_action('upgrade')) {
    // TODO: Compact them in a call to Newsletter which should be able to manage the installed modules
    Newsletter::instance()->upgrade();
    NewsletterUsers::instance()->upgrade();
    NewsletterSubscription::instance()->upgrade();
    NewsletterEmails::instance()->upgrade();
    NewsletterStatistics::instance()->upgrade();
    if (method_exists('NewsletterFollowup', 'upgrade')) {
        NewsletterFollowup::instance()->upgrade();
    }
    $controls->messages = 'Upgrade forced!';
}
if ($controls->is_action('upgrade_old')) {
    $row = $wpdb->get_row("select * from " . NEWSLETTER_USERS_TABLE . " limit 1");
    if (!isset($row->id)) {
        $row = $wpdb->query("alter table " . NEWSLETTER_USERS_TABLE . " drop primary key");
        $row = $wpdb->query("alter table " . NEWSLETTER_USERS_TABLE . " add column id int not null auto_increment primary key");
        $row = $wpdb->query("alter table " . NEWSLETTER_USERS_TABLE . " add unique email (email)");
Exemplo n.º 23
0
 /**
  * Loads the user using the request parameters (nk or nt and ni).
  *
  * @global Newsletter $newsletter
  * @return null
  */
 function get_user_from_request()
 {
     $newsletter = Newsletter::instance();
     if (isset($_REQUEST['nk'])) {
         list($id, $token) = @explode('-', $_REQUEST['nk'], 2);
     } else {
         if (isset($_REQUEST['ni'])) {
             $id = (int) $_REQUEST['ni'];
             $token = $_REQUEST['nt'];
         } else {
             return null;
         }
     }
     $user = $newsletter->get_user($id);
     if ($user == null || $token != $user->token) {
         return null;
     }
     return $user;
 }
Exemplo n.º 24
0
<?php

/**
 * This is a generic viewer for sent emails. It is not binded to one shot emails, it can display even the emails from
 * updates or feed by mail module.
 */
header('Content-Type: text/html;charset=UTF-8');
header('X-Robots-Tag: noindex,nofollow,noarchive');
header('Cache-Control: no-cache,no-store,private');
include '../../../../wp-load.php';
// TODO: Change to Newsletter::instance()->get:email(), not urgent
$email = Newsletter::instance()->get_email((int) $_GET['id']);
if (empty($email)) {
    die('Email not found');
}
$user = NewsletterSubscription::instance()->get_user_from_request();
if (is_file(WP_CONTENT_DIR . '/extensions/newsletter/view.php')) {
    include WP_CONTENT_DIR . '/extensions/newsletter/view.php';
    die;
}
echo $newsletter->replace($email->message, $user, $email->id);
Exemplo n.º 25
0
 /**
  * Completes the WordPress plugin update data with the extension data. 
  * $value is the data WordPress is saving
  * $extension is an instance of an extension
  */
 function set_extension_update_data($value, $extension)
 {
     // See the wp_update_plugins function
     if (!is_object($value)) {
         return $value;
     }
     // If someone registered our extension name on wordpress.org... get rid of it otherwise
     // our extenions will be overwritten!
     unset($value->response[$extension->plugin]);
     unset($value->no_update[$extension->plugin]);
     if (defined('NEWSLETTER_EXTENSION_UPDATE') && !NEWSLETTER_EXTENSION_UPDATE) {
         return $value;
     }
     if (!function_exists('get_plugin_data')) {
         return $value;
     }
     $new_version = $this->get_extension_version($extension->id);
     if (empty($new_version)) {
         return $value;
     }
     if (function_exists('get_plugin_data')) {
         if (file_exists(WP_PLUGIN_DIR . '/' . $extension->plugin)) {
             $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $extension->plugin, false, false);
         } else {
             if (file_exists(WPMU_PLUGIN_DIR . '/' . $extension->plugin)) {
                 $plugin_data = get_plugin_data(WPMU_PLUGIN_DIR . '/' . $extension->plugin, false, false);
             }
         }
     }
     if (!isset($plugin_data)) {
         return $value;
     }
     if (version_compare($new_version, $plugin_data['Version']) <= 0) {
         return $value;
     }
     $plugin = new stdClass();
     $plugin->id = $extension->id;
     $plugin->slug = $extension->slug;
     $plugin->plugin = $extension->plugin;
     $plugin->new_version = $new_version;
     $plugin->url = '';
     $value->response[$extension->plugin] = $plugin;
     if (defined('NEWSLETTER_LICENSE_KEY')) {
         $value->response[$extension->plugin]->package = 'http://www.thenewsletterplugin.com/wp-content/plugins/file-commerce-pro/get.php?f=' . $extension->id . '&k=' . NEWSLETTER_LICENSE_KEY;
     } else {
         $value->response[$extension->plugin]->package = 'http://www.thenewsletterplugin.com/wp-content/plugins/file-commerce-pro/get.php?f=' . $extension->id . '&k=' . Newsletter::instance()->options['contract_key'];
     }
     return $value;
 }
Exemplo n.º 26
0
 /**
  *
  * @global Newsletter $newsletter
  * @param int|string $id_or_email
  * @param string $status
  * @return boolean
  */
 function set_user_status($id_or_email, $status)
 {
     $newsletter = Newsletter::instance();
     return $newsletter->set_user_status($id_or_email, $status);
 }
Exemplo n.º 27
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$module = NewsletterStatistics::instance();
$controls = new NewsletterControls();
$emails = Newsletter::instance()->get_emails();
if ($controls->is_action('save')) {
    $module->save_options($controls->data);
    $controls->messages = 'Saved.';
}
?>

<div class="wrap">
    <?php 
$help_url = 'http://www.thenewsletterplugin.com/plugins/newsletter/statistics-module';
?>

    <?php 
include NEWSLETTER_DIR . '/header-new.php';
?>

    <div id="newsletter-title">
        <h2>Configuration and Email List</h2>

        <p>
            This module is a core part of Newsletter that collects statistics about sent emails: how many have
            been read, how many have been clicked and so on.
        </p>
        <p>
            To see the statistics of each single email, you should click the "statistics" button
            you will find near each message where they are listed (like on Newsletters panel). For your
Exemplo n.º 28
0
        } else {
            $controls->messages = 'Updated.';
            $controls->data = $module->get_user($id, ARRAY_A);
        }
    }
}
if ($controls->is_action('delete')) {
    $module->delete_user($id);
    $controls->js_redirect($module->get_admin_page_url('index'));
    return;
}
if (!$controls->is_action()) {
    $controls->data = $module->get_user($id, ARRAY_A);
}
$options_profile = get_option('newsletter_profile');
$panels = Newsletter::instance()->panels;
//$wpdb->query($wpdb->prepare("insert ignore into " . $wpdb->prefix . "newsletter_sent (user_id, email_id, time) select user_id, email_id, UNIX_TIMESTAMP(created) from " . NEWSLETTER_STATS_TABLE . " where user_id=%d", $id));
function percent($value, $total)
{
    if ($total == 0) {
        return '-';
    }
    return sprintf("%.2f", $value / $total * 100) . '%';
}
function percentValue($value, $total)
{
    if ($total == 0) {
        return 0;
    }
    return round($value / $total * 100);
}