wp_schedule_event не работает?
У меня не получается запустить cron в WordPress. Я пытаюсь выполнить этот код, чтобы проверить, смогу ли я получать email-уведомления каждый час.
Код взят прямо из примеров WordPress: http://codex.wordpress.org/Function_Reference/wp_schedule_event. За исключением того, что я убрал подчеркивания (см. замечание в документации).
Код выполняется в файле functions.php моей темы. Кажется, cron регистрируется, но функция prefixdothishourly
не выполняется (насколько я могу судить).
add_action( 'wp', 'prefixsetupschedule' );
/**
* На раннем хуке проверяем, запланировано ли событие - если нет, планируем его.
*/
function prefixsetupschedule() {
if ( ! wp_next_scheduled( 'prefixhourlyevent' ) ) {
wp_schedule_event(time(), 'hourly', 'prefixhourlyevent');
}
}
add_action( 'prefixhourlyevent', 'prefixdothishourly' );
/**
* По запланированному хуку выполняем функцию.
*/
function prefixdothishourly() {
return wp_mail("me@example.com", "Notification TEST", "TEST", null);
}
Параметр ALTERNATE_WP_CRON
по сути выполняет прозрачную переадресацию для пользователя, посещающего ваш сайт, и может привести к добавлению параметра doing_wp_cron
в URL.
Если по какой-либо причине ваши задачи cron в WordPress не выполняются из-за слишком высокой нагрузки или слишком низкой посещаемости сайта, возможно, стоит переключиться на серверный/внешний cron для запуска задач WordPress.
