Limit the number of cart items in Woocommerce Limit the number of cart items in Woocommerce wordpress wordpress

Limit the number of cart items in Woocommerce


There is 2 actions to check and to control if you want to limit cart items:

  • When a product is added to cart (In shop pages and product pages)
  • When quantities are updated in cart page

Using a custom function hooked in woocommerce_add_to_cart_validation filter hook, will allow you to restrict the cart items to 6 max and to display a custom message when this limit is exceeded:

// Checking and validating when products are added to cartadd_filter( 'woocommerce_add_to_cart_validation', 'only_six_items_allowed_add_to_cart', 10, 3 );function only_six_items_allowed_add_to_cart( $passed, $product_id, $quantity ) {    $cart_items_count = WC()->cart->get_cart_contents_count();    $total_count = $cart_items_count + $quantity;    if( $cart_items_count >= 6 || $total_count > 6 ){        // Set to false        $passed = false;        // Display a message         wc_add_notice( __( "You can’t have more than 6 items in cart", "woocommerce" ), "error" );    }    return $passed;}

Using a custom function hooked in woocommerce_update_cart_validation filter hook, will allow you to control the cart items quantities update to your 6 cart items limit and to display a custom message when this limit is exceeded:

// Checking and validating when updating cart item quantities when products are added to cartadd_filter( 'woocommerce_update_cart_validation', 'only_six_items_allowed_cart_update', 10, 4 );function only_six_items_allowed_cart_update( $passed, $cart_item_key, $values, $updated_quantity ) {    $cart_items_count = WC()->cart->get_cart_contents_count();    $original_quantity = $values['quantity'];    $total_count = $cart_items_count - $original_quantity + $updated_quantity;    if( $cart_items_count > 6 || $total_count > 6 ){        // Set to false        $passed = false;        // Display a message         wc_add_notice( __( "You can’t have more than 6 items in cart", "woocommerce" ), "error" );    }    return $passed;}

Code goes in function.php file of your active child theme (or theme) or also in any plugin file.

This code is tested and works


You can add additional validation parameters when validating the product being added to cart. woocommerce_add_to_cart_validation expects a true or false value to be returned depending on whether the product is OK to be added to the cart:

/** * When an item is added to the cart, check total cart quantity */function so_21363268_limit_cart_quantity( $valid, $product_id, $quantity ) {    $max_allowed = 6;    $current_cart_count = WC()->cart->get_cart_contents_count();    if( ( $current_cart_count > $max_allowed || $current_cart_count + $quantity > $max_allowed ) && $valid ){        wc_add_notice( sprint( __( 'Whoa hold up. You can only have %d items in your cart', 'your-plugin-textdomain' ), $max ), 'error' );        $valid = false;    }    return $valid;}add_filter( 'woocommerce_add_to_cart_validation', 'so_21363268_limit_cart_quantity', 10, 3 );