Exemplo n.º 1
1
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;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
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;
}