<?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;
/** * 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); }