<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
$module = NewsletterSubscription::instance();
// TODO: Remove and use the $module->options.
$options = get_option('newsletter', array());
if ($controls->is_action()) {
    if ($controls->is_action('save')) {
        $defaults = $module->get_default_options();
        if (empty($controls->data['profile_text'])) {
            $controls->data['profile_text'] = $defaults['profile_text'];
        }
        // Without the last curly bracket since there can be a form number apended
        if (empty($controls->data['subscription_text'])) {
            $controls->data['subscription_text'] = $defaults['subscription_text'];
        }
        if (empty($controls->data['confirmation_text'])) {
            $controls->data['confirmation_text'] = $defaults['confirmation_text'];
        }
        if (empty($controls->data['confirmation_subject'])) {
            $controls->data['confirmation_subject'] = $defaults['confirmation_subject'];
        }
        if (empty($controls->data['confirmation_message'])) {
            $controls->data['confirmation_message'] = $defaults['confirmation_message'];
        }
        if (empty($controls->data['confirmed_text'])) {
            $controls->data['confirmed_text'] = $defaults['confirmed_text'];
        }
        if (empty($controls->data['confirmed_subject'])) {
            $controls->data['confirmed_subject'] = $defaults['confirmed_subject'];
Exemple #2
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterUsers::instance();
$options = stripslashes_deep($_POST['options']);
$options_lists = get_option('newsletter_profile');
$options_profile = get_option('newsletter_profile');
$options_main = get_option('newsletter_main');
$lists = array('' => 'Any');
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
    if (empty($options_lists['list_' . $i])) {
        continue;
    }
    $lists['' . $i] = '(' . $i . ') ' . $options_lists['list_' . $i];
}
if ($controls->is_action('resend')) {
    $user = NewsletterUsers::instance()->get_user($controls->button_data);
    $opts = get_option('newsletter');
    $newsletter->mail($user->email, $newsletter->replace($opts['confirmation_subject'], $user), $newsletter->replace($opts['confirmation_message'], $user));
    $controls->messages = 'Activation email resent to ' . $user->email;
}
if ($controls->is_action('resend_welcome')) {
    $user = NewsletterUsers::instance()->get_user($controls->button_data);
    $opts = get_option('newsletter');
    $newsletter->mail($user->email, $newsletter->replace($opts['confirmed_subject'], $user), $newsletter->replace($opts['confirmed_message'], $user));
    $controls->messages = 'Welcome email resent.';
}
if ($controls->is_action('remove')) {
    $wpdb->query($wpdb->prepare("delete from " . $wpdb->prefix . "newsletter where id=%d", $controls->button_data));
    unset($controls->data['subscriber_id']);
Exemple #3
0
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
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.';
}
?>
<div class="wrap main-index">


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

    <div id="newsletter-title">
        <h2>Welcome and Support</h2>
        <p>
            With my horrible English, everything can be found starting from <a href="http://www.thenewsletterplugin.com/plugins/newsletter" target="_blank">Newsletter Official page</a>
            and every configuration panel has some included documentation just to avoid the most common mistakes.
        </p>
    </div>
    <div class="newsletter-separator"></div>
Exemple #4
0
<?php

if (function_exists('load_plugin_textdomain')) {
    load_plugin_textdomain('newsletter-statistics', false, 'newsletter/statistics/languages');
    load_plugin_textdomain('newsletter', false, 'newsletter/languages');
}
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$module = NewsletterStatistics::instance();
$controls = new NewsletterControls();
$emails = Newsletter::instance()->get_emails();
if (!$controls->is_action()) {
    $controls->data = $module->options;
}
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>
Exemple #5
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterUsers::instance();
if ($controls->is_action('save')) {
    $controls->data['status'] = 'C';
    $controls->data['sex'] = 'n';
    $user = $module->save_user($controls->data);
    if ($user === false) {
        $controls->errors = 'This email already exists.';
    } else {
        $controls->js_redirect($module->get_admin_page_url('edit') . '&id=' . $user->id);
        return;
    }
}
?>
<div class="wrap">
    <?php 
$help_url = 'http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module';
?>
    <?php 
include NEWSLETTER_DIR . '/header-new.php';
?>
    <div id="newsletter-title">
    <?php 
include NEWSLETTER_DIR . '/users/menu.inc.php';
?>

    <h2>New subscriber</h2>
</div>
Exemple #6
0
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
$module = NewsletterSubscription::instance();
if (!$controls->is_action()) {
    $controls->data = $module->get_options('profile');
} else {
    if ($controls->is_action('save')) {
        $module->merge_options($controls->data, 'profile');
        $controls->add_message_saved();
    }
}
$status = array(0 => 'Disabled/Private use', 1 => 'Only on profile page', 2 => 'Even on subscription forms', '3' => 'Hidden');
?>

<div class="wrap" id="tnp-wrap">
    
    <?php 
include NEWSLETTER_DIR . '/tnp-header.php';
?>
    
    <div id="tnp-heading">
    
    <h2><?php 
_e('Lists', 'newsletter');
?>
</h2>
        
    <p>
        Preferences are on/off choices users can select during subscription and change on their profile.
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
$module = NewsletterSubscription::instance();
if (!$controls->is_action()) {
    $controls->data = get_option('newsletter_forms');
}
if ($controls->is_action('save')) {
    update_option('newsletter_forms', $controls->data);
    $controls->add_message_saved();
}
?>

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

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

    <div id="tnp-heading">

        <h2><?php 
_e('Custom Forms', 'newsletter');
?>
</h2>
        <p>
            Here you can store your hand coded forms to recall them from short codes.
            <a href="http://www.thenewsletterplugin.com/plugins/newsletter/newsletter-forms" target="_blank">Read more about forms</a>.
        </p>
Exemple #8
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'])) {
Exemple #9
0
if ($action == 'save') {
    $options = stripslashes_deep($_POST['options']);
    $options['confirmed_url'] = trim($options['confirmed_url']);
    if ($errors == null) {
        update_option('newsletter', $options);
    }
}
if ($action == 'reset') {
    @(include_once dirname(__FILE__) . '/languages/en_US_options.php');
    if (WPLANG != '') {
        @(include_once dirname(__FILE__) . '/languages/' . WPLANG . '_options.php');
    }
    $options = array_merge($options, $newsletter_default_options);
    update_option('newsletter', $options);
}
$nc = new NewsletterControls($options);
?>

<?php 
if ($options['novisual'] != 1) {
    ?>
<script type="text/javascript" src="<?php 
    echo get_option('siteurl');
    ?>
/wp-content/plugins/newsletter/tiny_mce/tiny_mce.js"></script>

<script type="text/javascript">
tinyMCE.init({
    mode : "specific_textareas",
    editor_selector : "visual",
    theme : "advanced",
Exemple #10
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterUsers::instance();
$options = $controls->data;
$options_lists = get_option('newsletter_profile');
$options_profile = get_option('newsletter_profile');
$options_main = get_option('newsletter_main');
// Move to base zero
if ($controls->is_action()) {
    $controls->data['search_page'] = (int) $controls->data['search_page'] - 1;
    $module->save_options($controls->data, 'search');
} else {
    $controls->data = $module->get_options('search');
    if (empty($controls->data['search_page'])) {
        $controls->data['search_page'] = 0;
    }
}
$lists = array('' => 'Any');
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
    if (empty($options_lists['list_' . $i])) {
        continue;
    }
    $lists['' . $i] = '(' . $i . ') ' . $options_lists['list_' . $i];
}
if ($controls->is_action('resend')) {
    $user = NewsletterUsers::instance()->get_user($controls->button_data);
    $opts = get_option('newsletter');
    NewsletterSubscription::instance()->mail($user->email, $newsletter->replace($opts['confirmation_subject'], $user), $newsletter->replace($opts['confirmation_message'], $user));
    $controls->messages = 'Activation email resent to ' . $user->email;
Exemple #11
0
<?php

@(include_once 'commons.php');
$nc = new NewsletterControls();
$emails = $wpdb->get_results("select * from " . $wpdb->prefix . "newsletter_emails where type='email' order by id desc");
if ($nc->is_action('send')) {
    $newsletter->hook_newsletter();
}
?>

<div class="wrap">

<h2>Messages</h2>

<?php 
include dirname(__FILE__) . '/header.php';
?>

<form method="post" action="admin.php?page=newsletter/emails.php">
    <?php 
$nc->init();
?>

<p><a href="admin.php?page=newsletter/emails-edit.php&amp;id=0" class="button">New message</a></p>
<p>
    Delivery engine next run: <?php 
echo wp_next_scheduled('newsletter') - time();
?>
 seconds
    <?php 
$nc->button('send', 'Trigger now');
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
$module = NewsletterSubscription::instance();
if (!$controls->is_action()) {
    $controls->data = $module->get_options('template');
} else {
    if ($controls->is_action('save')) {
        $module->save_options($controls->data, 'template');
        if (strpos($controls->data['template'], '{message}') === false) {
            $controls->errors = 'Warning: the tag {message} is missing in your template';
        }
        $controls->messages = 'Saved.';
    }
    if ($controls->is_action('reset')) {
        $controls->data['template'] = file_get_contents(dirname(__FILE__) . '/email.html');
        $controls->messages = 'Done.';
    }
    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 {
            $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 .= '<p>Subscriber data can be referenced by messages with tags. See the <a href="http://www.thenewsletterplugin.com">plugin documentation</a>.</p>';
            $message .= '<p>First name: {name}</p>';
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
if ($controls->is_action('save')) {
    update_option('newsletter_log_level', $controls->data['log_level']);
    update_option('newsletter_diagnostic', $controls->data);
    $controls->messages = 'Loggin levels saved.';
}
if ($controls->is_action('reset_cron_calls')) {
    update_option($module->prefix . '_cron_calls', false);
    $controls->messages = 'Reset.';
}
if ($controls->is_action('check-versions')) {
    $newsletter->hook_newsletter_extension_versions(true);
    $controls->messages = 'Extensions data updated. Go to the plugins panel to see if there are updates available.';
}
if ($controls->is_action('trigger')) {
    $newsletter->hook_newsletter();
    $controls->messages = 'Delivery engine triggered.';
}
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');
Exemple #14
0
<?php

/* @var $wpdb wpdb */
require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterEmails::instance();
// Always required
$email = Newsletter::instance()->get_email((int) $_GET['id'], ARRAY_A);
if (empty($email)) {
    echo 'Wrong email identifier';
    return;
}
$email_id = $email['id'];
// If there is no action we assume we are enter the first time so we populate the
// $nc->data with the editable email fields
if (!$controls->is_action()) {
    $controls->data = $email;
    if (!empty($email['preferences'])) {
        $controls->data['preferences'] = explode(',', $email['preferences']);
    }
    if (!empty($email['sex'])) {
        $controls->data['sex'] = explode(',', $email['sex']);
    }
    $email_options = unserialize($email['options']);
    if (is_array($email_options)) {
        $controls->data = array_merge($controls->data, $email_options);
    }
}
if ($controls->is_action('test') || $controls->is_action('save') || $controls->is_action('send') || $controls->is_action('editor')) {
    // If we were editing with visual editor (==0), we must read the extra <body> content
    if ($email['editor'] == 0) {
Exemple #15
0
<?php

// Stops WP Super Cache which removes the logged_in cookie
$_GET['preview'] = 'true';
require_once '../../../../wp-load.php';
if (!is_user_logged_in()) {
    die('No logged in user found. A plugin is almost surely removing the authentication cookies, usually a cache plugin. Try to report the issue on http://www.thenewsletterplugin.com forum.');
}
if (!current_user_can('manage_categories')) {
    die('Not enough privileges');
}
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)) {
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
$module = NewsletterUsers::instance();
$options_profile = get_option('newsletter_profile');
$lists = array();
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
    if (!isset($options_profile['list_' . $i])) {
        $options_profile['list_' . $i] = '';
    }
    $lists['' . $i] = '(' . $i . ') ' . $options_profile['list_' . $i];
}
if ($controls->is_action('remove_unconfirmed')) {
    $r = $wpdb->query("delete from " . NEWSLETTER_USERS_TABLE . " where status='S'");
    $controls->messages = __('Subscribers not confirmed deleted: ', 'newsletter') . $r . '.';
}
if ($controls->is_action('remove_unsubscribed')) {
    $r = $wpdb->query("delete from " . NEWSLETTER_USERS_TABLE . " where status='U'");
    $controls->messages = __('Subscribers unsubscribed deleted: ', 'newsletter') . $r . '.';
}
if ($controls->is_action('remove_bounced')) {
    $r = $wpdb->query("delete from " . NEWSLETTER_USERS_TABLE . " where status='B'");
    $controls->messages = __('Subscribers bounced deleted: ', 'newsletter') . $r . '.';
}
if ($controls->is_action('unconfirm_all')) {
    $r = $wpdb->query("update " . NEWSLETTER_USERS_TABLE . " set status='S' where status='C'");
    $controls->messages = __('Subscribers changed to not confirmed: ', 'newsletter') . $r . '.';
}
if ($controls->is_action('confirm_all')) {
    $r = $wpdb->query("update " . NEWSLETTER_USERS_TABLE . " set status='C' where status='S'");
Exemple #17
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterUsers::instance();
$options_profile = get_option('newsletter_profile');
if ($controls->is_action('import')) {
    $mode = $controls->data['mode'];
    // TODO: to be removed, it's not safe
    @set_time_limit(100000);
    $results = '';
    if (is_uploaded_file($_FILES['csv_file']['tmp_name'])) {
        $lines = file($_FILES['csv_file']['tmp_name']);
    } else {
        $csv = stripslashes($controls->data['csv']);
        $lines = explode("\n", $csv);
    }
    // Set the selected preferences inside the
    if (!is_array($controls->data['preferences'])) {
        $controls->data['preferences'] = array();
    }
    //    if ($options['followup'] == 'activate') {
    //        $subscriber['followup'] = 1;
    //    }
    $error_count = 0;
    $added_count = 0;
    $updated_count = 0;
    $skipped_count = 0;
    foreach ($lines as &$line) {
        // Parse the CSV line
        $line = trim($line);
Exemple #18
0
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
$module = NewsletterSubscription::instance();
// TODO: Remove and use the $module->options.
$options = get_option('newsletter', array());
if ($controls->is_action()) {
    if ($controls->is_action('save')) {
        $defaults = $module->get_default_options();
        if (empty($controls->data['profile_text'])) {
            $controls->data['profile_text'] = $defaults['profile_text'];
        }
        // Without the last curly bracket since there can be a form number apended
        if (empty($controls->data['subscription_text'])) {
            $controls->data['subscription_text'] = $defaults['subscription_text'];
        }
        if (empty($controls->data['confirmation_text'])) {
            $controls->data['confirmation_text'] = $defaults['confirmation_text'];
        }
        if (empty($controls->data['confirmation_subject'])) {
            $controls->data['confirmation_subject'] = $defaults['confirmation_subject'];
        }
        if (empty($controls->data['confirmation_message'])) {
            $controls->data['confirmation_message'] = $defaults['confirmation_message'];
        }
        if (empty($controls->data['confirmed_text'])) {
            $controls->data['confirmed_text'] = $defaults['confirmed_text'];
        }
        if (empty($controls->data['confirmed_subject'])) {
            $controls->data['confirmed_subject'] = $defaults['confirmed_subject'];
Exemple #19
0
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$options_profile = get_option('newsletter_profile');
$controls = new NewsletterControls();
$module = NewsletterUsers::instance();
$lists = array('0' => 'All');
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
    if (!isset($options_profile['list_' . $i])) {
        $options_profile['list_' . $i] = '';
    }
    $lists['' . $i] = '(' . $i . ') ' . $options_profile['list_' . $i];
}
?>

<div class="wrap" id="tnp-wrap">
    
    <?php 
include NEWSLETTER_DIR . '/tnp-header.php';
?>

    <div id="tnp-heading">
        
        <h2><?php 
_e('Export', 'newsletter');
?>
</h2>
        <p>
            The import and export functions <strong>ARE NOT for backup</strong>. 
            If you want to backup you should consider to backup the
            wp_newsletter* tables.
Exemple #20
0
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
$module = NewsletterSubscription::instance();
if (!$controls->is_action()) {
    $controls->data = get_option('newsletter_profile');
} else {
    if ($controls->is_action('save')) {
        update_option('newsletter_profile', $controls->data);
    }
    if ($controls->is_action('reset')) {
        // TODO: Move this inside the module
        @(include NEWSLETTER_DIR . '/subscription/languages/profile-en_US.php');
        @(include NEWSLETTER_DIR . '/subscription/languages/profile-' . WPLANG . '.php');
        update_option('newsletter_profile', array_merge(get_option('newsletter_profile', array()), $options));
        $controls->data = get_option('newsletter_profile');
    }
}
$status = array(0 => 'Disabled/Private use', 1 => 'Only on profile page', 2 => 'Even on subscription forms');
$rules = array(0 => 'Optional', 1 => 'Required');
?>

<div class="wrap">
    <?php 
$help_url = 'http://www.thenewsletterplugin.com/plugins/newsletter/subscription-module';
?>
    <?php 
include NEWSLETTER_DIR . '/header-new.php';
?>
Exemple #21
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$module = NewsletterStatistics::instance();
$controls = new NewsletterControls();
$email_id = (int) $_GET['id'];
$email = $module->get_email($email_id);
if ($email->send_on == 0) {
    $wpdb->query($wpdb->prepare("update " . NEWSLETTER_EMAILS_TABLE . " set send_on=unix_timestamp(created) where id=%d limit 1", $email->id));
    $email = $module->get_email($email->id);
}
$count = $wpdb->get_var($wpdb->prepare("select count(*) from " . NEWSLETTER_SENT_TABLE . " where email_id=%d", $email_id));
if (true || $count == 0) {
    if (empty($email->query)) {
        $email->query = "select * from " . NEWSLETTER_USERS_TABLE . " where status='C'";
    }
    $query = str_replace('*', 'id, unix_timestamp(created) as created', $email->query);
    $ids = $wpdb->get_results($query . " and unix_timestamp(created)<" . $email->send_on);
    foreach ($ids as $id) {
        $wpdb->query($wpdb->prepare("insert ignore into " . $wpdb->prefix . 'newsletter_sent (user_id, email_id, time, status, error) values (%d, %d, %d, %d, %s)', $id->id, $email->id, $email->send_on, 0, ''));
    }
    $wpdb->query($wpdb->prepare("update " . $wpdb->prefix . "newsletter_sent s1 join " . $wpdb->prefix . "newsletter_stats s2 on s1.user_id=s2.user_id and s1.email_id=s2.email_id and s1.email_id=%d set s1.open=1, s1.ip=s2.ip", $email->id));
    $wpdb->query($wpdb->prepare("update " . $wpdb->prefix . "newsletter_sent s1 join " . $wpdb->prefix . "newsletter_stats s2 on s1.user_id=s2.user_id and s1.email_id=s2.email_id and s2.url<>'' and s1.email_id=%d set s1.open=2, s1.ip=s2.ip", $email->id));
}
$total_count = $total_sent = $email->total;
$open_count = (int) $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where email_id=" . $email_id);
$click_count = (int) $wpdb->get_var("select count(distinct user_id) from " . NEWSLETTER_STATS_TABLE . " where url<>'' and email_id=" . $email_id);
function percent($value, $total)
{
    if ($total == 0) {
        return '-';
<?php

@(include_once 'commons.php');
$nc = new NewsletterControls();
if (isset($_GET['id'])) {
    $nc->load($wpdb->prefix . 'newsletter', $_GET['id']);
    if (empty($nc->data['id'])) {
        $nc->data['status'] = 'C';
        $nc->data['token'] = md5(rand());
    }
} else {
    if ($nc->is_action('save')) {
        for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
            if (!isset($nc->data['list_' . $i])) {
                $nc->data['list_' . $i] = 0;
            }
        }
        $nc->save($wpdb->prefix . 'newsletter');
    }
}
$nc->errors($errors);
$nc->messages($messages);
$options_profile = get_option('newsletter_profile');
?>
<div class="wrap">
    <h2>Newsletter Subscriber Editing</h2>
    <p><a href="admin.php?page=newsletter/users.php">Back to the list</a></p>
    <form method="post" action="admin.php?page=newsletter/users-edit.php">
        <?php 
$nc->init();
?>
<?php

@(include_once 'commons.php');
$nc = new NewsletterControls();
if (isset($_GET['id'])) {
    $nc->load($wpdb->prefix . 'newsletter_emails', $_GET['id']);
    if (empty($nc->data['id'])) {
        $nc->data['status'] = 'new';
        $nc->data['subject'] = 'Here the email subject';
        $nc->data['message'] = '<p>An empty email to start.</p>';
        $nc->data['theme'] = 'blank';
    }
} else {
    if ($nc->is_action('save') || $nc->is_action('send')) {
        $nc->save($wpdb->prefix . 'newsletter_emails');
    }
    if ($nc->is_action('send')) {
        // Fake value representing the WordPress users as target
        if ($nc->data['list'] == -1) {
            $query = "select count(*) from " . $wpdb->prefix . "users " . $nc->data['query'];
        } else {
            if (!empty($nc->data['query'])) {
                $query = "select count(*) from " . $wpdb->prefix . "newsletter " . $nc->data['query'];
            } else {
                $query = "select count(*) from " . $wpdb->prefix . "newsletter where status='C'";
                if ($nc->data['list'] != 0) {
                    $query .= " and list_" . $nc->data['list'] . "=1";
                }
                if (!empty($nc->data['sex'])) {
                    $query .= " and sex='" . $nc->data['sex'] . "'";
                }
Exemple #24
0
<?php

@(include_once 'commons.php');
$nc = new NewsletterControls();
if (!$nc->is_action()) {
    $nc->data = get_option('newsletter_profile');
} else {
    if ($nc->is_action('save')) {
        update_option('newsletter_profile', $nc->data);
    }
    if ($nc->is_action('reset')) {
        include dirname(__FILE__) . '/languages/en_US.php';
        @(include dirname(__FILE__) . '/languages/' . WPLANG . '.php');
        update_option('newsletter_profile', $defaults_profile);
        $nc->data = $defaults_profile;
    }
}
$nc->errors($errors);
$nc->messages($messages);
$status = array(0 => 'Disabled', 1 => 'Only on profile page', 2 => 'Even on subscription page');
?>
<script type="text/javascript" src="<?php 
echo get_option('siteurl');
?>
/wp-content/plugins/newsletter/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
    tinyMCE.init({
        mode : "specific_textareas",
        editor_selector : "visual",
        theme : "advanced",
        theme_advanced_disable : "styleselect",
Exemple #25
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterEmails::instance();
if ($controls->is_action('convert')) {
    $module->convert_old_emails();
    $controls->messages = 'Converted!';
}
if ($controls->is_action('unconvert')) {
    $wpdb->query("update wp_newsletter_emails set type='email' where type='message'");
    $controls->messages = 'Unconverted!';
}
if ($controls->is_action('send')) {
    $newsletter->hook_newsletter();
    $controls->messages .= __('Delivery engine triggered.', 'newsletter');
}
if ($controls->is_action('copy')) {
    $original = Newsletter::instance()->get_email($_POST['btn']);
    $email = array();
    $email['subject'] = $original->subject;
    $email['message'] = $original->message;
    $email['message_text'] = $original->message_text;
    $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')) {
Exemple #26
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterEmails::instance();
// Always required
$email_id = $_GET['id'];
$email = Newsletter::instance()->get_email($email_id, ARRAY_A);
// If there is no action we assume we are enter the first time so we populate the
// $nc->data with the editable email fields
if (!$controls->is_action()) {
    $controls->data = $email;
    if (!empty($email['preferences'])) {
        $controls->data['preferences'] = explode(',', $email['preferences']);
    }
    if (!empty($email['sex'])) {
        $controls->data['sex'] = explode(',', $email['sex']);
    }
    $email_options = unserialize($email['options']);
    if (is_array($email_options)) {
        $controls->data = array_merge($controls->data, $email_options);
    }
}
if ($controls->is_action('test') || $controls->is_action('save') || $controls->is_action('send') || $controls->is_action('editor')) {
    // If we were editing with visual editor (==0), we must read the extra <body> content
    if ($email['editor'] == 0) {
        $x = strpos($email['message'], '<body');
        if ($x !== false) {
            $x = strpos($email['message'], '>', $x);
            $email['message'] = substr($email['message'], 0, $x + 1) . $controls->data['message'] . '</body></html>';
        } else {
Exemple #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
Exemple #28
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterUsers::instance();
$id = (int) $_GET['id'];
if ($controls->is_action('save')) {
    // For unselected preferences, force the zero value
    for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
        if (!isset($controls->data['list_' . $i])) {
            $controls->data['list_' . $i] = 0;
        }
    }
    $controls->data['id'] = $id;
    $r = $module->save_user($controls->data);
    if ($r === false) {
        $controls->errors = 'Unable to update, may be the email (if changed) is duplicated.';
    } 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');
Exemple #29
0
<?php

require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();
$module = NewsletterEmails::instance();
if ($controls->is_action('theme')) {
    $controls->merge($module->themes->get_options($controls->data['theme']));
    $module->save_options($controls->data);
}
if ($controls->data == null) {
    $controls->data = $module->get_options();
}
function newsletter_emails_update_options($options)
{
    add_option('newsletter_emails', '', null, 'no');
    update_option('newsletter_emails', $options);
}
function newsletter_emails_update_theme_options($theme, $options)
{
    $x = strrpos($theme, '/');
    if ($x !== false) {
        $theme = substr($theme, $x + 1);
    }
    add_option('newsletter_emails_' . $theme, '', null, 'no');
    update_option('newsletter_emails_' . $theme, $options);
}
function newsletter_emails_get_options()
{
    $options = get_option('newsletter_emails', array());
    return $options;
}
Exemple #30
0
<?php

@(include_once NEWSLETTER_INCLUDES_DIR . '/controls.php');
$controls = new NewsletterControls();
$module = NewsletterUsers::instance();
$options_profile = get_option('newsletter_profile');
$lists = array();
for ($i = 1; $i <= NEWSLETTER_LIST_MAX; $i++) {
    if (!isset($options_profile['list_' . $i])) {
        $options_profile['list_' . $i] = '';
    }
    $lists['' . $i] = '(' . $i . ') ' . $options_profile['list_' . $i];
}
if ($controls->is_action('remove_unconfirmed')) {
    $r = $wpdb->query("delete from " . NEWSLETTER_USERS_TABLE . " where status='S'");
    $controls->messages = $r . ' not confirmed deleted.';
}
if ($controls->is_action('remove_unsubscribed')) {
    $r = $wpdb->query("delete from " . NEWSLETTER_USERS_TABLE . " where status='U'");
    $controls->messages = $r . ' unsubscribed deleted (profiles associated to WordPress users are never deleted).';
}
if ($controls->is_action('remove_bounced')) {
    $r = $wpdb->query("delete from " . NEWSLETTER_USERS_TABLE . " where status='B'");
    $controls->messages = $r . ' bounced deleted.';
}
if ($controls->is_action('unconfirm_all')) {
    $r = $wpdb->query("update " . NEWSLETTER_USERS_TABLE . " set status='S' where status='C'");
    $controls->messages = $r . ' unconfirmed.';
}
if ($controls->is_action('confirm_all')) {
    $r = $wpdb->query("update " . NEWSLETTER_USERS_TABLE . " set status='C' where status='S'");