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

WooCommerce订单完成后获取Stripe customer_id的相关技术问题咨询

问题解答

1. Stripe返回数据说明

  • 官方WooCommerce Stripe Gateway插件会在支付流程完成后,自动将Stripe返回的customer_id存储到站点数据库中,你可以直接读取调用:
    • 第一存储位置:对应订单的自定义元数据中,字段名为_stripe_customer_id
    • 第二存储位置:如果下单用户是站点注册用户,customer_id还会同步存储到该用户的WordPress用户元数据中,字段名同样为_stripe_customer_id,方便后续订单复用

2. 可使用的WooCommerce Hook

完全有适配需求的钩子,如果你需要在订单状态标记为「完成」时触发操作,直接使用woocommerce_order_status_completed钩子即可,它会在订单状态变更为完成时自动触发执行自定义逻辑。
如果你不需要等订单手动标记完成,只要支付成功就执行操作,可替换为woocommerce_payment_complete钩子,触发时机更早。

3. 功能实现示例代码

你可以将以下代码添加到当前主题的functions.php文件中,或者封装为独立的自定义插件启用:

add_action( 'woocommerce_order_status_completed', 'send_stripe_customer_id_to_custom_api', 10, 2 );
function send_stripe_customer_id_to_custom_api( $order_id, $order ) {
    // 读取订单关联的Stripe customer_id
    $stripe_customer_id = $order->get_meta( '_stripe_customer_id', true );
    
    // customer_id为空时直接终止,避免无效请求
    if ( empty( $stripe_customer_id ) ) {
        return;
    }
    
    // 组装第三方API需要的参数
    $request_data = [
        'order_id' => $order_id,
        'billing_email' => $order->get_billing_email(),
        'stripe_customer_id' => $stripe_customer_id
        // 可根据需求补充其他订单、用户字段
    ];
    
    // 发送请求到你的第三方API
    $api_response = wp_remote_post( '替换为你的第三方API接口地址', [
        'headers' => [
            'Content-Type' => 'application/json',
            // 按需添加API鉴权需要的请求头
        ],
        'body' => json_encode( $request_data ),
        'timeout' => 30,
    ] );
    
    // 可在此处增加请求结果校验、错误日志记录等逻辑
}

注:如果使用的是二次修改过的非官方Stripe Gateway插件,可先查看订单元数据确认customer_id的存储字段名是否有调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 01:54:03