wp_schedule_event не работает?

6 июн. 2014 г., 17:27:35
Просмотры: 15.3K
Голосов: 7

У меня не получается запустить 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);
 }
0
Все ответы на вопрос 2
0

Оказалось, что для корректной работы необходимо установить флаг ALTERNATE_WP_CRON в файле wp-config.php:

define('ALTERNATE_WP_CRON', true);
10 июн. 2014 г. 15:55:52
0

Параметр ALTERNATE_WP_CRON по сути выполняет прозрачную переадресацию для пользователя, посещающего ваш сайт, и может привести к добавлению параметра doing_wp_cron в URL.

Если по какой-либо причине ваши задачи cron в WordPress не выполняются из-за слишком высокой нагрузки или слишком низкой посещаемости сайта, возможно, стоит переключиться на серверный/внешний cron для запуска задач WordPress.

11 мая 2016 г. 22:34:55