MC4WP_Form_Listener::process_unsubscribe_form PHP Method

process_unsubscribe_form() public method

public process_unsubscribe_form ( MC4WP_Form $form, MC4WP_Request $request = null )
$form MC4WP_Form
$request MC4WP_Request
    public function process_unsubscribe_form(MC4WP_Form $form, MC4WP_Request $request = null)
    {
        $mailchimp = new MC4WP_MailChimp();
        $log = $this->get_log();
        $result = null;
        $data = $form->get_data();
        // unsubscribe from each list
        foreach ($form->get_lists() as $list_id) {
            // TODO: Check if on list before proceeding with unsubscribe call?
            $result = $mailchimp->list_unsubscribe($list_id, $data['EMAIL']);
        }
        if (!$result) {
            $form->add_error('error');
            $log->error(sprintf('Form %d > MailChimp API error: %s', $form->ID, $mailchimp->get_error_message()));
            // bail
            return;
        }
        // Success! Unsubscribed.
        $form->add_message('unsubscribed');
        $log->info(sprintf("Form %d > Successfully unsubscribed %s", $form->ID, $data['EMAIL']));
        /**
         * Fires right after a form was used to unsubscribe.
         *
         * @since 3.0
         *
         * @param MC4WP_Form $form Instance of the submitted form.
         */
        do_action('mc4wp_form_unsubscribed', $form);
    }