Wordpress cron - событие добавлено в очередь, но не запускается - PullRequest
4 голосов
/ 18 февраля 2020

Я пытаюсь подключиться к действию woocommerce_order_status_changed и добавить одно событие в cp wp для немедленного выполнения (чтобы цикл запроса-ответа не был заблокирован):

add_action('woocommerce_order_status_changed', 'on_new_status', 10, 3);
add_action('send_new_status_custom_hook', 'logic_on_new_status', 10, 2);
function on_new_status($order_id, $from, $to){
  wp_schedule_single_event(time(), 'send_new_status_custom_hook', array($from, $to));
}
function logic_on_new_status($first, $second){
  // code
}

Событие это добавлено в cron (я вижу это с помощью плагина), но не выполняется. Когда я нажимаю «выполнить» вручную, он выполняется .

В чем может быть проблема?

Я использую Wordpress 5.3.2.

Спасибо!

Ответы [ 3 ]

1 голос
/ 21 февраля 2020

Здравствуйте, вы используете cron из Wordpress, но некоторые плагины отключают или мешают работе CRON. В этом случае я рекомендую либо создать это расписание через Server Cron, либо установить плагин для подтверждения вашего расписания

0 голосов
/ 22 февраля 2020

Я нашел решение! Проблема была вызвана настройками моего брандмауэра ...

Они блокировали петлю, которую wp-cron требует для правильной работы.

Установка этого плагина: https://wordpress.org/plugins/wp-crontrol/ показал мне сообщение об ошибке «cURL error 28».

Оттуда я смог разобраться.

0 голосов
/ 21 февраля 2020

Одна вещь, которая приходит на ум, это то, зачем вам вообще нужен cron? Если ваша следующая функция должна запускаться сразу за другой, просто запустите эту функцию в это время. Не нужно добавлять в cron. Cron обычно используется для планирования задач, которые должны выполняться по повторяющемуся расписанию, а не для запуска функции один раз после запуска другой функции.

Кроме того, проверьте ваш часовой пояс Wordpress и часовой пояс вашего сервера. Это иногда сбивает людей с толку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...