diff --git a/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js b/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js index 58ceb21..6dd6a14 100644 --- a/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js +++ b/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js @@ -389,75 +389,59 @@ 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(''); - 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('Ошибка добавления товара в корзину.'); } }); }); - + }); + +