How to Programmatically Remove Products from WooCommerce Cart
In this tutorial, you’ll learn how to remove a product from the WooCommerce cart programmatically using WordPress hooks. This method helps remove products based on specific conditions.
Step 1: Use woocommerce_cart_item_removed
Hook
The woocommerce_cart_item_removed
action triggers when an item is removed from the cart. Use it to set your custom condition for removing a product.
Add this snippet to your theme’s functions.php
file or a custom plugin:
function custom_remove_product_from_cart($cart_item_key, $cart) { $product_id = $cart->cart_contents[$cart_item_key]['product_id']; if ($product_id === YOUR_PRODUCT_ID_TO_REMOVE) { unset($cart->cart_contents[$cart_item_key]); } } add_action('woocommerce_cart_item_removed', 'custom_remove_product_from_cart', 10, 2);
Replace YOUR_PRODUCT_ID_TO_REMOVE
with the product ID you want to target.
Step 2: Use woocommerce_before_calculate_totals
Hook
This hook lets you remove a product just before WooCommerce calculates the cart totals.
Here’s the code:
function custom_remove_product_from_cart_on_calculate_totals($cart) { if (is_admin() && !defined('DOING_AJAX')) return; foreach ($cart->get_cart() as $cart_item_key => $cart_item) { $product_id = $cart_item['product_id']; if ($product_id === YOUR_PRODUCT_ID_TO_REMOVE) { $cart->remove_cart_item($cart_item_key); } } } add_action('woocommerce_before_calculate_totals', 'custom_remove_product_from_cart_on_calculate_totals', 10, 1);
Step 3: Test Your Changes
After saving the code, test in a staging environment. Products with the specified ID should be removed automatically when added to the cart.
Important: Always back up your website and test changes thoroughly to avoid impacting the live user experience.
Use Cases for Automatic Product Removal
- Restricting products for specific user roles
- Conditionally removing items when certain coupons apply