wordpress - woocommerce_order_status_completed 没有数据
问题描述
我为 woocommerce_order_status_completed 创建了一个 webhook,当订单完成时,这个钩子会成功触发。
问题是除了 ID 之外,我没有从已完成的订单中获得任何数据。响应显示如下。
{"action":"woocommerce_order_status_completed","arg":1640}
解决方案
我用这个代码制作了一个插件来解决这个问题:
function set_resource_for_webhook_payload_by_webhook_id($target_webhook_id,
$desired_resource) {
add_filter('woocommerce_webhook_resource', function($resource, $webhook_id) use
($target_webhook_id, $desired_resource) {
if($webhook_id == $target_webhook_id) {
return $desired_resource;
}
return $resource;
}, 10, 2);
add_filter('woocommerce_valid_webhook_events', function($valid_events) use ($target_webhook_id) {
try {
$topic = wc_get_webhook($target_webhook_id)->get_topic();
list($resource, $event) = explode('.', $topic);
if(!empty($event)) {
$valid_events[] = $event;
}
return $valid_events;
} catch (Exception $e) {
return $valid_events;
}
}, 10);
}
//Replace number (3) bellow with your webhook ID:
add_action('init', function(){
set_resource_for_webhook_payload_by_webhook_id(3, 'order');
});
希望它可以帮助任何人。
推荐阅读
- c# - Unity - 自定义检查器不可编辑数组
- mysql - 按人选择前 4 个分数,但至少需要两个位置
- php - PHP Simple Dom HTML Parser 的错误解析语法
- awk - awk - 选择行的操作
- python - 如何读取 YAML 文件中的组件,以便我可以使用 ruamel.yaml 编辑它的键值?
- javascript - 为什么 Vue 事件不向上传播?
- arrays - Ruby:如何将哈希键和值显示为数组
- java - 在 Java SE 中:非空属性引用空值或瞬态值
- python - Python 在“del FilmName[NewCinema]”上得到 KeyError
- r - 在 R 中使用 gsub() 删除括号和美元符号?