'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', '.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(); product.find('.product-item-overlay__price').html(price * qty + ' '); 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', '.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', '.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(); }) }) // // header // toggleOpenX('.lang', '.lang__open', '.lang__list', '.lang__content', false); // toggleHeader('#pc-menu','.header__menu-block','.header__pc-menu', '.white', 'white'); // toggleHeader('#phone-menu','.header__menu-block','.header__phone-menu', '.white', 'white'); // // header // // modal // modalOpen('.button--filter', '.modal__filter'); // modalOpen('.basket-open', '.modal__basket'); // modalOpen('.login-open', '.modal__login'); // modalOpen('.open-to-know', '.modal__to-know'); // modalClose('.modal__close'); // modalClose('.modal-form-sub__close'); // let modalWindow = document.querySelector('.modal'); // Изменено с modal на modalWindow // modalWindow.onclick = function (event) { // let target = event.target; // if (target.classList.contains('modal')) { // let aside = target.querySelector('.modal__aside'), // modalItem = target.querySelector('.modal__item.active'); // aside.style.width = '0px'; // setTimeout(() => { // modalItem.style.cssText = ''; // modalItem.classList.remove('active'); // target.classList.remove('active'); // }, 300); // } // } // // modal // // toggle // toggleOpenX('.toggle', '.toggle__title', '.toggle__content', '.toggle__block-content', true); // // toggle // // radio-button // let radioButtons = document.querySelectorAll('.radio-button'); // radioButtons.forEach(radioBlock => { // let buttons = radioBlock.querySelectorAll('.button'); // buttons.forEach(button => { // let input = radioBlock.querySelector('.radio-button__input'); // button.onclick = function (e) { // e.preventDefault(); // buttons.forEach(thisButton => { // if (thisButton.classList.contains('active')) { // thisButton.classList.remove('active') // } // }) // let text = button.textContent.trim(); // button.classList.toggle('active'); // input.value = text; // } // }) // }) // // radio-button // let products = document.querySelectorAll('.product__item'); // products.forEach(productItem => { // let button = productItem.querySelector('.open-overlay'), // overlay = productItem.querySelector('.product-item__overlay'); // if (button) { // button.onclick = function (e) { // document.querySelectorAll('.product__item').forEach(e => { // if (e.classList.contains('active')) { // e.classList.remove('active'); // } // }); // document.querySelectorAll('.product-item__overlay').forEach(e => { // if (e.classList.contains('active')) { // e.classList.remove('active'); // } // }); // productItem.classList.toggle('active'); // overlay.classList.toggle('active'); // } // } // }) // // select // // toggleOpenX('.select', '.select__state' , '.state__content', '.state__block', true); // // let selects = document.querySelectorAll('.select'); // // selects.forEach(select => { // // let state = select.querySelector('.select__state'), // // content = select.querySelector('.state__block'), // // buttons = select.querySelectorAll('.state__button'); // // buttons.forEach(e => { // // let button = e; // // e.onclick = function (event) { // // event.preventDefault(); // // buttons.forEach(element => { // // if (element.classList.contains('active')) { // // element.classList.remove('active'); // // } // // }) // // let text = e.textContent.trim(); // // state.value = text; // // button.classList.add('active'); // // content.style.height = 0; // // select.classList.remove('active'); // // } // // }) // // }) // // select // // counter // // let counters = document.querySelectorAll('.counter'); // // counters.forEach(e => { // // let minus = e.querySelector('.minus'), // // plus = e.querySelector('.plus'), // // input = e.querySelector('.counter__input'); // // minus.onclick = function (e) { // // e.preventDefault(); // // let number = input.value; // // if (number >= 2){ // // input.value = Number(number) - 1; // // } // // } // // plus.onclick = function (e) { // // e.preventDefault(); // // let number = input.value; // // if (number <= 99) { // // input.value = Number(number) + 1; // // } // // } // // }) // // counter // // checkbox // let checkbox = document.querySelectorAll('.checkbox'); // checkbox.forEach(e => { // e.onclick = function (event) { // let input = e.querySelector('.checkbox__input'); // if (!e.classList.contains('active')) { // input.checked = 1; // }else{ // input.checked = 0; // } // e.classList.toggle('active'); // } // }) // // checkbox // // function modalOpen(buttonElement, contentElement) { // // let modal = document.querySelector('.modal'), // // aside = document.querySelector('.modal__aside'), // // elements = document.querySelectorAll(buttonElement), // // body = document.querySelector('body'); // // elements.forEach(e => { // // let thisContentElement = document.querySelector(contentElement); // // e.onclick = function () { // // body.classList.add('overflow-hidden'); // // modal.classList.add('active'); // // thisContentElement.classList.add('active'); // // // Set width and position based on screen size // // const isMobile = window.matchMedia("(max-width: 768px)").matches; // // aside.style.width = isMobile ? '80vw' : '20vw'; // // aside.style.right = '0'; // // }; // // }); // // } // // function modalClose(buttonElement) { // // let modal = document.querySelector('.modal'), // // aside = document.querySelector('.modal__aside'), // // asideItems = document.querySelectorAll('.modal__item'), // // elements = document.querySelectorAll(buttonElement), // // body = document.querySelector('body'); // // elements.forEach(e => { // // e.onclick = function () { // // body.classList.remove('overflow-hidden'); // // aside.style.width = '0px'; // // asideItems.forEach(e => { // // if (e.classList.contains('active')) { // // e.style.filter = 'blur(10px)'; // // } // // }); // // setTimeout(() => { // // asideItems.forEach(e => { // // if (e.classList.contains('active')) { // // e.classList.remove('active'); // // } // // }); // // modal.classList.remove('active'); // // }, 300); // // } // // }) // // } // function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) { // let elements = document.querySelectorAll(mainElement); // elements.forEach(e => { // let thisMainElement = e, // thisButtonElement = e.querySelector(buttonElement), // thisHeightElement = e.querySelector(heightElement), // thisContentElement = e.querySelector(contentElement); // thisButtonElement.onclick = function (e) { // let height = thisHeightElement.clientHeight; // if (close == true && !thisMainElement.classList.contains('active')) { // elements.forEach(e => { // if (e.classList.contains('active')) { // e.classList.remove('active'); // e.querySelector(contentElement).style.height = null // } // }) // } // if (!thisMainElement.classList.contains('active')) { // thisContentElement.style.height = `${height}px`; // thisMainElement.classList.add('active'); // }else{ // thisContentElement.style.height = null; // thisMainElement.classList.remove('active'); // } // } // }); // } // function toggleHeader(button, content, blockheight, removeBlock, removeClass) { // let thisButton = document.querySelector(button), // thisContent = document.querySelector(content), // thisRemoveBlock = document.querySelector(removeBlock) || '', // thisBlockheight = document.querySelector(blockheight); // thisButton.onclick = function () { // let height = thisBlockheight.clientHeight; // if (!thisContent.classList .contains('open')) { // thisContent.style.height = `${height}px`; // thisContent.classList .add('open'); // if (removeBlock) { // thisRemoveBlock.classList.remove(removeClass); // } // }else{ // thisContent.style.height = null; // thisContent.classList .remove('open'); // if (removeBlock) { // if (window.scrollY <= 25) { // thisRemoveBlock.classList.add(removeClass); // } // } // } // } // } // // function // // resize // window.addEventListener('resize', (e) => { // let width = window.screen.width; // // media // modalOpen('.button--filter', '.modal__filter'); // modalOpen('.basket-open', '.modal__basket'); // modalOpen('.open-to-know', '.modal__to-know'); // modalClose('.modal__close'); // let modalItem = document.querySelectorAll('.modal__item'); // // if (width <= 720) { // modalItem.forEach(modal => { // if (modal.classList.contains('active')) { // let aside = document.querySelector('.modal__aside'); // if (width <= 720) { // aside.style.width = `${width}px` // }else{ // let openAside = document.querySelector('.modal__item.active'), // newWidth = openAside.clientWidth; // aside.style.width = `${newWidth}px` // } // } // }) // // } // }); // // resize // // scroll // if (document.querySelector('.header').classList.contains('white')) { // window.addEventListener("scroll", function (e) { // let header = document.querySelector('.header'); // let scroll = window.scrollY; // if (scroll >= 25) { // header.classList.remove('white') // }else{ // header.classList.add('white') // } // }); // } // // scroll