Я работаю над проектом, целью которого является замена страницы / cart на сайте WordPress WooCommerce функцией «Mini Cart», включенной в WooCommerce.
Я обновил Mini Cartчтобы показать добавление продуктов и разрешить удаление продуктов, а также добавление и удаление купонов через AJAX.
Последние 2 пункта в моем списке должны обновлять количества через AJAX, когда включена "Обновленная корзина"нажата кнопка, а также отображает «уведомления» об удалении элементов, добавлении или удалении купонов или попытке создания недействительного купона.
На данный момент, однако, я не могу понять, как это сделать эффективно.
Для справки, вот фрагмент кода, который у меня есть для удаления предмета из мини-корзины.Если честно, я не уверен, что это наиболее эффективно, но, похоже, работает.Тем не менее, он не отображает никаких уведомлений об удалении элемента (тогда как на стандартной странице / странице корзины это отображается, хотя я знаю, что для этого не используется этот же код).
(function ($) {
jQuery(document).on('click', '#slide-out-mini-cart .slide-out-remove', function (e) {
var $thisbutton = $(this),
$form = $thisbutton.closest('form.woocommerce-cart-form'),
product_id = $thisbutton.data( "product_id" ),
cart_item_key = $thisbutton.data("cart_item_key");
if (product_id) {
e.preventDefault();
var data = {
'product_id': product_id,
'cart_item_key': cart_item_key
};
jQuery(document.body).trigger('remove_from_cart', [$thisbutton, data]);
$.ajax({
type: 'POST',
url: woocommerce_params.wc_ajax_url.toString().replace('%%endpoint%%', 'remove_from_cart'),
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;
}
jQuery(document.body).trigger('removed_from_cart', [response.fragments, response.cart_hash, $thisbutton]);
},
});
return false;
}
});
})(jQuery);
Я понимаю,это довольно широкий набор вопросов, но на данный момент мне интересно:
- Это самый эффективный способ выполнить эти действия?
- Как я могуполучить "уведомления", чтобы показать?
- Есть ли подобный скрипт, который я могу использовать для обновления количества мини-корзин через AJAX?
Рад предоставить больше деталей, но, честно говоря, не 'Я не знаю, с чего начать, поэтому оставлю это здесь.Спасибо!