WordPress Snippets

Code Snippet

When using WooCommerce you may want to limit the number of items that can be initially placed in the cart, or can be increased to while already in the cart.

PHP – Limiting the Number of Items when Adding to the cart

Place the following code anywhere in your child theme’s functions.php document.

// limiting the number of items in cart when adding to the cart
function limit_number_of_items_allowed_cart_added( $passed, $product_id, $quantity ) {

    $cart_items_count = WC()->cart->get_cart_contents_count();
    $total_count = $cart_items_count + $quantity;

    if( $cart_items_count >= 99 || $total_count >99 ){
        // set to false
        $passed = false;
        // display a message
         wc_add_notice( __( 'If you require a quantity of more than 99 products to be shipped, please <a href="/contact-us/">Contact Sales</a> in lieu of placing your order online. Thank you, and we apologize for any inconvenience.', 'woocommerce' ), 'error' );
    }
    return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'limit_number_of_items_allowed_cart_added', 10, 3 );

PHP – Limiting the Number of Items when Increasing from within the Cart

Place the following code anywhere in your child theme’s functions.php document.

// limiting the number of items in cart when updating within the cart
function limit_number_of_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 > 99 || $total_count > 99 ){
        // set to false
        $passed = false;
        // display a message
         wc_add_notice( __( 'If you require a quantity of more than 99 products to be shipped, please <a href="/contact-us/">Contact Sales</a> in lieu of placing your order online. Thank you, and we apologize for any inconvenience.', 'woocommerce' ), 'error' );
    }
    return $passed;
}
add_filter( 'woocommerce_update_cart_validation', 'limit_number_of_items_allowed_cart_update', 10, 4 );

Note

All modifications to a theme or plugin should be made by creating a child theme and placing the changes there. Changes made to the parent theme will be overwritten the next time it updates.


WordPress Notes:

  • All modifications to a theme or plugin should be made by creating a child theme and placing the changes there; changes made to the parent theme will be overwritten the next time it updates

We’d like to acknowledge that we learned a great deal of our coding from W3Schools and TutorialsPoint, borrowing heavily from their teaching process and excellent code examples. We highly recommend both sites to deepen your experience, and further your coding journey. We’re just hitting the basics here at 1SMARTchicken.