【问题标题】:WooCommerce Subscriptions 3.0 | Manual run of scheduled Actions not workingWooCommerce 订阅 3.0 |手动运行计划的操作不起作用
【发布时间】:2026-02-01 11:10:01
【问题描述】:

我有一个 WooCommerce 网上商店,订阅了 WooCommerce,我想测试续订流程(电子邮件等)以进行定期付款。通常我会使用下面article中描述的方法。

这在将订阅更新到 3.0 之前总是有效的(使用更新的 Action Scheduler)。但现在什么也没有发生。

按下运行按钮后,窗口刷新并且计划的操作仍然存在。我确实收到一条消息“下一个队列将在大约 X 秒后开始处理。”。有时我会收到通知“新队列已开始处理。查看正在进行的操作»”。当点击链接时,找不到正在进行的操作。

我要运行的操作有一个未来的日期,我将WCS_DEBUGWP_DEBUG 都设置为true

我正在努力寻找无法手动运行该操作的原因。我错过了什么吗?

  • WooCommerce v 3.9.3

  • WooCommerce 订阅 v 3.0.1

  • WordPress v 5.3.2

See screenshot of the situation here

【问题讨论】:

  • 做了更多的调试。我安装并激活了店面主题以确保问题不在主题中。我还停用了除 WC 和 WC 订阅之外的所有插件。两者都没有区别。
  • 据我了解,手动运行计划操作将创建新的计划操作(待定)。现在它仅在下一次付款时间结束时自动创建

标签: php wordpress woocommerce subscription woocommerce-subscriptions


【解决方案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)

【讨论】: