Я добавил средство выбора способа доставки в шаблон мини-корзины, который позволяет пользователю выбрать способ доставки в боковой панели корзины.
При выборе способа доставки я использую следующий серверный скрипт для сохранения изменения:
$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");
});
}
Это работает безупречно и показывает правильный способ доставки после его изменения. Однако когда я обновляю страницу, старая версия мини-корзины показывается до тех пор, пока в корзину не будет добавлен другой продукт - кажется, что он кэшируется фрагментами.
Как очистить кэшированную браузером версию мини-корзины при переключении способа доставки?