WooCommerce webhooks 发送空体
WooCommerce webhooks sending an empty body
当 webhook 触发时,我可以在另一端看到请求的正文是空的。
然后我启用了 WP_DEBUG,拍摄了另一个 API-call 并检查了日志文件(WooCommerce >> Status >> Logs >> Log-file for the given day),并且可以看到它确实是空的。所以这不是去往目的地的数据 'falling off the truck'。
我在代码中找到了拍摄的位置,它看起来像这样:
do_action( 'my_custom_webhook', $order->id, [], $order );
所以我将其更改为:
error_log( $order );
do_action( 'my_custom_webhook', $order->id, [], $order );
并且可以看到 $order
不是空的。
奇怪!
采取的调试步骤
1. Webhooks 定义正确
我花了很多时间,深入研究 webhook,看看它是否存在,但设置不正确。或者一些已被弃用的遗留代码。
2。错误日志
我多次浏览错误日志。假设它是一些错误代码,在发送 API 调用之前遇到错误。但这没有任何意义,因为这很可能会阻止 API-call 完全触发。嗯!
3。 Webhook 自动停用
我打的API也返回错误500,当body是空的。所以 webhooks 自己停用了。每当我尝试重新激活它们时,我仍然遇到错误(这两个错误之一):
- 错误:交付 URL 返回响应代码:500
- 错误:无法到达交付 URL:cURL 错误 28:操作在 5001 毫秒后超时,收到 0 个字节。
我想了很久,这才是问题的核心。
但我无法更改 API。所以没有什么好的办法。
我最终意识到,尽管我遇到了那个错误,但 webhook 仍然被激活......并且有效!
所以我完全忽略了那个错误并继续前进。
4.权限
我想这可能是关于权限的问题,因为我会看到我遇到了 woocommerce_rest_cannot_view
-错误。
系统详细信息
- WordPress 版本 5.8.1
- WooCommerce 版本:4.9.3
- 该站点是一个自定义站点,已构建在 Trellis、Bedrock 和 Sage 上。
在此处找到解决方案:https://github.com/woocommerce/woocommerce/issues/24533#issuecomment-551148570
只需删除 webhook,然后使用完全相同的内容再次创建 it/them。
¯\_(ツ)_/¯
当 webhook 触发时,我可以在另一端看到请求的正文是空的。 然后我启用了 WP_DEBUG,拍摄了另一个 API-call 并检查了日志文件(WooCommerce >> Status >> Logs >> Log-file for the given day),并且可以看到它确实是空的。所以这不是去往目的地的数据 'falling off the truck'。
我在代码中找到了拍摄的位置,它看起来像这样:
do_action( 'my_custom_webhook', $order->id, [], $order );
所以我将其更改为:
error_log( $order );
do_action( 'my_custom_webhook', $order->id, [], $order );
并且可以看到 $order
不是空的。
奇怪!
采取的调试步骤
1. Webhooks 定义正确
我花了很多时间,深入研究 webhook,看看它是否存在,但设置不正确。或者一些已被弃用的遗留代码。
2。错误日志
我多次浏览错误日志。假设它是一些错误代码,在发送 API 调用之前遇到错误。但这没有任何意义,因为这很可能会阻止 API-call 完全触发。嗯!
3。 Webhook 自动停用
我打的API也返回错误500,当body是空的。所以 webhooks 自己停用了。每当我尝试重新激活它们时,我仍然遇到错误(这两个错误之一):
- 错误:交付 URL 返回响应代码:500
- 错误:无法到达交付 URL:cURL 错误 28:操作在 5001 毫秒后超时,收到 0 个字节。 我想了很久,这才是问题的核心。
但我无法更改 API。所以没有什么好的办法。
我最终意识到,尽管我遇到了那个错误,但 webhook 仍然被激活......并且有效!
所以我完全忽略了那个错误并继续前进。
4.权限
我想这可能是关于权限的问题,因为我会看到我遇到了 woocommerce_rest_cannot_view
-错误。
系统详细信息
- WordPress 版本 5.8.1
- WooCommerce 版本:4.9.3
- 该站点是一个自定义站点,已构建在 Trellis、Bedrock 和 Sage 上。
在此处找到解决方案:https://github.com/woocommerce/woocommerce/issues/24533#issuecomment-551148570
只需删除 webhook,然后使用完全相同的内容再次创建 it/them。
¯\_(ツ)_/¯