Использование Добавить в корзину Фрагмент Обновите цвет, Количество корзин в WooCommerce - PullRequest
0 голосов
/ 07 октября 2019

Я создаю собственную тему, в которой мне нужно изменить цвет фона корзины в зависимости от состояния корзины. Условие Если корзина пуста, фон должен отображаться серым цветом, а если элемент в корзине означает, что количество корзин больше 0, то должно отображаться оранжевый цвет фона.

enter image description here

<?php $ql_cart_wrap_color = (WC()->cart->get_cart_contents_count() == 0 ) ? 'ql_cart_wrap_color_gray' : 'ql_cart_wrap_color_orange';?>
<div class="ql_cart_wrap woo_amc_open_active <?php echo $ql_cart_wrap_color; ?>">
    <button href="javascript:" class="ql_cart-btn">
        <span class="count"><?php echo esc_html( WC()->cart->cart_contents_count );?></span>
        <span class="cart-header"></span>
    </button>
</div>

Здесь $ql_cart_wrap_color; изменить класс с ql_cart_wrap_color_gray на ql_cart_wrap_color_orange, он отлично работает при добавлении в корзину товара. Но когда мы убрали товар из корзины, я имею в виду, что корзина снова становится пустой и больше никогда не переходит на серый фон.

ТАК Я использую фильтр woocommerce_add_to_cart_fragments, теперь он работает только при добавлении в корзину

function dynamic_header_add_to_cart_fragment_refresh( $fragments ) {
        ob_start();
        ?>
        <?php $ql_cart_wrap_color = (WC()->cart->get_cart_contents_count() == 0 ) ? 'ql_cart_wrap_color_grey' : 'ql_cart_wrap_color_orange';?>
        <div class="ql_cart_wrap woo_amc_open_active <?php echo $ql_cart_wrap_color; ?>">
            <button href="javascript:" class="ql_cart-btn">
                <span class="count"><?php echo esc_html( WC()->cart->cart_contents_count );?></span>
                <span class="cart-header"></span>
            </button>
        </div>
        <?php

        $fragments['.ql_cart_wrap'] = ob_get_clean();
        return $fragments;
    }
    add_filter( 'woocommerce_add_to_cart_fragments', 'dynamic_header_add_to_cart_fragment_refresh' );

Есть ли другой способ обновить его без перезагрузки страницы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...