Maximum Items per Order From a Category
Caps how many items from a category one order can contain, useful for limited drops, rationed products or age-restricted goods.
Opens WPIDE on
Code
$wpide_cat_max = array(
'categories' => array( 'limited-edition' ), // Category slugs.
'maximum' => 2, // Items allowed per order.
);
add_action( 'woocommerce_check_cart_items', function () use ( $wpide_cat_max ) {
$count = 0;
foreach ( WC()->cart->get_cart() as $item ) {
if ( has_term( $wpide_cat_max['categories'], 'product_cat', $item['product_id'] ) ) {
$count += (int) $item['quantity'];
}
}
if ( $count > $wpide_cat_max['maximum'] ) {
wc_add_notice( sprintf( 'You can order up to %1$d limited edition items per order. Please remove %2$d.', $wpide_cat_max['maximum'], $count - $wpide_cat_max['maximum'] ), 'error' );
}
} );
Notes
All products in the listed categories count together, and other products are not limited.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.