2016-10-11 58 views
5

当产品通过ajax添加到购物车时,我需要重新组装迷你手推车。我管理与过滤woocommerce_add_to_cart_fragments这样的更新量车:Woocommerce加入购物车ajax和迷你手推车

add_filter('woocommerce_add_to_cart_fragments', function($fragments) { 

    ob_start(); 
    ?> 

    <div class="cart-contents"> 
     <?php echo WC()->cart->get_cart_contents_count(); ?> 
    </div> 

    <?php $fragments['div.cart-contents'] = ob_get_clean(); 

    return $fragments; 

}); 

而我的HTML标记是

<div class="cart-contents"> 
    <?php echo WC()->cart->get_cart_contents_count(); ?> 
</div> 

贝娄说是显示隐藏的div巫.cart-内容悬停

<div class="header-quickcart"><?php woocommerce_mini_cart(); ?></div> 

我想更新这个div内容的方式或类似woocommerce_add_to_cart_fragments。或者我应该更改HTML标记并将所有内容保存在1个div中?做这件事的常见方式或最佳做法是什么?

回答

8

好了,所以我才意识到,我可以使用woocommerce_add_to_cart_fragments过滤器的2倍,像这样:

add_filter('woocommerce_add_to_cart_fragments', function($fragments) { 

    ob_start(); 
    ?> 

    <div class="cart-contents"> 
     <?php echo WC()->cart->get_cart_contents_count(); ?> 
    </div> 

    <?php $fragments['div.cart-contents'] = ob_get_clean(); 

    return $fragments; 

}); 

add_filter('woocommerce_add_to_cart_fragments', function($fragments) { 

    ob_start(); 
    ?> 

    <div class="header-quickcart"> 
     <?php woocommerce_mini_cart(); ?> 
    </div> 

    <?php $fragments['div.header-quickcart'] = ob_get_clean(); 

    return $fragments; 

}); 

首先更新数量和aother清爽微型车查看。

+1

该解决方案可以工作,但只需要将两个片段与一个'add_filter()'合并。主要想法是完美地创建'$ fragments'数组。 –