我想将购物车中的商品数量限制为最多6个。 我的woocommerce设置中的所有产品都是单独出售的(不能购买相同产品的倍数)。
购物车示例
有没有办法将购物车限制在6种产品中?因此,如果用户添加第7个,则会弹出警告“仅限最多6个产品”。请从购物车中删除产品?
尝试谷歌搜索,但只能找到这个,仅限于单一产品:Need Woocommerce to only allow 1 product in the cart
答案 0 :(得分:3)
这与您链接的其他问题的程序相同。在验证过滤器上,检查购物车内容,如果不满足要求,则返回消息。如上所述,您确实会使用get_cart_contents_count()
来计算购物车中的订单项数量。
已编辑:删除empty()
检查购物车
function so_31516355_cap_cart_count( $valid, $product_id, $quantity ) {
if( $valid && ( $quantity > 6 || intval( WC()->cart->get_cart_contents_count() ) > 6 || $quantity + intval( WC()->cart->get_cart_contents_count() ) > 6 ) ){
$valid = false;
wc_add_notice( 'Whoa hold up. You can only have 6 items in your cart', 'error' );
}
return $valid;
}
add_filter( 'woocommerce_add_to_cart_validation', 'so_31516355_cap_cart_count', 10, 3 );
已添加验证购物车更新
function so_31516355_cap_cart_count_update( $valid, $cart_item_key, $values, $quantity ) {
if( $valid && ( $quantity > 6 || intval( WC()->cart->get_cart_contents_count() ) > 6 || $quantity + intval( WC()->cart->get_cart_contents_count() ) > 6 ) ){
$valid = false;
wc_add_notice( __( 'Whoa hold up. You can only have 6 items in your cart', 'your-plugin' ), 'error' );
}
return $valid;
}
add_filter( 'woocommerce_update_cart_validation', 'so_31516355_cap_cart_count_update', 10, 4 );