防止 WooCommerce 仅在 REST API 更新时触发产品更新 webhook

Prevent WooCommerce from firing product update webhook on REST API update only

我正在尝试创建一个股票同步系统,通过 REST API 和 webhooks 与 WooCommerce 通信。它的工作原理很简单:

  1. 如果产品已更新 - webhook 被触发到我的 API,它使用当前库存信息创建事件。
  2. 当事件被创建时,它正在被处理并且产品更新信息通过 REST 发送到我的“网络”中的其他 WooCommerce 商店。产品已更新。

这里的问题是它创建了某种无限循环,因为当产品在其他网站上更新时,它再次触发 webhook 并再次在我的 API 中创建一个新事件。

问题:是否可以仅在通过 REST API(或特定功能)更新产品时阻止 WooCommerce 触发产品更新 webhook?

是的,这里有一个使用过滤器 woocommerce_webhook_should_deliver 的示例:https://shanerutter.co.uk/fix-woocommerce-webhook-loop/

此外,我很幸运在创建 Action Scheduler 操作时取消安排它们,这是 REST API 库存类型同步作业触发产品更新挂钩和网络挂钩的结果:

add_action( 'init', function() {
    as_unschedule_all_actions( 'adjust_download_permissions' );
} );