You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce中创建支付完成触发的自定义Webhook并定制Payload

解决WooCommerce支付完成时Webhook携带完整订单Payload的问题

问题背景

你已经通过将Webhook触发器设为Action、动作名称指定woocommerce_payment_complete,实现了支付完成时触发Webhook,但默认情况下该动作触发的Webhook没有携带订单详情Payload,需要通过自定义代码调整Payload内容。

具体实现方案

1. 注入自定义代码

在WordPress中,可通过woocommerce_webhook_payload过滤器修改Webhook的Payload内容,针对woocommerce_payment_complete动作的Webhook做定向修改:

add_filter( 'woocommerce_webhook_payload', 'custom_payment_complete_webhook_payload', 10, 4 );
function custom_payment_complete_webhook_payload( $payload, $resource, $resource_id, $webhook ) {
    // 仅针对woocommerce_payment_complete动作的Webhook生效
    if ( $webhook->get_topic() === 'action' && $webhook->get_hook() === 'woocommerce_payment_complete' ) {
        // 获取对应订单对象
        $order = wc_get_order( $resource_id );
        if ( $order ) {
            // 提取订单完整基础数据
            $payload = $order->get_data();
            
            // 可选:补充订单行项、支付信息等细节字段
            $payload['line_items'] = [];
            foreach ( $order->get_items() as $item_id => $item ) {
                $payload['line_items'][] = [
                    'id' => $item_id,
                    'name' => $item->get_name(),
                    'quantity' => $item->get_quantity(),
                    'subtotal' => $item->get_subtotal(),
                    'total' => $item->get_total()
                ];
            }
            $payload['payment_method'] = $order->get_payment_method_title();
            $payload['payment_status'] = $order->get_status();
        }
    }
    return $payload;
}

2. 代码说明

  • woocommerce_webhook_payload过滤器允许直接修改Webhook发送的Payload,入参包含原始Payload、资源类型、资源ID、Webhook实例。
  • 通过判断Webhook的主题为action且动作名称匹配woocommerce_payment_complete,确保只修改目标Webhook的内容。
  • 用wc_get_order( $resource_id )获取完整订单对象,get_data()方法可导出订单的全部基础数据数组。
  • 可选的补充字段部分,可根据业务需求添加订单行项、支付方式、订单状态等细节信息。

3. 验证效果

添加代码后,完成一笔测试支付,检查Webhook发送到目标端点的Payload,即可看到包含完整订单详情的数据。

内容的提问来源于stack exchange,提问作者AlePouroullis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:45:49