/** * @return bool */ public function process() { $api = mc4wp_get_api(); do_action('mc4wp_before_subscribe', $this->user_data['EMAIL'], $this->user_data, 0); $result = false; $email_type = $this->get_email_type(); // loop through selected lists foreach ($this->map->list_fields as $list_id => $list_field_data) { // allow plugins to alter merge vars for each individual list $list_merge_vars = $this->get_list_merge_vars($list_id, $list_field_data); // send a subscribe request to MailChimp for each list $result = $api->subscribe($list_id, $this->user_data['EMAIL'], $list_merge_vars, $email_type, $this->form->settings['double_optin'], $this->form->settings['update_existing'], $this->form->settings['replace_interests'], $this->form->settings['send_welcome']); do_action('mc4wp_subscribe', $this->user_data['EMAIL'], $list_id, $list_merge_vars, $result, 'form', 'form', $this->form->ID); } do_action('mc4wp_after_subscribe', $this->user_data['EMAIL'], $this->user_data, 0, $result); // did we succeed in subscribing with the parsed data? if (!$result) { $this->message_type = $api->get_error_code() === 214 ? 'already_subscribed' : 'error'; $this->mailchimp_error = $api->get_error_message(); } else { $this->message_type = 'subscribed'; // store user email in a cookie $this->set_email_cookie($this->user_data['EMAIL']); // send an email copy if that is desired // todo: move this to hook callback if ($this->form->settings['send_email_copy']) { $email = new MC4WP_Email_Notification($this->form->settings['email_copy_receiver'], $this->form, $this); $email->send(); } } $this->success = $result; return $result; }
/** * @param MC4WP_Form $form * * @return bool */ public function send_form_notification(MC4WP_Form $form) { if (!$form->settings['send_email_copy']) { return false; } $email = new MC4WP_Email_Notification($form->settings['email_copy_receiver'], $form); $email->send(); }