我在微型购物车模板中添加了一种送货方式选择器,允许用户在侧边栏购物车中选择一种送货方式。
选择一种送货方式时,我使用以下服务器端脚本来保存更改:
$chosenMethod = filter_var($_POST['shipping_method'], FILTER_SANITIZE_STRING);
WC()->session->set('chosen_shipping_methods', array( $chosenMethod ) );
然后,我使用以下javascript更新迷你购物车视图:
function refreshCartContents() {
var url = woocommerce_params.wc_ajax_url;
url = url.replace("%%endpoint%%", "get_refreshed_fragments");
jQuery.post(url, function (data, status) {
jQuery(".woocommerce.widget_shopping_cart").html(data.fragments["div.widget_shopping_cart_content"]);
if (data.fragments) {
jQuery.each(data.fragments, function (key, value) {
jQuery(key).replaceWith(value);
});
}
jQuery("body").trigger("wc_fragments_refreshed");
});
}
这可以正常工作,并且在更改时显示正确的运输方式。但是,当我更新页面时,会显示旧版本的微型购物车,直到将另一种产品添加到购物车中为止-它似乎已被碎片缓存。
切换运输方式后,如何刷新迷你购物车的浏览器缓存版本?