Я использую плагин быстрого просмотра (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');
}
});
});
});