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

WooCommerce支付完成时查询指定user_id发放的coupon使用情况

解决方案

核心思路

要实现需求,需要三个关键步骤:监听订单支付完成事件、筛选出使用特定用户发放优惠券的订单、提取目标信息。以下是具体实现逻辑和示例代码:


1. 监听订单支付完成事件

无论你使用的是哪种电商框架,首先要找到订单支付完成对应的钩子/事件触发点。比如在WooCommerce中是woocommerce_payment_complete,其他系统也会有类似的事件(如Shopify的orders/paid webhook)。

2. 筛选目标订单

在事件回调中,需要完成两个筛选:

  • 判断订单是否使用了优惠券
  • 验证优惠券的发放者ID是否为你指定的user_id

3. 提取并处理信息

筛选通过后,即可提取订单、优惠券、用户的相关信息,用于后续业务逻辑(如存储、通知等)。


示例代码(以WooCommerce为例)

// 绑定订单支付完成事件
add_action('woocommerce_payment_complete', 'process_target_coupon_order', 10, 1);

function process_target_coupon_order($order_id) {
    // 获取订单对象
    $order = wc_get_order($order_id);
    if (!$order) return;

    // 替换为你要监控的发放者ID
    $target_issuer_id = 123;

    // 获取订单使用的所有优惠券
    $used_coupons = $order->get_used_coupons();
    if (empty($used_coupons)) return;

    foreach ($used_coupons as $coupon_code) {
        $coupon = new WC_Coupon($coupon_code);
        // 读取优惠券发放者ID(需提前在创建优惠券时将发放者user_id存入自定义字段'coupon_issuer_id')
        $coupon_issuer_id = $coupon->get_meta('coupon_issuer_id', true);

        if ($coupon_issuer_id == $target_issuer_id) {
            // 提取所需信息
            $target_info = [
                '订单ID' => $order_id,
                '订单编号' => $order->get_order_number(),
                '支付时间' => $order->get_date_paid()->format('Y-m-d H:i:s'),
                '订单总额' => $order->get_total(),
                '使用的优惠券码' => $coupon_code,
                '优惠券发放者ID' => $coupon_issuer_id,
                '下单用户ID' => $order->get_user_id()
            ];

            // 这里替换为你的业务逻辑:比如存入数据库、发送内部通知等
            error_log(print_r($target_info, true));
            break; // 若只需处理第一个符合条件的优惠券,可保留break
        }
    }
}

注意事项

  • 如果你的系统默认不存储优惠券发放者ID,需要在创建优惠券时,将发放者的user_id存入优惠券的自定义字段(如示例中的coupon_issuer_id),否则无法完成筛选。
  • 不同电商系统的API和事件机制会有差异,但核心逻辑一致:监听支付完成事件→校验优惠券发放者→提取信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:52:56