# Allow Only One Product in the Cart

> Replaces the cart contents whenever a new product is added, so each order contains a single product. Useful for services, bookings and memberships.

- Type: PHP
- Runs: Run everywhere
- Category: [WooCommerce](https://wpide.com/library/category/woocommerce/)
- Requires: WooCommerce
- Tags: woocommerce, cart, checkout
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/woo-single-product-cart/

## Code

```php
add_filter( 'woocommerce_add_to_cart_validation', function ( $passed, $product_id ) {
    if ( $passed && WC()->cart && ! WC()->cart->is_empty() ) {
        foreach ( WC()->cart->get_cart() as $key => $item ) {
            if ( (int) $item['product_id'] !== (int) $product_id ) {
                WC()->cart->remove_cart_item( $key );
            }
        }
    }

    return $passed;
}, 20, 2 );
```

## Notes

Shoppers can still change the quantity of the product in their cart.

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Allow Only One Product in the Cart" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
