【问题标题】:Wordpress cron – event added to queue but not firingWordpress cron – 事件添加到队列但未触发
【发布时间】:2020-06-02 15:59:07
【问题描述】:

我正在尝试挂钩woocommerce_order_status_changed 操作并向 wp cron 添加单个事件以立即执行(这样请求-响应循环不会被阻塞):

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
}

事件 is 添加到 cron(我可以使用插件查看),但未执行。当我手动点击“执行”时,它执行了。

可能是什么问题?

我正在使用 Wordpress 5.3.2。

谢谢!

【问题讨论】:

    标签: wordpress woocommerce cron custom-wordpress-pages


    【解决方案1】:

    您好,您正在使用 Wordpress 中的 cron,但某些插件会禁用或阻止 CRON 工作。 在这种情况下,我的建议是通过 Server Cron 创建此计划,或者安装一个插件来重新确认您的计划

    【讨论】:

    • 我尝试禁用几个插件,但没有效果。任何用于“重申日程”的插件示例?
    • 您好,我遇到了同样的问题,它甚至有点难以找到......正如您将看到的,它没有当前的更新,但对我来说它有效。发送消息wordpress.org/plugins/wp-crontrol
    • 感谢您的帮助,第一个插件帮助我发现了问题!
    • 感谢您的反馈,以便我们找到可行的解决方案。只需要打电话...
    【解决方案2】:

    这里想到的一件事是,你为什么需要使用 cron?如果您的下一个函数要在另一个函数之后立即运行,则只需在那个时候运行该函数。无需添加到 cron。 Cron 通常用于安排需要按循环计划运行的事情,不一定用于在另一个函数运行后一次运行一个函数。

    另外,检查您的 Wordpress 时区与您的服务器时区。这偶尔会绊倒人们。

    【讨论】:

    • 我需要运行的函数会阻塞 http 请求。我希望能够通过以这种方式使用 cron 来减轻用户的加载时间。
    【解决方案3】:

    我找到了解决方案!问题是由我的防火墙设置引起的...

    他们阻止了 wp-cron 正常运行所需的环回。

    安装这个插件:https://wordpress.org/plugins/wp-crontrol/ 告诉我 错误消息“cURL 错误 28”。

    从那里,我能够弄清楚。

    【讨论】:

      猜你喜欢
      • 2010-10-06
      • 2014-11-26
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多