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

У меня есть функция, которая, когда сообщение публикуется внутри CPT через три дня, страница перенаправляется на другой URL / PERMALINK.

Это код:

add_action('template_redirect', 'check_the_date_for_stats'); function check_the_date_for_stats() { if ( is_singular('debate') ) { // adjust myCPT with your real cpt name $pl = get_permalink( get_queried_object() ); // permalink $is_stats = array_key_exists( 'stats', $GLOBALS['wp_query']->query ); // is stats? $is_cm = array_key_exists( 'comments', $GLOBALS['wp_query']->query ); // is comments? $ts = mysql2date('Ymd', get_queried_object()->post_date_gmt ); // post day $gone = ($ts + 3) < gmdate('Ymd'); // more than 3 days gone? if ( $gone && ( ! $is_stats && ! $is_cm ) ) { // more than 3 days gone and not is stats => redirect to stats wp_redirect( trailingslashit($pl) . '/stats' ); exit(); } elseif( ! $gone && ( $is_stats || $is_cm ) ) { // we are in 3 days frame and trying to access to stats => redirect to post wp_redirect( $pl ); exit(); } } } 

Возможно ли, что через 3 дня отправлено письмо со стандартным сообщением всем зарегистрированным пользователям, если да, то как я могу это сделать? Я знаю эту функцию:

<?php wp_mail( $to, $subject, $message, $headers, $attachments ); ?> <?php wp_mail( $to, $subject, $message, $headers, $attachments ); ?> но я не знаю, как я могу связать это с моей функцией, чтобы отправить электронное письмо всем зарегистрированным пользователям через три дня.

Может ли кто-нибудь дать мне несколько советов о том, как я могу это достичь? Благодаря !

Solutions Collecting From Web of "отправлять электронную почту всем зарегистрированным пользователям, когда истекает срок действия"

Не делайте этого, если у вас слишком много зарегистрированных пользователей на сайте. Ниже приведен отредактированный фрагмент вашего кода.

 } elseif( ! $gone && ( $is_stats || $is_cm ) ) { // we are in 3 days frame and trying to access to stats => redirect to post // Start the code to send the emails $subject = '3 days have passed'; $users = get_users(); foreach($users as $user) { $message = 'Hello '.$user->display_name.', '.PHP_EOL; $message .= 'The 3 days have past since the post.'; wp_mail($user->user_email, $subject, $message); } // End the code to send the emails wp_redirect( $pl ); exit(); }