2016-10-11 75 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'數組。 –