Мини-корзина Woocommerce обновляется Ajax каждую секунду - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть местный интернет-магазин с темой woocommerce и плоской дочерью. Я создал мини-корзину в заголовке, которая отлично работает, и добавил код ajax для его обновления.

Код Ajax:

add_filter( 'woocommerce_add_to_cart_fragments', 'flatsome_add_to_cart_dropdown', 30, 1 );
function flatsome_add_to_cart_dropdown( $fragments ) {
    global $woocommerce;
    global $flatsome_opt;
    ob_start();
    ?>
    <div class="cart-inner">
        <a href="<?php echo esc_url( $woocommerce->cart->get_cart_url() ); ?>" class="cart-link">
            <strong class="cart-name hide-for-small"><?php _e('Cart', 'woocommerce'); ?></strong>   
            <span class="cart-price hide-for-small">/ <?php wc_cart_totals_order_total_html(); ?></span>
            <!-- cart icon -->
            <div class="cart-icon">
                <?php if ($flatsome_opt['custom_cart_icon']){ ?> 
                    <div class="custom-cart-inner">
                        <div class="custom-cart-count"><?php echo $woocommerce->cart->cart_contents_count; ?></div>
                        <img class="custom-cart-icon" alt="<?php _e('Cart', 'woocommerce'); ?>" src="<?php echo $flatsome_opt['custom_cart_icon']?>"/> 
                    </div><!-- .custom-cart-inner -->
                <?php } else { ?> 
                    <strong><?php echo $woocommerce->cart->cart_contents_count; ?></strong>             
                    <span class="cart-icon-handle"></span>
                <?php } ?>
            </div><!-- end cart icon -->
        </a>
        <div  class="nav-dropdown">
            <div id="mini-cart-content" class="nav-dropdown-inner widget_shopping_cart widget_shopping_cart_content">
                <?php                                    
                    if (sizeof($woocommerce->cart->cart_contents)>0) {
                        echo woocommerce_mini_cart();
                    } else {
                        echo '<p class="empty">'.__('No products in the cart.','woocommerce').'</p>';
                    }                     
                ?>                                                                        
            </div><!-- .nav-dropdown-inner -->
        </div><!-- .nav-dropdown -->
    </div><!-- .cart-inner -->

    <?php
    $fragments['.cart-inner'] = ob_get_clean();
    return $fragments;
}

Моя мини-корзина заголовка выглядит так же, как и в теле. Проблема, с которой я сталкиваюсь, заключается в том, что все это работает нормально, но только при втором изменении. Так, например, при изменении количества товара на 15 обновляется основная корзина, но мини-корзина остается неизменной. А если вы снова измените количество на 50, обновятся как мини-корзина, так и основная корзина. И опять же, если вы измените ничего не происходит, но во второй раз это работает. Может ли это быть проблемой с кешем, я уже пытался отключить плагины, но, похоже, ничего не работает. Кто-нибудь сталкивался с чем-то вроде этого?

Примечание: изменение количества и количество выполняются на заказ плагином, поэтому может ли это вызвать проблему?

...