我正在尝试创建一个商店页面,其中迷你购物车(产品旁边)会使用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”文本。
因此该功能正常工作,似乎已将商品添加到购物篮中,但仅在刷新页面时才替换小型购物车。
我尝试到处寻找答案,此代码是每个人告诉我的代码都可以使用的功能,但是由于某些原因,它对我不起作用。有某种我不知道的缓存吗?我想念什么吗?