function alo_em_ajax_recipient_list_ajaxloop() { global $user_ID; check_ajax_referer("alo-easymail"); $response = array(); $response['error'] = ''; if (isset($_POST['newsletter'])) { $newsletter = (int) $_POST['newsletter']; if (get_post_type($newsletter) != "newsletter") { $response['error'] = esc_js(__('The required newsletter does not exist', "alo-easymail")); } if (!get_post($newsletter)) { $response['error'] = esc_js(__('The required newsletter does not exist', "alo-easymail")); } if (!alo_em_user_can_edit_newsletter($newsletter)) { $response['error'] = esc_js(__('Cheatin’ uh?')); } $post_status = get_post_status($newsletter); if ($post_status == "draft" || $post_status == "pending") { $response['error'] = esc_js(__('A newsletter cannot be sent if its status is draft or pending review')); } } else { $response['error'] = esc_js(__('Cheatin’ uh?')); } if ($response['error'] == '') { // If missing prepare cache if (!alo_em_get_cache_recipients($newsletter)) { alo_em_create_cache_recipients($newsletter); } else { // Now add a part of recipients into the db table $sendnow = isset($_POST['sendnow']) && $_POST['sendnow'] == "yes" ? true : false; $limit = apply_filters('alo_easymail_ajaxloop_recipient_limit', 15); // Hook alo_em_add_recipients_from_cache_to_db($newsletter, $limit, $sendnow); } $response['n_done'] = alo_em_count_newsletter_recipients($newsletter); $response['n_tot'] = alo_em_count_recipients_from_meta($newsletter); $response['perc'] = $response['n_done'] > 0 && $response['n_tot'] > 0 ? round($response['n_done'] * 100 / $response['n_tot']) : 0; } header("Content-Type: application/json"); die(json_encode($response)); }