在Woocommerce API中,哪个挂钩代表Webhook的特定订单状态?

时间:2020-05-22 13:03:21

标签: woocommerce webhooks hook-woocommerce orders

我需要订阅一个Webhook,该Webhook将在订单完成(已完全付款)时触发。哪个网络挂钩将执行此操作?

我已经看到有一个woocommerce_payment_complete动作,但是我想如果在一个订单上有多个付款,那么每次付款都会触发此操作?例如客户可以使用信用卡1进行部分付款,也可以使用信用卡2进行部分付款。当然,每一项都会引发woocommerce_payment_complete事件吗?还是我在文档中缺少什么?

我希望使用order.complete之类的网络挂钩,该订单现在在仓库中时会触发。付款已收到,可以开始履行。但是我没有在文档中看到这样的网络钩。


编辑:

因此,我找到了this链接,该链接解释了Woocommerce订单的生命周期,告诉我Processing是我感兴趣的状态/事件。

但是,我没有在official Webhook reference

中看到此事件

当订单进入此processing状态时,将触发什么webhook?


编辑2: (在@LoicTheAztec回答之后) 当我尝试使用WooCommerce API(https://mysite/wp-json/wc/v3/webhooks)创建Webhook时,具有以下负载:

{
  "name": "Order Processed",
  "topic": "woocommerce_order_status_processing",
  "delivery_url": "https://mycallbackapp.herokuapp.com/yo8i78yo"
}

我收到以下400 Bad Request响应:

{
    "code": "woocommerce_rest_shop_webhook_invalid_topic",
    "message": "Webhook topic is required and must be valid.",
    "data": {
        "status": 400
    }
}

修改3:

最后主题必须为topic.woocommerce_order_status_processing

1 个答案:

答案 0 :(得分:0)

您找不到它,因为有一些WooCommerce 复合钩子,在您的情况下使用的正确钩子是:woocommerce_order_status_$STATUS_TRANSITION[to\],其中$STATUS_TRANSITION是您想要的< em>(过渡)订单状态。

因此对于“处理中” 订单状态,挂钩将为: woocommerce_order_status_processing
或对于“已完成”订单状态,您的挂钩将为woocommerce_order_status_completed