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
相关产品推荐
相关产品推荐

