我们有一个插件,它使用woocommerce_payment_complete
hook,它根据项目和订单总额为客户计算订单分值。这将生成一个CSV文件,然后使用rsync
将CSV文件发送到存储和处理此数据的外部系统。
在同一个插件中,我们还使用woocommerce_order_status_changed
钩子根据新订单状态(退款项目等)重新计算值,生成CSV文件并再次发送到外部源。
这一切都很正常,客户可以下订单并生成CSV文件等,我们可以手动更新管理仪表板中的订单状态,并生成和发送新的CSV文件。然而,如果订单通过WooCommerce或支付网关自动更改,则似乎woocommerce_order_status_changed
由于未生成CSV文件,因此未触发挂钩。
所以我的问题是:
是否woocommerce_order_status_changed
当订单状态自动更改时,或者仅当我们在后端手动更改订单状态时,才会触发挂钩?
当订单状态通过WooCommerce/支付网关自动更改时,是否会触发挂钩?
我到处搜索,但每个结果似乎要么指向我已经在做的事情,要么指向设置一个脚本,使用$order->update_status()
和类似的替代品,这不是我们正在寻找的。
One of the results 确实提出了这一点(参考woocommerce_order_status_changed
):
“如果使用挂钩(在WC芯中):不使用。”
这似乎回答了问题1,这让我相信,如果WooCommerce或支付网关自动更改订单状态,它将永远不会启动,从而不会创建我们的CSV等。
有人能解释一下吗?我们是否可以通过WooCommerce或支付网关在订单状态自动更改时触发挂钩?