/** * @hooked `mc4wp_form_subscribed` * @param MC4WP_Form $form */ public function on_form_success(MC4WP_Form $form) { $data = $form->get_data(); $this->save($data); }
/** * @param MC4WP_Form $form * @param MC4WP_Request $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); }