Hide Empty WooCommerce Cart in Divi

Written by Dan Mossop

When WooCommerce is active on a site running the Divi theme, Divi will display a cart icon in the header. Clicking on this cart will take the the user to the checkout. If you don't want users clicking through to an empty checkout page, you can hide the cart icon while the cart is empty. Here's how:

Hide the Cart Icon when Empty Using PHP & CSS

Unfortunately, Divi doesn't provide a way to distinguish on the front-end whether the cart is empty, or has items in it. But with a bit of PHP we can easily add a body class which indicates whether the cart is empty or not. Here's the PHP code:

/* Add cart empty / not empty body class. https://divibooster.com/?p=267906 */
add_filter('body_class', 'db_add_cart_status_class');

function db_add_cart_status_class($classes) {
	if (function_exists('WC')) {
		$cart = WC()->cart;
		if (isset($cart) && is_callable(array($cart, 'get_cart_contents_count'))) {
			$items = $cart->get_cart_contents_count();
			$classes[] = $items?'db_cart_has_items':'db_cart_is_empty';
		}
	}
	return $classes;
}
/* End */

With that in place, we can now use the ".db_cart_has_items" class to style the cart when it has items in it, and we can use the ".db_cart_is_empty" class to style (or hide) the cart icon when the cart is empty.

Here's the CSS to hide the cart icon when the cart is empty:

.db_cart_is_empty .et-cart-info {
	display: none;
}

We may earn a commission when you visit links on our website.

Run PHP Code Directly in your Divi Layouts

Unlock endless customization, automation, and dynamic functionality by seamlessly adding PHP code to your Divi pages and posts with the Divi PHP Code Module. Style, preview, and debug your PHP creations directly in the visual builder with robust error handling and enhanced security.

Latest Posts

Add Text Before the Number in the Divi Circle Counter

Adding a custom number prefix to your Circle Counter lets you clarify what the value represents—such as currency, units, or labels—without relying on the default percentage format. This helps your counters better match real-world metrics and keeps the design...

Add a Second Line of Text in a Divi Button Module

Adding a second line of text beneath a button’s main label lets you provide extra context, a brief benefit statement, or a supporting call-to-action without cluttering your design. This can improve clarity and increase clicks by making the button’s purpose more...

Top (or Bottom) Align Divi Icon List Module Icons

When Icon List items wrap onto multiple lines, the default icon alignment can make the icon appear vertically centered next to the text, which may look unbalanced or harder to scan. Setting the icons to align at the top creates a cleaner, more consistent...

Make Divi Button Modules Full Width with Centered Content

This configuration makes a Divi button stretch to the full width of its container while keeping its label neatly centered, creating a bold, edge-to-edge call-to-action. You might want this for hero sections, pricing tables, or any layout where a standard-sized button...

Fix the Flickr Typo in the Divi Social Media Follow Module

Sometimes it's the small things that make the difference... there is a minor typo in the Divi Social Media Follow module that was present in Divi 4, and (currently) remains in Divi 5. Specifically, the tooltip for Flickr is misspelled as "Flikr". Here's how to fix...

About Dan Mossop

Dan is a Scottish-born web developer, now living in Brisbane with his wife and son. He has been sharing tips and helping users with Divi since 2014. He created Divi Booster, the first Divi plugin, and continues to develop it along with 20+ other Divi plugins. Dan has a PhD in Computer Science, a background in web security and likes a lot of stuff, 

0 Comments

Submit a Comment

Comments are manually moderated and approved at the time they are answered. A preview is shown while pending but may disappear if your are cookies cleared - don't worry though, the comment is still in the queue.

Your email address will not be published. Required fields are marked *.