Esempio n. 1
0
<?php

@(include_once 'commons.php');
$options = get_option('newsletter');
if ($_POST['a'] == 'resend' && check_admin_referer()) {
    newsletter_send_confirmation(newsletter_get_subscriber(newsletter_request('id')));
    $_POST['a'] = 'search';
}
if ($_POST['a'] == 'remove' && check_admin_referer()) {
    newsletter_delete(newsletter_request('id'));
    $_POST['a'] = 'search';
}
if ($_POST['removeall'] && check_admin_referer()) {
    newsletter_delete_all();
}
if ($_POST['removeallunconfirmed'] && check_admin_referer()) {
    newsletter_delete_all('S');
}
if ($_POST['showallunconfirmed'] && check_admin_referer()) {
    $list = newsletter_get_unconfirmed();
}
if ($_POST['a'] == 'status' && check_admin_referer()) {
    newsletter_set_status(newsletter_request('id'), newsletter_request('status'));
    $_POST['a'] = 'search';
}
if ($_POST['a'] == 'save' && check_admin_referer()) {
    newsletter_save(stripslashes_deep($_POST['subscriber']));
    $_POST['a'] = 'search';
}
if ($_POST['a'] == 'search' && check_admin_referer()) {
    $status = isset($_POST['unconfirmed']) ? 'S' : null;
Esempio n. 2
0
/**
 * Add a request of newsletter subscription into the database with status "S" (waiting
 * confirmation) and sends out the confirmation request email to the subscriber.
 * The email will contain an URL (or link) the user has to follow to complete the
 * subscription (double opt-in).
 */
function newsletter_subscribe($email, $name = '', $profile = null)
{
    global $wpdb, $newsletter_subscriber;
    $options = get_option('newsletter');
    $email = newsletter_normalize_email($email);
    $name = newsletter_normalize_name($name);
    $list = 0;
    if ($profile == null) {
        $profile = array();
    }
    // Check if this email is already in our database: if so, just resend the
    // confirmation email.
    $newsletter_subscriber = newsletter_get_subscriber_by_email($email, $list);
    if (!$newsletter_subscriber) {
        $token = md5(rand());
        if (isset($options['noconfirmation'])) {
            $status = 'C';
        } else {
            $status = 'S';
        }
        @$wpdb->insert($wpdb->prefix . 'newsletter', array('email' => $email, 'name' => $name, 'token' => $token, 'list' => $list, 'status' => $status));
        $id = $wpdb->insert_id;
        $newsletter_subscriber = newsletter_get_subscriber($id);
        // Profile saving
        foreach ($profile as $key => $value) {
            @$wpdb->insert($wpdb->prefix . 'newsletter_profiles', array('newsletter_id' => $id, 'name' => $key, 'value' => $value));
        }
    }
    if (isset($options['noconfirmation'])) {
        newsletter_send_welcome($newsletter_subscriber);
    } else {
        newsletter_send_confirmation($newsletter_subscriber);
    }
    $message = 'There is a new subscriber to ' . get_option('blogname') . ' newsletter:' . "\n\n" . $name . ' <' . $email . '>' . "\n\n" . 'Have a nice day,' . "\n" . 'your Newsletter plugin.';
    $subject = '[' . get_option('blogname') . '] New subscription';
    newsletter_notify_admin($subject, $message);
}