Обновите мини-корзину woocommerce без добавления нового продукта - PullRequest
0 голосов
/ 20 марта 2019

Я добавил средство выбора способа доставки в шаблон мини-корзины, который позволяет пользователю выбрать способ доставки в боковой панели корзины.

При выборе способа доставки я использую следующий серверный скрипт для сохранения изменения:

$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");
  });
}

Это работает безупречно и показывает правильный способ доставки после его изменения. Однако когда я обновляю страницу, старая версия мини-корзины показывается до тех пор, пока в корзину не будет добавлен другой продукт - кажется, что он кэшируется фрагментами.

Как очистить кэшированную браузером версию мини-корзины при переключении способа доставки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...