WooCommerce, страница корзины - скрыть элемент, когда корзина пуста - PullRequest
1 голос
/ 21 февраля 2020

Я разместил некоторые пользовательские элементы на странице корзины 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.

Кто-нибудь знает, как это сделать?

Спасибо и всего наилучшего!

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Хорошо, я думаю, что нашел решение, которое также работает без перезагрузки страницы вручную:

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 
   } 
}

и в стиле. css:

.Empty-Cart-0209 .Have-Question-Textblock-Cart-0209 {
display:none;
}
0 голосов
/ 22 февраля 2020

Может быть следующим образом?

function henju_empty_cart() {

    if ( WC()->cart->get_cart_contents_count() == 0 ) {
        ?>
        <script type="text/javascript">
            jQuery(document).ready(function ($) {
                console.log('JS works!');

                $('.Have-Question-Textblock-Cart-0209').css('display','none');
            });
        </script>
        <?php
    }
}
add_action( 'wp_footer', 'henju_empty_cart' );
...