Я использую 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. Я собираюсь вставить конкретное значение в поле базы данных, например «отправлено» и проверять его, но не уверен, как это сделать или если есть лучший способ.
Ваше собственное поле в db отлично звучит для меня – nogad