在woocommerce购物车中限制商品数量?

时间:2015-07-20 12:19:44

标签: wordpress woocommerce product cart shopping

我想将购物车中的商品数量限制为最多6个。 我的woocommerce设置中的所有产品都是单独出售的(不能购买相同产品的倍数)。

购物车示例

eXAMPLE

有没有办法将购物车限制在6种产品中?因此,如果用户添加第7个,则会弹出警告“仅限最多6个产品”。请从购物车中删除产品?

尝试谷歌搜索,但只能找到这个,仅限于单一产品:Need Woocommerce to only allow 1 product in the cart

1 个答案:

答案 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 );