function zn_mailchimp_subscribe() { $return = array(); if (isset($_POST['email']) && isset($_POST['mailchimp_list'])) { if ($mailchimp_api = zget_option('mailchimp_api', 'general_options')) { if (is_email($_POST['email'])) { require_once THEME_BASE . '/framework/classes/class-mailchimp.php'; $mailchimp = new ZnMailChimp($mailchimp_api); $email = $_POST['email']; $mailchimp_data = array('id' => $_POST['mailchimp_list'], 'email' => array('email' => $_POST['email'])); // NAME FIELD if (isset($_POST['name'])) { $mailchimp_data['merge_vars']['NAME'] = $_POST['name']; } // WEBSITE FIELD if (isset($_POST['website'])) { $mailchimp_data['merge_vars']['WEBSITE'] = $_POST['website']; } $message = $mailchimp->call('lists/subscribe', $mailchimp_data); if (!empty($message['error'])) { $return['error'] = true; $return['message'] = '<div class="alert alert-success alert-dismissable">' . $message['error'] . '</div>'; } else { //print_z($mailchimp_data); $return['message'] = '<div class="alert alert-success alert-dismissable">' . __('Thank you for subscribing !', 'zn_framework') . '</div>'; } } else { $return['error'] = true; $return['message'] = '<div class="alert alert-danger alert-dismissable">' . __('Please enter a valid email address !', 'zn_framework') . '</div>'; } } } wp_send_json($return); }
function generate_mailchimp_lists($option_id = 'mailchimp_api', $option_page = 'advanced', $refresh = false) { // delete_option('zn_mailchimp_lists'); $loaded_lists = get_option('zn_mailchimp_lists'); if ($loaded_lists && $refresh == false) { return $loaded_lists; } elseif ($mailchimp_api = zget_option($option_id, $option_page)) { require_once THEME_BASE . '/framework/classes/class-mailchimp.php'; $mailchimp = new ZnMailChimp($mailchimp_api); $lists = $mailchimp->call('lists/list'); $loaded_lists = array(); if (isset($lists['data']) && is_array($lists['data'])) { foreach ($lists['data'] as $key => $list) { $loaded_lists[$list['id']] = $list['name']; } } add_option('zn_mailchimp_lists', $loaded_lists, '', false); return $loaded_lists; } else { return array(); } }