当Woocommerce购物车为空时,为项目添加CSS类

时间:2017-07-15 08:09:56

标签: php css wordpress woocommerce shopping-cart

我试图在我的购物车为空时隐藏它,所以我决定在购物车为空时将CSS类添加到购物车HTML项目,这是我当前的代码:

 function x_woocommerce_navbar_menu_item( $items, $args ) {
      if (WC()->cart->cart_contents_count == 0 ) {
       echo '<script type="text/javascript">
                    $(document).ready(function() {
                        $("#header_cart").addClass("zero"); 
                    });
               </script>';
      }

我将此添加到我的functionts.php文件

我错过了什么吗?

3 个答案:

答案 0 :(得分:1)

如果将类添加到body以在CSS中创建层次结构将会很好。在functions.php中使用以下代码:

    function tristup_body_classes( $classes )
    {

        global $woocommerce;
        if( is_cart() && WC()->cart->cart_contents_count == 0){
            $classes[]='empty-cart';
        }
        return $classes;
    }
    add_filter( 'body_class', 'tristup_body_classes' );

此代码将添加一个类&#34; empty-cart&#34;对身体 希望这能解决你的问题。

答案 1 :(得分:1)

我要在此发布一个基于Tristup答案的解决方案,因为他的答案并不是100%正确,而观察到的情况Yahya Hussein

add_filter( 'body_class','shoppingCartNotEmpty' );
function shoppingCartNotEmpty( $classes ) {
    $classes[] = WC()->cart->get_cart_contents_count() ? 'shopping-cart-not-empty' 
                                                       : 'shopping-cart-empty';
    return $classes;
}

当购物车为空时,将创建CSS类shopping-cart-empty,否则shopping-cart-not-empty可用。

答案 2 :(得分:0)

请将此代码放在functions.php文件中。

function cart_empty_add_class() {
    global $woocommerce;
    if ( empty($woocommerce->cart->cart_contents) ) {
        echo '<script type="text/javascript">
                    $(document).ready(function() {
                        $("#header_cart").addClass("zero"); 
                    });
               </script>';
exit;
    }
}
add_action( 'wp_head', 'cart_empty_add_class' );