当购物车中没有商品时移除迷你购物车 (MayaShop)

Remove mini-cart when no items in cart (MayaShop)

我正在 WooCommerce 中寻求帮助。我想在购物车中没有物品时隐藏迷你购物车和顶部栏(因为它不会经常使用)。

下面是 HTML 输出。

是否需要在 functions.php 中添加某种 "WooCommerce Hook"?

抱歉,如果需要的话,我什至不知道要查看哪些 PHP 文件以查看此特定区域的 post 任何代码片段。

如果是,请告诉我。

谢谢。

位于主主题中的 header.php 文件显示了该迷你购物车。 (最好使用子主题 并将该文件从父主题复制到子主题 ,避免在更新主主题时丢失自定义项)。

编辑那个 header.php 文件,你将不得不在显示迷你购物车的代码周围使用一个简单的条件,这样:

// If cart is not empty display the mini-cart
if(!WC()->cart->is_empty()){

    // Here goes the code that display mini cart in your header
}

这应该可以,但是如果为添加到购物车启用了 ajax,迷你购物车将仅在移动到另一个页面或刷新实际页面时显示。


备选方案:简单方法(使用 CSS 隐藏)

另一种选择,应该是在 html 头部注入一个 CSS 规则,当购物车为空时,这样:

add_action('wp_head', 'hook_css', 99999);
function hook_css() {
    // If cart is empty hide the mini-cart
    if(WC()->cart->is_empty())
        echo '<style type="text/css">#top > #cart{display:none !important;}</style>';
}

此代码在您的活动子主题(或主题)的 function.php 文件或任何插件文件中。

代码works.and如果你想隐藏所有顶部栏(同时隐藏迷你购物车),将css规则替换为(只需删除> #cart):

#top{display:none !important;}

根据您的建议 LoicTheAztec 修复了它,稍微研究了一下代码!谢谢

<!-- TOPBAR --> <?php if (sizeof(WC()->cart->get_cart()) != 0) { get_template_part( 'topbar' ); }?> <!-- END TOPBAR -->