WooCommerce自定义数量规则函数未对指定商品分类生效求助
问题核心原因
你使用的is_product_category(29)仅用于判断当前页面是否为ID=29的商品分类列表页,无法判断单个商品是否归属该分类,这是代码不生效的根本原因。需要改用has_term()函数判断商品本身的所属分类。
修复后完整代码
// 简单产品数量参数调整 add_filter( 'woocommerce_quantity_input_args', 'jk_woocommerce_quantity_input_args', 10, 2 ); function jk_woocommerce_quantity_input_args( $args, $product ) { // 判断当前商品是否属于ID为29的商品分类 if ( has_term( 29, 'product_cat', $product->get_id() ) ) { $args['input_value'] = 3; // 初始值 $args['max_value'] = 999; // 最大值 $args['min_value'] = 3; // 最小值 $args['step'] = 3; // 步长 } return $args; } // 可变产品变体数量参数调整 add_filter( 'woocommerce_available_variation', 'jk_woocommerce_available_variation' ); function jk_woocommerce_available_variation( $args ) { // 判断变体所属的父产品是否属于ID为29的商品分类 if ( has_term( 29, 'product_cat', $args['product_id'] ) ) { $args['max_qty'] = 999; // 变体最大值 $args['min_qty'] = 3; // 变体最小值 } return $args; }
额外注意事项
- 上述代码默认覆盖商品详情页、分类列表页的数量选择规则,若需要让规则同时在购物车页面生效,还需要额外适配
woocommerce_cart_item_quantity过滤器 - 若后续修改了目标分类ID,需要同步修改代码里的分类ID参数
- 替换代码后建议清空网站缓存、浏览器缓存后再测试效果
内容的提问来源于stack exchange,提问作者Emmanuel Caia
相关产品推荐
相关产品推荐

