function et_pb_submit_subscribe_form() { if (!wp_verify_nonce($_POST['et_load_nonce'], 'et_load_nonce')) { die(json_encode(array('error' => __('Configuration error', 'Divi')))); } $service = sanitize_text_field($_POST['et_service']); $list_id = sanitize_text_field($_POST['et_list_id']); $email = sanitize_email($_POST['et_email']); $firstname = sanitize_text_field($_POST['et_firstname']); if ('' === $firstname) { die(json_encode(array('error' => __('Please enter first name', 'Divi')))); } if (!is_email(sanitize_email($_POST['et_email']))) { die(json_encode(array('error' => __('Incorrect email', 'Divi')))); } if ('' == $list_id) { die(json_encode(array('error' => __('Configuration error: List is not defined', 'Divi')))); } $success_message = __('<h2 class="et_pb_subscribed">Subscribed - look for the confirmation email!</h2>', 'Divi'); switch ($service) { case 'mailchimp': $lastname = sanitize_text_field($_POST['et_lastname']); $email = array('email' => $email); if (!class_exists('MailChimp_Divi')) { require_once ET_BUILDER_DIR . 'subscription/mailchimp/mailchimp.php'; } if (et_is_builder_plugin_active()) { $mailchimp_api_option = get_option('et_pb_builder_options'); $mailchimp_api_key = isset($mailchimp_api_option['newsletter_main_mailchimp_key']) ? $mailchimp_api_option['newsletter_main_mailchimp_key'] : ''; } else { $mailchimp_api_key = et_get_option('divi_mailchimp_api_key'); } if ('' === $mailchimp_api_key) { die(json_encode(array('error' => __('Configuration error: api key is not defined', 'Divi')))); } $mailchimp = new MailChimp_Divi($mailchimp_api_key); $subscribe_args = array('id' => $list_id, 'email' => $email, 'merge_vars' => array('FNAME' => $firstname, 'LNAME' => $lastname)); $retval = $mailchimp->call('lists/subscribe', $subscribe_args); if (200 !== wp_remote_retrieve_response_code($retval)) { if ('214' === wp_remote_retrieve_header($retval, 'x-mailchimp-api-error-code')) { $mailchimp_message = json_decode(wp_remote_retrieve_body($retval), true); $error_message = isset($mailchimp_message['error']) ? $mailchimp_message['error'] : wp_remote_retrieve_body($retval); $result = json_encode(array('success' => $error_message)); } else { $result = json_encode(array('success' => wp_remote_retrieve_response_message($retval))); } } else { $result = json_encode(array('success' => $success_message)); } die($result); break; case 'aweber': if (!class_exists('AWeberAPI')) { require_once ET_BUILDER_DIR . 'subscription/aweber/aweber_api.php'; } $account = et_pb_get_aweber_account(); if (!$account) { die(json_encode(array('error' => __('Aweber: Wrong configuration data', 'Divi')))); } try { $list_url = "/accounts/{$account->id}/lists/{$list_id}"; $list = $account->loadFromUrl($list_url); $new_subscriber = $list->subscribers->create(array('email' => $email, 'name' => $firstname)); die(json_encode(array('success' => $success_message))); } catch (Exception $exc) { die(json_encode(array('error' => $exc->message))); } break; } die; }
function et_pb_submit_subscribe_form() { if (!wp_verify_nonce($_POST['et_load_nonce'], 'et_load_nonce')) { die(json_encode(array('error' => __('Configuration error', 'Divi')))); } $service = sanitize_text_field($_POST['et_service']); $list_id = sanitize_text_field($_POST['et_list_id']); $email = sanitize_email($_POST['et_email']); $firstname = sanitize_text_field($_POST['et_firstname']); if ('' === $firstname) { die(json_encode(array('error' => __('Please enter first name', 'Divi')))); } if (!is_email(sanitize_email($_POST['et_email']))) { die(json_encode(array('error' => __('Incorrect email', 'Divi')))); } if ('' == $list_id) { die(json_encode(array('error' => __('Configuration error: List is not defined', 'Divi')))); } $success_message = __('<h2 class="et_pb_subscribed">Subscribed - look for the confirmation email!</h2>', 'Divi'); switch ($service) { case 'mailchimp': $lastname = sanitize_text_field($_POST['et_lastname']); $email = array('email' => $email); if (!class_exists('MailChimp')) { require_once get_template_directory() . '/includes/subscription/mailchimp/mailchimp.php'; } $mailchimp_api_key = et_get_option('divi_mailchimp_api_key'); if ('' === $mailchimp_api_key) { die(json_encode(array('error' => __('Configuration error: api key is not defined', 'Divi')))); } $mailchimp = new MailChimp($mailchimp_api_key); $merge_vars = array('FNAME' => $firstname, 'LNAME' => $lastname); $retval = $mailchimp->call('lists/subscribe', array('id' => $list_id, 'email' => $email, 'merge_vars' => $merge_vars)); if (isset($retval['error'])) { if ('214' == $retval['code']) { $error_message = str_replace('Click here to update your profile.', '', $retval['error']); $result = json_encode(array('success' => $error_message)); } else { $result = json_encode(array('success' => $retval['error'])); } } else { $result = json_encode(array('success' => $success_message)); } die($result); break; case 'aweber': if (!class_exists('AWeberAPI')) { require_once get_template_directory() . '/includes/subscription/aweber/aweber_api.php'; } $account = et_pb_get_aweber_account(); if (!$account) { die(json_encode(array('error' => __('Aweber: Wrong configuration data', 'Divi')))); } try { $list_url = "/accounts/{$account->id}/lists/{$list_id}"; $list = $account->loadFromUrl($list_url); $new_subscriber = $list->subscribers->create(array('email' => $email, 'name' => $firstname)); die(json_encode(array('success' => $success_message))); } catch (Exception $exc) { die(json_encode(array('error' => $exc->message))); } break; } die; }
function et_pb_get_aweber_lists($regenerate_aweber_list = 'off') { $lists = array(); $account = et_pb_get_aweber_account(); if (!et_is_builder_plugin_active()) { $regenerate_aweber_list = et_get_option('divi_regenerate_aweber_lists', 'false'); } if (!$account) { return false; } if ('on' === $regenerate_aweber_list || false === ($et_pb_aweber_lists = get_transient('et_pb_aweber_lists'))) { if (!class_exists('AWeberAPI')) { require_once ET_BUILDER_DIR . 'subscription/aweber/aweber_api.php'; } $aweber_lists = $account->lists; if (isset($aweber_lists)) { foreach ($aweber_lists as $list) { $lists[$list->id] = $list->name; } } set_transient('et_pb_aweber_lists', $lists, 60 * 60 * 24); } else { $lists = $et_pb_aweber_lists; } return $lists; }
function et_pb_submit_subscribe_form() { if (!wp_verify_nonce($_POST['et_load_nonce'], 'et_load_nonce')) { die(-1); } $service = sanitize_text_field($_POST['et_service']); $list_id = sanitize_text_field($_POST['et_list_id']); $email = sanitize_email($_POST['et_email']); $firstname = sanitize_text_field($_POST['et_firstname']); if ('' === $firstname) { die(-1); } if (!is_email($email)) { die(-1); } if ('' == $list_id) { die(-1); } $success_message = __('<h2 class="et_pb_subscribed">Subscribed - look for the confirmation email!</h2>', 'Divi'); switch ($service) { case 'mailchimp': $lastname = sanitize_text_field($_POST['et_lastname']); if (!class_exists('MCAPI')) { require_once get_template_directory() . '/includes/subscription/mailchimp/MCAPI.class.php'; } $mailchimp_api_key = et_get_option('divi_mailchimp_api_key'); if ('' === $mailchimp_api_key) { die(-1); } $api = new MCAPI($mailchimp_api_key); $merge_vars = array('FNAME' => $firstname, 'LNAME' => $lastname); $retval = $api->listSubscribe($list_id, $email, $merge_vars); if (!$api->errorCode) { echo $success_message; } break; case 'aweber': if (!class_exists('AWeberAPI')) { require_once get_template_directory() . '/includes/subscription/aweber/aweber_api.php'; } $account = et_pb_get_aweber_account(); try { $list_url = "/accounts/{$account->id}/lists/{$list_id}"; $list = $account->loadFromUrl($list_url); $new_subscriber = $list->subscribers->create(array('email' => $email, 'name' => $firstname)); echo $success_message; } catch (Exception $exc) { die($exc); } break; } die; }