Подписки WooCommerce 3.0 | Ручной запуск запланированных действий не работает

У меня есть интернет-магазин WooCommerce с подписками WooCommerce, и я хочу протестировать процесс продления (электронные письма и т. Д.) Для регулярного платежа. Обычно я бы использовал метод, описанный в следующей статье .

Это всегда работало до обновления подписок до версии 3.0 (с обновленным планировщиком действий). Но теперь ничего не происходит.

После нажатия кнопки запуска окно обновляется, и запланированное действие все еще присутствует. Я получаю уведомление с сообщением «Следующая очередь начнет обработку примерно через X секунд». Иногда я получаю уведомление «Началась обработка новой очереди. Просмотр выполняемых действий» ». При переходе по ссылке незавершенные действия не обнаруживаются.

Действие, которое я хочу запустить, имеет дату в будущем, и у меня для WCS_DEBUG и WP_DEBUG установлено значение true.

Я выдергиваю волосы, пытаясь понять, почему действие нельзя запустить вручную. Я что-то пропустил?

  • WooCommerce v 3.9.3

  • Подписки WooCommerce v 3.0.1

  • WordPress версии 5.3.2

См. снимок экрана с ситуацией здесь


person user1633595    schedule 20.03.2020    source источник
comment
Сделал еще отладку. Я установил и активировал тему витрины, чтобы убедиться, что проблема не в теме. Я также отключил все плагины, кроме подписок WC и WC. Оба значения не имеют значения.   -  person user1633595    schedule 20.03.2020
comment
Насколько я понимаю, запуск запланированного действия вручную создаст новое запланированное действие (ожидающее). Теперь он создается автоматически только по истечении следующего срока платежа.   -  person mujuonly    schedule 18.04.2020


Ответы (1)


    // Maybe clear the existing schedule for this hook
    if ( false !== $next_scheduled && $next_scheduled != $event_time ) {
        $this->unschedule_actions( $action_hook, $action_args );
    }

    if ( 0 != $event_time && $event_time > current_time( 'timestamp', true ) && $next_scheduled != $event_time ) {
        as_schedule_single_action( $event_time, $action_hook, $action_args );
    }

При запуске задачи вручную она проверяет, не истекло ли следующее время по расписанию, и устанавливает, только если время истекло. (WCS 3.0.1)

person mujuonly    schedule 26.04.2020