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

WooCommerce按购物车商品数量及分类禁用支付网关实现咨询

WooCommerce 购物车分类差异化起订量规则修改方案

直接替换原有代码即可实现需求,修改后完整代码如下:

// 按分类差异化设置订单最低商品数量支付限制
function s5_unsetting_payment_gateway( $available_gateways ) {
    if ( ! is_admin() ) {
        $cart = WC()->cart;
        $cart_quantity = $cart->get_cart_contents_count();
        $target_multiple = 6; // 默认要求6的倍数起订
        $all_belong_to_special_cat = true;
        $special_cat_id = 2; // 特殊规则适配的分类ID

        // 遍历购物车所有商品判断分类归属
        foreach ( $cart->get_cart() as $cart_item ) {
            $product_id = $cart_item['product_id'];
            // 只要存在一个不属于指定分类的商品,就触发通用规则
            if ( ! has_term( $special_cat_id, 'product_cat', $product_id ) ) {
                $all_belong_to_special_cat = false;
                break;
            }
        }

        // 购物车全为特殊分类商品时,调整为3的倍数起订要求
        if ( $all_belong_to_special_cat ) {
            $target_multiple = 3;
        }

        // 数量不符合要求时移除指定支付网关
        if ( ( $cart_quantity % $target_multiple ) !== 0 ) {
            unset( $available_gateways['cod'] );
            unset( $available_gateways['bacs'] );
        }
    }

    return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 's5_unsetting_payment_gateway', 10, 1 );
  • 后续如果需要调整特殊分类ID,直接修改$special_cat_id变量值即可
  • 规则兼容场景:只要购物车中出现非指定分类的商品,自动恢复默认6件倍数的起订要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:54:01