Обновление счетчика корзины не работает на главной странице - PullRequest
0 голосов
/ 17 марта 2020

Я создаю веб-сайт, где пользователи могут добавить товар в корзину (используя ajax) с домашней страницы. Я использую JS функцию для этого, и она работает. Кроме того, у меня есть функция, которая обновляет пользовательский счетчик корзины из заголовка.

Если я на странице магазина или корзины, фрагменты woocommerce работают отлично, обновляя мой пользовательский счетчик корзины. Но когда я на главной странице, счетчик корзины просто обновляется, если я обновлю sh любую другую страницу.

Я попытался вызвать событие фрагментов после запуска события 'Added_to_cart', как вы можете видеть ниже , но это не сработало.

Javascript Функция, которая вызывает событие 'Added_to_cart' на домашней странице

$('.homepage_add_to_cart_button').on('click', function(e) { 
  e.preventDefault();
  $thisbutton = $(this);
  id = $(this).val();
  addToCart(id);
  return false;
});

function addToCart(p_id) {
  var data = {
    action: 'ql_woocommerce_ajax_add_to_cart',
    product_id: p_id,
  };
  $.ajax({
    type: 'post',
    url: '?add-to-cart='+p_id,
    data: data,
    beforeSend: function (response) {
      $thisbutton.removeClass('added').addClass('loading');
    },
    complete: function (response) {
      $thisbutton.addClass('added').removeClass('loading');
    }, 
    success: function (response) { 
      if (response.error & response.product_url) {
        window.location = response.product_url;
        return;
      } else { 
        $(document.body).trigger('added_to_cart', [response.fragments, response.cart_hash, $thisbutton]);
        $(document.body).trigger('wc_fragment_refresh');
      }
    },
  });
}

I ' используя этот код для функций. php фрагментов woocommerce, чтобы обновить счетчик пользовательских корзин, который у меня есть в заголовке.

function holistic_refresh_cart_count($fragments) {
    ob_start();
    ?>
    <span class="header-cart-count">
        <?php echo WC()->cart->get_cart_contents_count(); ?>
    </span>
    <?php
    $fragments['.header-cart-count'] = ob_get_clean();
    return $fragments;
}
add_filter( 'woocommerce_add_to_cart_fragments', 'holistic_refresh_cart_count');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...