Jetpack_Subscriptions::widget_submit PHP Method

widget_submit() public method

When a user submits their email via the blog subscription widget, check the details and call the subsribe() method.
public widget_submit ( )
    function widget_submit()
    {
        // Check the nonce.
        if (is_user_logged_in()) {
            check_admin_referer('blogsub_subscribe_' . get_current_blog_id());
        }
        if (empty($_REQUEST['email'])) {
            return false;
        }
        $redirect_fragment = false;
        if (isset($_REQUEST['redirect_fragment'])) {
            $redirect_fragment = preg_replace('/[^a-z0-9_-]/i', '', $_REQUEST['redirect_fragment']);
        }
        if (!$redirect_fragment) {
            $redirect_fragment = 'subscribe-blog';
        }
        $subscribe = Jetpack_Subscriptions::subscribe($_REQUEST['email'], 0, false, array('source' => 'widget', 'widget-in-use' => is_active_widget(false, false, 'blog_subscription', true) ? 'yes' : 'no', 'comment_status' => '', 'server_data' => $_SERVER));
        if (is_wp_error($subscribe)) {
            $error = $subscribe->get_error_code();
        } else {
            $error = false;
            foreach ($subscribe as $response) {
                if (is_wp_error($response)) {
                    $error = $response->get_error_code();
                    break;
                }
            }
        }
        switch ($error) {
            case false:
                $result = 'success';
                break;
            case 'invalid_email':
                $result = $error;
                break;
            case 'active':
            case 'blocked_email':
                $result = 'opted_out';
                break;
            case 'pending':
                $result = 'already';
                break;
            default:
                $result = 'error';
                break;
        }
        $redirect = add_query_arg('subscribe', $result);
        /**
         * Fires on each subscription form submission.
         *
         * @module subscriptions
         *
         * @since 3.7.0
         *
         * @param string $result Result of form submission: success, invalid_email, already, error.
         */
        do_action('jetpack_subscriptions_form_submission', $result);
        wp_safe_redirect("{$redirect}#{$redirect_fragment}");
        exit;
    }