Sell a Category in Multiples (Cases)
Makes the total quantity from a category a multiple of a case size, for example 6 or 12 bottles, and explains how many more to add.
Opens WPIDE on
Code
$wpide_case = array(
'categories' => array( 'wine' ), // Category slugs.
'size' => 6, // Case size.
);
add_action( 'woocommerce_check_cart_items', function () use ( $wpide_case ) {
$count = 0;
foreach ( WC()->cart->get_cart() as $item ) {
if ( has_term( $wpide_case['categories'], 'product_cat', $item['product_id'] ) ) {
$count += (int) $item['quantity'];
}
}
$remainder = $wpide_case['size'] > 0 ? $count % $wpide_case['size'] : 0;
if ( $count > 0 && $remainder ) {
wc_add_notice( sprintf( 'These products are sold in cases of %1$d. Please add %2$d more to complete a case.', $wpide_case['size'], $wpide_case['size'] - $remainder ), 'error' );
}
} );
Notes
Different products in the category can be mixed within a case.
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.