/** * Process unsubscribe request. Add the submitted email address to the Excluded Emails list */ public static function process_unsubscribe_request() { global $wpdb; if (isset($_POST['fue_action']) && $_POST['fue_action'] == 'fue_unsubscribe') { $email = str_replace(' ', '+', $_POST['fue_email']); $email_id = $_POST['fue_eid']; $error = ''; if (empty($email) || !is_email($email)) { $error = urlencode(__('Please enter a valid email address', 'follow_up_emails')); } $order_id = !empty($_POST['unsubscribe_order_id']) ? absint($_POST['unsubscribe_order_id']) : 0; $unsubscribe = !empty($_POST['unsubscribe_all']) && $_POST['unsubscribe_all'] == 'yes' ? true : false; if (fue_is_email_excluded($email, 0, $order_id)) { if ($order_id > 0) { $error = sprintf(__('The email (%s) is already unsubscribed from receiving emails regarding Order %d', 'follow_up_emails'), $email, $order_id); } else { $error = sprintf(__('The email (%s) is already unsubscribed from receiving emails', 'follow_up_emails'), $email); } } if (!empty($error)) { $url = add_query_arg(array('fueid' => $_POST['fue_eid'], 'qid' => !empty($_POST['fue_qid']) ? $_POST['fue_qid'] : '', 'error' => urlencode($error)), fue_get_unsubscribe_url()); wp_redirect($url); exit; } if ($unsubscribe) { fue_exclude_email_address($email, $email_id, 0); if (isset($_GET['fue'])) { do_action('fue_user_unsubscribed', $_GET['fue']); } } elseif ($order_id > 0) { fue_exclude_email_address($email, $email_id, $order_id); $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->prefix}followup_email_orders WHERE user_email = %s AND order_id = %d AND is_sent = 0", $email, $order_id)); } wp_redirect(add_query_arg('fue_unsubscribed', 1, Follow_Up_Emails::get_account_url())); exit; } elseif (isset($_GET['fue_unsubscribed'])) { Follow_Up_Emails::show_message(__('Thank you. Your email settings have been saved.', 'follow_up_emails')); } }
/** * Add/Remove emails from the Excluded List */ static function manage_optout() { $wpdb = Follow_Up_Emails::instance()->wpdb; $post = stripslashes_deep($_POST); if (isset($post['button_add']) && $post['button_add'] == 'Add') { // add an email address to the excludes list $email = $post['email_address']; // make sure it is a valid email address if (!is_email($email)) { wp_redirect('admin.php?page=followup-emails-optouts&error=' . urlencode(__('The email address is invalid', 'follow_up_emails'))); exit; } fue_exclude_email_address($email); wp_redirect('admin.php?page=followup-emails-optouts&added=' . urlencode($email)); exit; } elseif (isset($post['button_restore']) && $post['button_restore'] == 'Apply') { $emails = $post['email']; $email_ids = ''; if (is_array($emails) && !empty($emails)) { $email_ids = "'" . implode("','", $emails) . "'"; } if (!empty($email_ids)) { $wpdb->query("DELETE FROM {$wpdb->prefix}followup_email_excludes WHERE id IN({$email_ids})"); } wp_redirect('admin.php?page=followup-emails-optouts&restored=' . count($emails)); exit; } wp_redirect('admin.php?page=followup-emails-optouts'); exit; }