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);
}