首页 > 解决方案 > 如何防止我的购物车菜单在为空时显示为零?

问题描述

在一个 WordPress + WooCommerce 网站上,我在菜单中添加了一个购物车图标,其中包含一个圆圈内包含的项目数,方法是将以下代码放入 functions.php 文件中:

/* Add cart to menu */
add_filter( 'wp_setup_nav_menu_item','my_item_setup' );
function my_item_setup($item) {

    if ( ! is_admin() ) {
        if ( class_exists( 'woocommerce' ) ) {

            global $woocommerce;

            if ( $item->url == esc_url( wc_get_cart_url() ) ) {

                if (is_null($woocommerce->cart)){

                } else {
                    if( get_locale() == 'fr_FR' ) {
                        $item->title = '<span style="position:relative;"><i class="fal fa-shopping-cart" style="font-size:1.25em;"></i><span class="cart-basket d-flex align-items-center justify-content-center">'. '' .  $woocommerce->cart->get_cart_contents_count() . '</span></span>';
                    }
                }

            }
        }
    }
    return $item;
}

/**
 * Updates the content of the cart link via AJAX when adding an item */
add_filter( 'woocommerce_add_to_cart_fragments', 'my_woocommerce_add_to_cart_fragments' );
function my_woocommerce_add_to_cart_fragments( $fragments ) {
    // Add our fragment
    $fragments['li.menu-item-type-woocommerce-cart'] = my_item_setup( '');
    return $fragments;
}

它运作良好,但我希望在购物车为空时不显示圆圈和数字(在这种情况下,当前圆圈显示为“0”),只有购物车图标,你知道这是否可能,并且,如果是这样,你能告诉我允许它的代码吗?

谢谢你的帮助 !

(对不起我的英语不好……)

标签: phpwordpresswoocommercecart

解决方案


它可以通过有条件地添加内部<span>just if来实现get_cart_contents_count() > 0

if( get_locale() == 'fr_FR' ) {
    $innerBasket = '';
    $count = $woocommerce->cart->get_cart_contents_count();  
 
    if ($count > 0) {
        $innerBasket = '<span class="cart-basket d-flex align-items-center justify-content-center">' . $count . '</span>';
    };

    $item->title = '<span style="position:relative;"><i class="fal fa-shopping-cart" style="font-size:1.25em;"></i>' . $innerBasket . '</span>';
}

推荐阅读