label = __( 'MailChimp', 'html-forms' ); } /** * @return array */ private function get_default_settings() { $defaults = array( 'list_id' => '', ); return $defaults; } /** * @param array $settings * @param string|int $index */ public function page_settings( $settings, $index ) { $settings = array_merge( $this->get_default_settings(), $settings ); $mailchimp = new \MC4WP_MailChimp(); $lists = $mailchimp->get_lists(); if ( ! empty( $settings['list_id'] ) ) { $selected_list = $mailchimp->get_list( $settings['list_id'] ); } ?> name ); ?>
' . __( 'Please connect your MailChimp account first.', 'html-forms' ) . '

'; } ?>
data as $field => $value ) { if ( is_email( $value ) ) { $email_address = $value; } } // bail if no email address found if ( empty( $email_address ) ) { return; } $merge_fields = array(); $merge_fields = apply_filters( 'hf_mailchimp_action_merge_fields', $merge_fields, $submission, $form ); $mailchimp_data = array( 'merge_fields' => $merge_fields, 'status' => 'pending', ); $mailchimp_data = apply_filters( 'hf_mailchimp_action_subscriber_data', $mailchimp_data, $submission, $form ); // subscribe the email address to the selected list $mailchimp = new \MC4WP_MailChimp(); $result = $mailchimp->list_subscribe( $mailchimp_list_id, $email_address, $mailchimp_data ); // if result failed, show error message $log = mc4wp_get_debug_log(); $name = sprintf( 'HTML Forms: %s', $form->title ); if ( ! $result ) { if ( $mailchimp->get_error_code() == 214 ) { $log->warning( sprintf( '%s: %s is already subscribed to the selected list(s)', $name, $email_address ) ); } else { $log->error( sprintf( '%s > Mailchimp API Error: %s', $name, $mailchimp->get_error_message() ) ); } return; } $log->info( sprintf( '%s > Successfully subscribed %s', $name, $email_address ) ); } }