'use strict'; jQuery(document).ready(function ($) { // OVERLAY $('.product__main').on('click', '.open-overlay', function () { let product = $(this).closest('.product__item'), overlay = product.find('.product-item__overlay'); $('.product__item').find('.product-item__overlay').css('top', '100%'); overlay.css('top', 0); }) // END OVERLAY $('.product__main').on('click', '.counter__button', function(evt) { evt.preventDefault(); let product = $(this).closest('.product__item'); let priceElement = product.find('.select__state'); let price = parseFloat(priceElement.data('product_price')); let qty = product.find('.counter__input'); // Если цена не найдена, пытаемся взять её из .product-item__price if (!price || isNaN(price)) { let priceText = product.find('.product-item__price p').text(); price = parseFloat(priceText.replace(/[^0-9\.,]/g, '').replace(',', '.')); } // Обновляем количество if ($(this).hasClass('minus') && parseInt(qty.val()) >= 2) { qty.val(parseInt(qty.val()) - 1); } else if ($(this).hasClass('plus')) { qty.val(parseInt(qty.val()) + 1); } // Обновляем атрибут data-quantity для кнопки "Добавить в корзину" product.find('.product-item-overlay__button a').attr('data-quantity', qty.val()); // Обновляем цену без символа валюты (он добавляется через ::after) console.log(price * qty.val()) product.find('.product-item-overlay__price').html((price * qty.val())); }); $('.product__main').on('click', '.state__button', function(evt) { evt.preventDefault(); let product = $(this).closest('.product__item'); let price = $(this).data('product_price'); let id = $(this).data('product_id'); let qty = product.find('.counter__input').val(); console.log('qty', price * qty) window.t = product.find('.product-item-overlay__price') console.log(t) var new_price = price * Number(qty) product.find('.product-item-overlay__price').html(new_price + ' '); product.find('.select__state').data('product_price', price).data('product_id', id).val($(this).text().trim()); product.find('.state__block').removeClass('expanded').css('height', '0'); product.find('.add_to_cart_button').detach(); product.find('.product-item-overlay__button').prepend('Добавить в корзину'); }) $('.product__main').on('click', '.select__state', function(evt) { evt.preventDefault(); let product = $(this).closest('.product__item'), listing = product.find('.state__block'); if (listing.hasClass('expanded')) { listing.removeClass('expanded').css('height', '0'); } else { listing.addClass('expanded').css('height', 'auto'); } product.find('.state__block').find('.state__button').removeClass('active'); product.find('.state__button').each(function () { if (product.find('.select__state').data('product_id') === $(this).data('product_id')) { $(this).addClass('active'); } }) }) let page = 1; jQuery('body').on('click', '#load-more-products', function(e) { e.preventDefault(); page++; let category = $(this).data('category_id'); let category_type = $(this).data('category_type'); $.ajax({ type: 'POST', url: '/wp-admin/admin-ajax.php', dataType: 'html', data: { 'action' : 'get_products', 'get_page' : page, 'get_category' : category, 'get_category_type' : category_type, }, success: function(data) { // if($('
').html(data).find('.archive__item.ended').size() > 0) $('#load-more-products').parents('.cta').remove(); // else $('#load-more-products').parents('.cta').show(); $('#load-more-products').detach(); $('.product__main').append(data); $('#load-more-products').prependTo('.product__footer'); }, error: function(data) { console.log(data); } }); }); $('.wpfMainWrapper').prepend('
'); $('.wpfMainWrapper').find('.wpfFilterWrapper').appendTo($('.wpfFilters')); $('.wpfFilterWrapper').each(function () { if ($(this).data('filter-type') === 'wpfPrice') { $(this).find('.wpfFilterContent').append('
'); $(this).find('.wpfPriceFilterRange').appendTo('.wpfExpandablePart'); $(this).find('.wpfPriceInputs').appendTo('.wpfExpandablePart'); $(this).find('.wpfCurrencySymbol').detach(); $(this).find('.wpfFilterDelimeter').detach(); } }); $('.wfpDescription').on('click', function () { $(this).closest('.wpfFilterWrapper').toggleClass('expanded').find('.wpfCheckboxHier').slideToggle(); $(this).parent().find('.wpfExpandablePart').slideToggle(); }) })