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

如何在WooCommerce的woocommerce_payment_complete钩子中判断首次与续订订单

在woocommerce_payment_complete钩子中区分首次订单与续订订单

可以实现,核心是通过订单的元数据和WooCommerce订阅相关标识来判断:

  • 续订订单:WooCommerce订阅插件会给续订订单添加_subscription_renewal元数据,值为true,同时订单会关联对应的订阅ID(存储在_subscription_id元字段中)。
  • 首次订单:如果是订阅类订单但不存在_subscription_renewal元数据,即为首次订阅订单;普通非订阅类订单可直接视为首次订单(根据业务需求调整)。

以下是具体代码实现:

add_action( 'woocommerce_payment_complete', 'custom_check_first_order_vs_renewal' );
function custom_check_first_order_vs_renewal( $order_id ) {
    $order = wc_get_order( $order_id );
    
    // 判断是否为续订订单
    $is_renewal = $order->get_meta( '_subscription_renewal' );
    // 获取关联的订阅ID(如果是订阅类订单)
    $subscription_id = $order->get_meta( '_subscription_id' );

    if ( $is_renewal ) {
        // 续订订单逻辑,比如跳过curl发送或标记类型
        // 你的curl代码...
    } else {
        if ( $subscription_id ) {
            // 首次订阅订单,执行curl发送
            // 你的curl代码...
        } else {
            // 普通首次订单(非订阅类),执行curl发送
            // 你的curl代码...
        }
    }
}

补充说明:

  • 确保已安装并激活WooCommerce订阅插件,上述元数据由该插件生成。
  • 若业务仅关注订阅场景的首次/续订,可删除普通订单的分支逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:45:31