Add EDD Cart Icon to Divi Header

|

Want to add a cart icon to the Divi header when using Easy Digital Downloads? Here's how to do it.

Simply add the following PHP code to your site:

// Add EDD cart icon and quantity to header menu
function dbc_add_menu_items($items, $args) {
	if ($args->theme_location !== 'primary-menu') return $items;
	if (function_exists('edd_is_checkout') && edd_is_checkout()) return $items;
    if (!function_exists('edd_get_checkout_uri') || !function_exists('edd_get_cart_quantity')) return $items; 
    if ( $qty = edd_get_cart_quantity() ) {
       	$items = $items . '<li id="cart-menu-item"><a href="' . edd_get_checkout_uri(). '" title="Checkout"><span>Checkout</span></a></li>';
        $items = $items . '<span id="header-cart" class="edd-cart-quantity">' . edd_get_cart_quantity() . '</span>';            
    }
    return $items;
}
add_filter('wp_nav_menu_items', 'dbc_add_menu_items', 10, 2);

function dbc_cart_icon_css() { ?>
	<style>
	#cart-menu-item a:before {
		font-family: 'ETModules';
		content: '\e07a'; 
	}
	#cart-menu-item {
		padding-right: 4px !important;
	}
	#cart-menu-item a span {
    	display: none;
	}
	.edd-cart-quantity {
    	vertical-align: super !important;
    	font-size: smaller;
	}
	#cart-menu-item a:before, 
	.edd-cart-quantity {
    	color: red !important;
	}
	#mobile_menu #cart-menu-item,
	#mobile_menu #header-cart {
		display: none;
	}
	</style>
	<?php
}
add_action('wp_head', 'dbc_cart_icon_css');
This code is based on a snippet shared by Isabel Castillo. I've customized it a bit to suit Divi and to avoid showing when the cart is empty or you're on the checkout page.

This post may contain referral links which may earn a commission for this site

Divi Booster

Hundreds of new features for Divi
in one easy-to-use plugin

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 *.