Добавить товары в корзину без загрузки и перенаправления - PullRequest
0 голосов
/ 13 мая 2019

Я использую плагин быстрого просмотра (https://es.wordpress.org/plugins/woocommerce-lightbox/)) и ищу способ добавления товаров в корзину без перенаправления или отображения значка загрузки при добавлении продуктов в корзину в режиме быстрого просмотра. Вна следующем веб-сайте он работает над продуктом варианта на странице магазина: http://dev -ak.com / woocommerce-dev / temp / shop / Но я также хотел бы, чтобы он работал для простых продуктов вмое окно быстрого просмотра.

Я знаю, как изменить ссылку перенаправления, чтобы перейти обратно на страницу магазина, но это не то, что я ищу, это должно быть без перезагрузки. Я также пробовал код, которыйудаляет перенаправление после добавления товара в корзину, но это не сработало.

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

/**
 * Customise variable add to cart button for loop.
 *
 * Remove qty selector and simplify.
 */
  function iconic_loop_variation_add_to_cart_button()
{
    global $product;

    ?>
    <div class="woocommerce-variation-add-to-cart variations_button">
        <button   type="submit" class="custom_add_to_cart single_add_to_cart_button button"><?php echo esc_html($product->single_add_to_cart_text()); ?></button>
        <input type="hidden" name="add-to-cart" value="<?php echo absint($product->get_id()); ?>" />
        <input type="hidden" name="product_id" value="<?php echo absint($product->get_id()); ?>" />
        <input type="hidden" name="variation_id" class="variation_id" value="0" />
    </div>
    <?php
}

Ajax-код:

 jQuery(document).ready(function ($) {
  "use strict";

  $('.custom_add_to_cart').click(function (e) {
    e.preventDefault();
    var id = $(this).next().next().attr('value');
    var data = {
      product_id: id,
      quantity: 1
    };
    $(this).parent().addClass('loading');
                   $.post(wc_add_to_cart_params.wc_ajax_url.toString().replace('%%endpoint     %%', 'add_to_cart'), data, function (response) {

      if (!response) {
        return;
      }
      if (response.error) {
        alert("Custom Massage ");
        $('.custom_add_to_cart').parent().removeClass('loading');
        return;
      }
      if (response) {

        var url = woocommerce_params.wc_ajax_url;
        url = url.replace("%%endpoint%%", "get_refreshed_fragments");
        $.post(url, function (data, status) {
              $(".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");
        });
        $('.custom_add_to_cart').parent().removeClass('loading');

      }

    });

 });
});
...