Woocommerce添加到购物车ajax和迷你购物车

时间:2016-10-11 01:42:59

标签: php ajax wordpress woocommerce cart

当产品通过ajax添加到购物车时,我需要重新填充迷你购物车。我设法使用过滤器woocommerce_add_to_cart_fragments更新购物车数量,如下所示:

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>

Bellow是隐藏的div女巫在.cart-contents hover上显示

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

我想以与woocommerce_add_to_cart_fragments相同或类似的方式更新此div内容。或者我应该更改HTML标记并将所有内容保存在1 div中?这样做的常用方法或最佳做法是什么?

1 个答案:

答案 0 :(得分:12)

好的,所以我才意识到我可以使用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;

} );

首先更新数量和另一个更新的迷你购物车视图。