Browse Source

Merge pull request #2024 from Automattic/fix/#2022

Varia: Fix shopping cart menu issue
Ben Dwyer 4 years ago
parent
commit
0542b7ae44
1 changed files with 34 additions and 24 deletions
  1. 34 24
      varia/inc/woocommerce.php

+ 34 - 24
varia/inc/woocommerce.php

@@ -183,40 +183,50 @@ if ( defined( 'WC_VERSION' ) && version_compare( WC_VERSION, '2.3', '>=' ) ) {
  */
 function varia_add_cart_menu( $nav, $args ) {
 	if ( $args->theme_location == 'menu-1' ) {
-		return sprintf(
-			'%1$s
-			</ul></div>
-			<input type="checkbox" role="button" aria-haspopup="true" id="woocommerce-toggle" class="hide-visually">
-			<label for="woocommerce-toggle" id="toggle-cart" class="button">%2$s %3$s
+		update_option( 'varia_cart_icon', true );
+
+		if ( empty( $nav ) ) {
+			update_option( 'varia_cart_icon', false );
+		}
+		
+		$has_cart_icon = get_option( 'varia_cart_icon' );
+		
+		if ( $has_cart_icon && ! empty( $nav ) ) {
+			return sprintf(
+				'%1$s
+				</ul></div>
+				<input type="checkbox" role="button" aria-haspopup="true" id="woocommerce-toggle" class="hide-visually">
+				<label for="woocommerce-toggle" id="toggle-cart" class="button">%2$s %3$s
 				<span class="dropdown-icon open">+</span>
 				<span class="dropdown-icon close">×</span>
 				<span class="hide-visually expanded-text">%4$s</span>
 				<span class="hide-visually collapsed-text">%5$s</span>
-			</label>
-			<div class="woocommerce-menu-container">
-			<ul id="woocommerce-menu" class="main-menu" aria-label="submenu">
-			<li class="menu-item woocommerce-menu-item %10$s" title="%6$s">
+				</label>
+				<div class="woocommerce-menu-container">
+				<ul id="woocommerce-menu" class="main-menu" aria-label="submenu">
+				<li class="menu-item woocommerce-menu-item %10$s" title="%6$s">
 				%8$s
 				<ul class="sub-menu">
 					<li class="woocommerce-cart-widget" title="%7$s">
-						%9$s
+					%9$s
 					</li>
 				</ul>
-			</li>',
-			$nav,
-			varia_get_icon_svg( 'shopping_cart', 16 ),
-			esc_html__( 'Cart', 'varia' ),
-			esc_html__( 'expanded', 'varia' ),
-			esc_html__( 'collapsed', 'varia' ),
-			esc_attr__( 'View your shopping cart', 'varia' ),
-			esc_attr__( 'View your shopping list', 'varia' ),
-			varia_cart_link(),
-			varia_cart_widget(),
-			is_cart() ? 'current-menu-item' : ''
-		);
-	}
+				</li>',
+				$nav,
+				varia_get_icon_svg( 'shopping_cart', 16 ),
+				esc_html__( 'Cart', 'varia' ),
+				esc_html__( 'expanded', 'varia' ),
+				esc_html__( 'collapsed', 'varia' ),
+				esc_attr__( 'View your shopping cart', 'varia' ),
+				esc_attr__( 'View your shopping list', 'varia' ),
+				varia_cart_link(),
+				varia_cart_widget(),
+				is_cart() ? 'current-menu-item' : ''
+			);
+    	}
+  	}
 
 	// Our primary menu isn't set, return the regular nav
 	return $nav;
 }
-add_filter( 'wp_nav_menu_items', 'varia_add_cart_menu', 10, 2 );
+add_filter( 'wp_nav_menu_items', 'varia_add_cart_menu', 10, 2 );