WooCommerce,购物车页面–购物车为空时隐藏元素

时间:2020-02-21 16:31:43

标签: php if-statement woocommerce hide cart

我在WooCommerce购物车页面上放置了一些自定义元素。当产品在购物车中时,页面看起来不错–但是,当购物车为空时,我的自定义元素仍然存在,并且会干扰购物车的空布局。这就是为什么我要在那种情况下隐藏那些自定义元素的原因。

我通过将以下代码添加到子主题的函数中来进行尝试:

add_action( 'wp_footer', 'henju_empty_cart' );
function henju_empty_cart() {

    if ( WC()->cart->get_cart_contents_count() == 0 ) {
            echo "<script>
            $('Have-Question-Textblock-Cart-0209').hide()
            </script>";
    }
}

或者:

add_action( 'wp_head', 'henju2_empty_cart' );
function henju2_empty_cart() {

    if( is_cart() && WC()->cart->cart_contents_count == 0){
            echo "<script>
            $('Have-Question-Textblock-Cart-0209').css('display','none');
            </script>";
exit;
    }
}

但这没用。

基本上,我想隐藏具有CSS类“ .Have-Question-Textblock-Cart-0209”的自定义元素。

有人知道怎么做吗?

谢谢,最好!

1 个答案:

答案 0 :(得分:0)

好的,我想我找到了一种无需手动重新加载页面即可解决的解决方案:

add_filter( 'body_class','henju_empty_cart' );
function henju_empty_cart( $classes ) {
    global $woocommerce;
    if( is_cart() && WC()->cart->get_cart_contents_count() == 0 ) {
        $classes[] = 'Empty-Cart-0209';
    }

    return $classes;

}

add_action( 'wp_footer', 'henju_empty_cart_ajax' ); 

function henju_empty_cart_ajax() { 
   if ( is_cart()) {
      ?> 
      <script type="text/javascript"> 
         jQuery(function($) {
               if ($num_items == 0) { location.reload (true) };
         });
         exit();
      </script> 
      <?php 
   } 
}

并在style.css中:

.Empty-Cart-0209 .Have-Question-Textblock-Cart-0209 {
display:none;
}