2017-02-09 8 views
0

Я использую WP CRON сказать, каждую неделю для проверки пользователей, которые истекают в течение 30 дней, используя этотКак отправлять письма только один раз пользователей в функции повторенной хронами

global $wpdb; 

$daysPriorToRebill = 30; 
$priorToRebillDate = date('Y-m-d', strtotime("+{$daysPriorToRebill} days")); 
$todaydate = date('Y-m-d'); 


    $sql3 = "SELECT DISTINCT wp_user_id 
    FROM mm_user_data 
    WHERE expiration_date <= '".$priorToRebillDate."' AND expiration_date >= '".$todaydate."'"; 
$userid = $wpdb->get_results($sql3); 
$user_id = $userids->wp_user_id; 

после того, как найти эти пользователи я отправить их по электронной почте со ссылкой платить после того, как они платят, у меня есть еще одна функция, чтобы продлить свое членство летнего перерыва

$from_email = get_option('admin_email'); 

     $to = $user_email; 

     $subject = "Hey update your membership;; 

     $headers = ""; 

     $headers .= "From:" . $from_email . "\r\n"; 

     $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 

     $message = "Message with link"; 



     wp_mail($to, $subject, $message, $headers); 

если они платят в течение недели, они не будут Получать следующую электронную почту, но если они займут больше времени, им придется снова получить это письмо, есть ли способ исключить пользователи, которые уже получили электронное письмо в следующем задании cron. Я собираюсь вставить конкретное значение в поле базы данных, например «отправлено» и проверять его, но не уверен, как это сделать или если есть лучший способ.

+1

Ваше собственное поле в db отлично звучит для меня – nogad

ответ

1

Ваша идея добавления нового поля будет работать.

Другим вариантом является отправка писем только тем, кто истекает через 23-30 дней, при условии, что задание выполняется еженедельно.

В качестве альтернативы используйте его ежедневно и проверьте только на срок до 30 дней.

 Смежные вопросы

  • Нет связанных вопросов^_^