Want to check if a product from a specific category is in the WooCommerce cart? You can do this easily using the woocommerce_before_cart_contents action hook, which triggers before cart items are displayed. Below is a practical example of how to achieve it:
add_action('woocommerce_before_cart_contents', 'check_product_category_in_cart');
function check_product_category_in_cart() {
$category_slug = 'your-category-slug'; // Replace with your actual category slug
$category_found = false;
// Get items from the cart
$cart_items = WC()->cart->get_cart();
// Loop through each item
foreach ($cart_items as $cart_item_key => $cart_item) {
$product_id = $cart_item['product_id'];
// Check the category
if (has_term($category_slug, 'product_cat', $product_id)) {
$category_found = true;
break;
}
}
// Display message based on result
if ($category_found) {
echo 'The category is in the cart.';
} else {
echo 'The category is not in the cart.';
}
}
Just update 'your-category-slug' to the correct slug for the category you want to target. Add this snippet to your theme’s functions.php or a custom plugin. It will run whenever the cart page loads and inform whether a matching product category is in the cart.
