WooCommerce 按品类设置最小订购量(单品类总计3件)代码需求
解决WooCommerce指定品类总订购量最少3件的问题
原代码的问题
- 逻辑错误:原代码检查单个商品的订购量是否达标,而非目标品类下所有商品的总数量
- 参数错误:最小订购量设置为
2,不符合需求的3 - 提示文本不匹配:提示内容里的"Notenexemplare"和目标品类"Vinos"不符,且描述逻辑错误
修正后的代码
add_action( 'woocommerce_check_cart_items', 'wc_min_category_total_qty' ); function wc_min_category_total_qty() { $target_category = 'Vinos'; // 目标产品品类 $min_total_qty = 3; // 该品类的最小总订购量 $category_total = 0; // 初始化品类总数量 // 遍历购物车商品,计算目标品类的总数量 foreach( WC()->cart->get_cart() as $cart_item ) { if( has_term( $target_category, 'product_cat', $cart_item['product_id'] ) ) { $category_total += $cart_item['quantity']; } } // 检查总数量是否达标,不达标则显示错误提示并阻止结账 if( $category_total > 0 && $category_total < $min_total_qty ) { wc_clear_notices(); wc_add_notice( sprintf( '请注意:品类%s的最小订购量为%s件。当前购物车中该品类商品总数量为%s件,请补充选购。', $target_category, $min_total_qty, $category_total ), 'error' ); } }
代码说明
- 遍历购物车所有商品,累加目标品类下所有商品的订购数量
- 仅当购物车中存在目标品类商品,且总数量小于3时,才触发错误提示
- 错误提示会清空其他通知,确保用户能清晰看到要求
- 支持同一款商品买3件,或同品类下3款不同商品各买1件的场景
内容的提问来源于stack exchange,提问作者workarea72
相关产品推荐
相关产品推荐

