/** * AJAX Product Filters for BeShop Theme */ jQuery(document).ready(function ($) { // Handle filter form submissions $(document).on('submit', '.beshop-products-filter form', function (e) { e.preventDefault(); var form = $(this); var formData = form.serialize(); var container = $('.woocommerce ul.products'); // Show loading indicator container.addClass('loading'); // Send AJAX request $.ajax({ url: beshop_ajax.ajax_url, type: 'POST', data: { action: 'beshop_filter_products', form_data: formData, nonce: beshop_ajax.nonce }, success: function (response) { // Update products container with new content container.html(response.products); container.removeClass('loading'); // Update pagination $('.woocommerce-pagination').html(response.pagination); // Update browser history if (response.url) { history.pushState(null, '', response.url); } }, error: function () { container.removeClass('loading'); alert('Error filtering products.'); } }); }); // Add loading indicator styles $('head').append(''); });