function validate_widget() { if (isset($_POST['submit-subscribe-widget-user'])) { global $mailchimp_sync; $doing_ajax = defined('DOING_AJAX') && DOING_AJAX; $errors = array(); if (!$doing_ajax) { if (!wp_verify_nonce($_POST['_wpnonce'], 'mailchimp_subscribe_user')) { return false; } } else { check_ajax_referer('mailchimp_subscribe_user', 'nonce'); } $_form_id = $_POST['form_id']; $form_id = explode('-', $_form_id); $number = $form_id[count($form_id) - 1]; $settings = $this->get_settings(); if (!isset($settings[$number])) { return; } $settings = $settings[$number]; $errors = WPMUDEV_MailChimp_Form::validate_subscription_form($_POST, $settings); if (empty($errors)) { $user['email'] = sanitize_email($_POST['subscription-email']); $user['first_name'] = sanitize_text_field($_POST['subscription-firstname']); $user['last_name'] = sanitize_text_field($_POST['subscription-lastname']); $mailchimp_sync->mailchimp_add_user($user); if (!$doing_ajax) { $redirect_to = add_query_arg('mailchimp-subscribed-' . $number, 'true') . '#' . $_form_id; wp_redirect($redirect_to); exit; } else { $text = apply_filters('mailchimp_form_subscribed_placeholder', $this->args['subscribed_placeholder'], $_POST['form_id']); wp_send_json_success(array('message' => $text)); } } elseif (!empty($errors) && $doing_ajax) { wp_send_json_error($errors); } $this->errors[$number] = $errors; } }
public function validate_shortcode($settings = array()) { if (isset($_POST['submit-subscribe-shortcode-user'])) { global $mailchimp_sync; $errors = array(); if (!wp_verify_nonce($_POST['_wpnonce'], 'mailchimp_subscribe_user')) { return false; } $_form_id = $_POST['form_id']; $form_id = explode('-', $_form_id); $number = $form_id[count($form_id) - 1]; $errors = WPMUDEV_MailChimp_Form::validate_subscription_form($_POST, $settings); if (empty($errors)) { $user['email'] = sanitize_email($_POST['subscription-email']); $user['first_name'] = sanitize_text_field($_POST['subscription-firstname']); $user['last_name'] = sanitize_text_field($_POST['subscription-lastname']); $mailchimp_sync->mailchimp_add_user($user); } $this->errors[$number] = $errors; } }