function json_mailchimp_subscribe()
 {
     $is_error = 1;
     $post_id = !empty($_POST['post_id']) ? $_POST['post_id'] : false;
     $opts = get_post_meta($post_id, 'wdsi-type', true);
     $default_api_key = $this->_data->get_option('mailchimp-api_key');
     $api_key = wdsi_getval($opts, 'mailchimp-api_key', $default_api_key);
     if (!$api_key) {
         die(json_encode(array('is_error' => $is_error, 'message' => __('MailChimp not configured', 'wdsi'))));
     }
     $default_list = $this->_data->get_option('mailchimp-default_list');
     $list = wdsi_getval($opts, 'mailchimp-default_list', $default_list);
     if (!$list) {
         die(json_encode(array('is_error' => $is_error, 'message' => __('Unknown list', 'wdsi'))));
     }
     $email = wdsi_getval($_POST, 'email');
     if (!is_email($email)) {
         die(json_encode(array('is_error' => $is_error, 'message' => __('Invalid email', 'wdsi'))));
     }
     $mailchimp = new Wdsi_Mailchimp($api_key);
     $result = $mailchimp->subscribe_to($list, $email);
     if (true === $result) {
         $global_message = $this->_data->get_option('mailchimp-subscription_message');
         $subscription_message = wdsi_getval($opts, 'mailchimp-subscription_message', $global_message);
         $subscription_message = $subscription_message ? $subscription_message : __('All good, thank you!', 'wdsi');
         $subscription_message = wp_strip_all_tags($subscription_message);
         die(json_encode(array('is_error' => 0, 'message' => $subscription_message)));
     } else {
         if (is_array($result) && isset($result['error'])) {
             die(json_encode(array('is_error' => $is_error, 'message' => $result['error'])));
         } else {
             if (is_string($result)) {
                 die(json_encode(array('is_error' => $is_error, 'message' => $result)));
             } else {
                 die(json_encode(array('is_error' => $is_error, 'message' => __('Error', 'wdsi'))));
             }
         }
     }
     die;
 }