使用woocommerce_add_to_cart_fragments函数更新woocommerce迷你购物车

时间:2018-10-15 14:42:38

标签: php ajax wordpress woocommerce minicart

我正在尝试创建一个商店页面,其中迷你购物车(产品旁边)会使用ajax立即更新,而不是在将产品添加到购物篮时重新加载整个页面。

问题是购物车没有立即更新。当我按下“添加到购物篮”按钮时,它会在按钮内放一个装载轮一秒钟,然后变成刻度线(表示成功),但是迷你购物车不会更新。但是之后,当我手动刷新页面时,购物车显示为已更新。

代码如下:

woocommerce.php -主商店页面

<div class="col-md-8">

    <?php woocommerce_content(); ?>

        <div id="mini-cart-container">
            <div id="mini-cart-container-inner">
                <?php woocommerce_mini_cart(); ?>
            </div>
        </div>

</div>

functions.php

add_filter( 'woocommerce_add_to_cart_fragments', 'wc_mini_cart_refresh');
function wc_mini_cart_refresh( $fragments ){
    ob_start();
    woocommerce_mini_cart();
    $fragments['#mini-cart-container'] = ob_get_clean();

    return $fragments;
}

似乎该功能本身可以工作,但仅当首次加载页面时,按下“添加到购物篮”按钮时,迷你购物车不会更新。我知道这是因为,当我在随机小车的放置位置放一些随机文本时,就像这样:

<div class="col-md-8">

    <?php woocommerce_content(); ?>

        <div id="mini-cart-container">
            <div id="mini-cart-container-inner">
                <?php echo "hello"; ?>
            </div>
        </div>

</div>

然后刷新页面,在被迷你购物车取代之前,我非常短暂地(不到一秒钟)看到了“ hello”文本。

因此该功能正常工作,似乎已将商品添加到购物篮中,但仅在刷新页面时才替换小型购物车。

我尝试到处寻找答案,此代码是每个人告诉我的代码都可以使用的功能,但是由于某些原因,它对我不起作用。有某种我不知道的缓存吗?我想念什么吗?

0 个答案:

没有答案