Task 6809 | правки каталога AE исправил добавление подписочных товаров в корзину

pull/36/head
Your Name 2 months ago
parent 2f70bc5a50
commit e00a96eaa7
  1. 80
      wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js

@ -389,68 +389,50 @@ jQuery(document).ready(function($) {
}
});
$('.detail form.cart').on('submit', function(e) {
e.preventDefault();
var $form = $(this);
product_id = $form.find('button[name=add-to-cart]').val(),
quantity = $form.find('input.qty').val() || 1;
console.log(product_id);
$.ajax({
url: wc_add_to_cart_params.ajax_url,
type: 'POST',
data: {
action: 'woocommerce_ajax_add_to_cart',
product_id: product_id,
quantity: quantity,
},
success: function(response) {
if (response.error && response.product_url) {
window.location = response.product_url;
return;
}
$('body').on('submit', 'form.cart', function(e) {
e.preventDefault();
updateCartFragment();
updateNotices();
openBasketOnFirstAdd();
},
error: function(xhr) {
console.log('AJAX Error:', xhr.responseText);
alert('Ошибка добавления товара.');
}
});
});
});
const $form = $(this);
const $button = $form.find('button[type="submit"]');
const product_id = $form.find('[name="add-to-cart"]').val();
const quantity = $form.find('input.qty').val() || 1;
const formData = new FormData($form[0]);
jQuery(function($){
$('form.cart').on('submit', function(e){
e.preventDefault();
// Явно добавим обязательные поля
formData.append('action', 'woocommerce_ajax_add_to_cart');
formData.append('product_id', product_id);
formData.append('quantity', quantity);
var $form = $(this);
var $button = $form.find('button[type="submit"]');
// Spinner/Loading
$button.addClass('loading');
const originalText = $button.html();
$button.html('<span class="spinner" style="width:20px;height:20px;display:inline-block;"><svg width="20" height="20" viewBox="0 0 50 50"><circle cx="25" cy="25" r="20" fill="none" stroke="#ffffff" stroke-width="5" stroke-linecap="round" stroke-dasharray="31.415, 31.415" transform="rotate(72.3246 25 25)"><animateTransform attributeName="transform" type="rotate" from="0 25 25" to="360 25 25" dur="0.7s" repeatCount="indefinite"/></circle></svg></span>');
var product_id = $button.val();
var quantity = $form.find('input.qty').val() || 1;
$.ajax({
type: 'POST',
url: wc_add_to_cart_params.ajax_url,
data: {
action: 'woocommerce_ajax_add_to_cart',
product_id: product_id,
quantity: quantity,
},
beforeSend: function() {
$button.addClass('loading');
},
data: formData,
contentType: false,
processData: false,
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, $button]);
updateCartFragment();
updateNotices();
openBasketOnFirstAdd();
}
$(document.body).trigger('added_to_cart', [response.fragments, response.cart_hash, $button]);
},
complete: function() {
$button.removeClass('loading');
$button.html(originalText);
},
error: function(xhr) {
console.error('AJAX Error:', xhr.responseText);
alert('Ошибка добавления товара в корзину.');
}
});
});
@ -461,3 +443,5 @@ jQuery(function($){

Loading…
Cancel
Save