当web钩子启动时,我可以在另一端看到请求的主体是空的。然后,我启用了WP_DEBUG,进行了另一个API调用,并检查了日志文件( WooCommerce >> Status >> Logs >>日志文件在给定的一天内),并且可以看到它确实是空的。所以在去目的地的路上,不是数据“从卡车上掉下来”。
我在代码中找到了拍摄的位置,如下所示:
do_action( 'my_custom_webhook', $order->id, [], $order );所以我把它改成:
error_log( $order );
do_action( 'my_custom_webhook', $order->id, [], $order );可以看出$order并不是空的。
WIERD!
所采取的调试步骤
1.正确定义的Webhooks
我花了相当多的时间,深入到网络钩子中,看看是否有什么东西,那是不正确的设置。或者一些被废弃的遗留代码。
2.错误日志
我查了几次错误日志。假设是一些错误的代码,在发送API调用之前遇到了一个错误。但这没有任何意义,因为这很可能会阻止API调用完全触发。嗯!
3. Webhooks自动失活
当身体是空的时候,我点击的API也会返回并出错500。所以网络钩子让他们自己停用了。每当我试图重新激活它们时,我仍然会得到一个错误(这两个中的任何一个):
但我没能改变API。所以没有什么好办法来解决这个问题。
我最终意识到,即使我得到了那个错误,这个钩子仍然被激活.而且起作用了!
所以我完全忽略了这个错误,然后继续前进。
4.权限
我想这可能是关于权限的,因为我会看到我得到了一个woocommerce_rest_cannot_view-error。
系统细节
。
发布于 2021-12-01 10:21:48
在这里找到了解决方案:https://github.com/woocommerce/woocommerce/issues/24533#issuecomment-551148570
只需删除web钩子,并使用完全相同的内容再次创建它/它们。
¯\_(ツ)_/¯
https://stackoverflow.com/questions/70182486
复制相似问题