Скрыть пользовательскую кнопку, если корзина не пуста на AJAX Добавить в корзину в Woocommerce - PullRequest
0 голосов
/ 06 мая 2018

У меня есть функция, которая проверяет, пуста ли корзина WooCommerce, и, если она есть, добавляет кнопку в заголовок страницы, которая ссылается на страницу моего магазина. Однако этот код работает только при загрузке страницы, но не будет обновляться (и удалять кнопку) после добавления в корзину через AJAX. Как определить, был ли товар добавлен в корзину?

function shop_button_when_empty_cart() {

     if ( WC()->cart->get_cart_contents_count() == 0 ) { ?>
         <a href="/shop"><button>Your cart is empty, go to shop</button></a>
     <?php
     }
}
add_action( 'storefront_header', 'shop_button_when_empty_cart', 40 );

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

На основе на основе этого существующего ответа вот правильный способ выполнить эту работу на страницах архива Woocommerce, где Ajax включен при нажатии кнопки «Добавить в корзину». При добавлении ajax в корзину кнопка будет скрыта:

add_action( 'storefront_header', 'shop_button_when_empty_cart', 40 );
function shop_button_when_empty_cart() {

    $style = WC()->cart->get_cart_contents_count() > 0 ? ' style="display: none;"' : '';
    $class = 'class="button go-shop"';

    echo '<a href="/shop" '.$class.$style.'>Your cart is empty, go to shop</a>';

    if( is_shop() || is_product_category() || is_product_tag() ):
    ?>
    <script type="text/javascript">
        // Ready state
        (function($){
            $( document.body ).on( 'added_to_cart', function(){
                $('a.button.go-shop').hide();
                console.log('action');
            });
        })(jQuery);
    </script>
    <?php
    endif;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). проверено и работает.

Похожие:

0 голосов
/ 06 мая 2018

Если вы используете ajax, то вам придется использовать обработчик ajax. У Woocommerce есть событие под названием added_to_cart Здесь вы можете ввести свой код при вызове этого события,

$(document).on('added_to_cart',function(){
  //here goes your button add code
}

$(document).on( 'added_to_cart removed_from_cart', function(){
 //here goes if cart item is removed
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...