diff --git a/wp-content/themes/cosmopet/modules/blog/components/editorial/assets/css/style.css b/wp-content/themes/cosmopet/modules/blog/components/editorial/assets/css/style.css new file mode 100644 index 0000000..f3b59dc --- /dev/null +++ b/wp-content/themes/cosmopet/modules/blog/components/editorial/assets/css/style.css @@ -0,0 +1,200 @@ +/* Editorial */ +.editorial { + padding-bottom: 68px; +} + +.editorial-head { + position: relative; + z-index: 1; + max-width: 841px; + margin-bottom: 37px; +} + +.editorial-head__title { + font-size: 82px; + line-height: 96px; + font-weight: bold; + color: var(--main_white); + text-transform: uppercase; +} + +.editorial-head__img { + position: absolute; + z-index: -1; + top: -14px; + right: -20px; + width: 221px; +} + +.editorial-head__star { + position: absolute; + top: 8.26px; + right: -13.5px; + transform: translateX(100%); + width: 87.5px; +} + +.editorial-card__wrap { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 31px 25px; + position: relative; + z-index: 1; +} + +.editorial-card { + border: 2px solid var(--creme-white); + border-radius: 30px; + display: flex; + align-items: stretch; + overflow: hidden; + background: var(--linear); + backdrop-filter: blur(28px); +} + +.editorial-card .main-img { + min-height: 282px; + width: 207px; + border-radius: 29px; + overflow: hidden; + flex-shrink: 0; +} + +.editorial-card:hover .main-img img{ + width: 120%; + height: 120%; +} + +.editorial-card .main-img img { + width: 100%; + height: 100%; + object-fit: cover; + transition: all .5s; +} + +.editorial-card__content { + padding: 42px 19px 19px 35px; +} + +.editorial-card__content-alerts { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 7px; + margin-bottom: 17px; +} + +.editorial-card__content-alerts a { + background: var(--main_black); + border-radius: 16px; + padding: 6px 8px; + font-size: 16px; + font-weight: 500; + line-height: 20px; + color: var(--background); +} + +.editorial-card__content-title { + font-size: 28px; + font-weight: bold; + line-height: 32px; + color: var(--grey-black); + text-transform: uppercase; + margin-bottom: 17px; +} + +.editorial-card__content-data { + display: flex; + flex-wrap: wrap; + gap: 5px 16px; + color: var(--interface_hover); + font-size: 16px; + font-weight: 500; + line-height: 20px; +} + +.editorial-card__content-data ul { + display: flex; + align-items: center; + gap: 16px; +} + +.editorial-card__content-data li { + display: flex; + align-items: center; + gap: 5px; +} + +.editorial-card__content-data .logo img { + width: 24px; + height: 24px; + border-radius: 50%; + object-fit: cover; +} +/* Editorial end */ + +@media (max-width: 1200px) { + .editorial-card__wrap { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } +} + +@media (max-width: 992px) { + .editorial { + padding-bottom: 36px; + } + + .editorial-head { + margin-bottom: 36px; + max-width: 313px; + } + + .editorial-head__title { + font-size: 32px; + line-height: 38px; + } + + .editorial-head__img { + width: 100px; + top: -14px; + right: -22.5px; + } + + .editorial-head__star { + display: none; + } +} + +@media (max-width: 576px) { + .editorial-card { + flex-direction: column; + border-radius: 30px; + position: relative; + } + + .editorial-card .main-img { + width: 100%; + height: 203px; + } + + .editorial-card__content { + padding: 17px 13px 24px; + } + + .editorial-card__content-alerts { + position: absolute; + top: 13px; + left: 8px; + width: calc(100% - 16px); + } + + .editorial-card__content-title { + font-size: 20px; + line-height: 24px; + margin-bottom: 17px; + } + + .editorial-card__content-data { + gap: 5px 16px; + } +} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/footer/assets/js/footer.js b/wp-content/themes/cosmopet/modules/footer/assets/js/footer.js new file mode 100644 index 0000000..bdd6ea3 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/footer/assets/js/footer.js @@ -0,0 +1,957 @@ +'use strict'; + +(function ($) { + const metaLocale = document.querySelector('meta[property="og:locale"]'); + const localeValue = metaLocale.getAttribute('content'); + function wc_cart_summary_upd(){ + let total = 0 + $('.cart_item').each(function(){ + total += Number($(this).data('cost')) + }) + return total + } + $('[data-pname]').on('click', function(){ + $('#sub_product_name').val($(this).data('pname')) + }) + + $(document).on('submit', '.product-item__form, .detail-block__form', function (e) { + e.preventDefault(); + var $form = $(this) + var product_qty = $form.find('input[name=quantity]').val() || 1 + var product_id = $form.find('input[name=product_id]').val() + var variation_id = $form.find('input[name=variation_id]').val() || 0; + var title = $(this).data('name') + var data = { + action: 'woocommerce_ajax_add_to_cart', + product_id: product_id, + product_sku: '', + quantity: product_qty, + variation_id: variation_id, + }; + dataLayer.push({ + "ecommerce": { + "currencyCode": "RUB", + "add": { + "products": [ + { + "id": product_id, + "name": title, + "quantity": product_qty, + } + ] + } + } + }); + // $(document.body).trigger('adding_to_cart', [$thisbutton, data]); + + $.ajax({ + type: 'post', + url: woocommerce_params.ajax_url, + data: data, + beforeSend: function (response) { + $form.find('.detail-block-form__submit, .store-add-to-cart').addClass('loading').attr('disabled', true) + }, + complete: function (response) { + $form.find('.detail-block-form__submit, .store-add-to-cart').removeClass('loading').attr('disabled', false) + }, + success: function (response) { + $('.modal__item.modal__basket').html(response['cart']); + if(response['cart_count'] > 0){ + $('.mini-profile__button--counter').removeClass('disabled').html(response['cart_count']) + } + else{ + $('.mini-profile__button--counter').addClass('disabled').html(response['cart_count']) + } + initCounters(); + let modalF = document.querySelector('.modal'), + aside = document.querySelector('.modal__aside'), + device = window.screen.width; + + if(!$.cookie('gp-cosmopet-cartadd')){ + modalF.classList.add('active'); + $('.modal__basket').addClass('active'); + let thisContentElement = document.querySelector('.modal__basket'); + + let width = thisContentElement.clientWidth; + setTimeout(() => { + if (device <= 720) { + aside.style.width = `${device}px`; + thisContentElement.style.opacity = 1; + thisContentElement.style.filter = 'blur(0px)'; + }else{ + aside.style.width = `${width}px`; + thisContentElement.style.opacity = 1; + thisContentElement.style.filter = 'blur(0px)'; + } + }, 10); + + $.cookie('gp-cosmopet-cartadd', 'true', { expires: 2 }); + } + modalClose('.modal__close'); + }, + }); + + return false; + }); + + $(document).on('submit', '.modal__form-sub', function (e) { + e.preventDefault(); + var email = $(this).find('input[name="email"]').val() + var data = $(this).serialize() + $.ajax({ + type: 'post', + url: woocommerce_params.ajax_url, + data: data, + beforeSend: function (response) { + // $thisbutton.removeClass('added').addClass('loading'); + }, + complete: function (response) { + // $thisbutton.addClass('added').removeClass('loading'); + }, + success: function (response) { + $('.modal__to-know').removeClass('active') + $('#sub-result-email').html(email) + $('.modal__to-know-submit').addClass('active').css('filter', 'blur(0px)') + }, + }); + }); + + $(document).on('submit', '.form--contact', function (e) { + e.preventDefault(); + var form = this; + var data = $(this).serialize() + $.ajax({ + type: 'post', + url: woocommerce_params.ajax_url, + data: data, + beforeSend: function (response) { + // $thisbutton.removeClass('added').addClass('loading'); + }, + complete: function (response) { + // $thisbutton.addClass('added').removeClass('loading'); + }, + success: function (response) { + $(form).addClass('submited') + }, + }); + }); + + $('body').on('click', '.modal-basket__item .counter__button', function(){ + var input = $(this).closest('.counter').find('.counter__input').val() + var price = $(this).closest('.modal-basket-item__control').find('.modal-basket-item__price') + var productID = $(this).data('id') + var pr = $(this).closest('.modal-basket__item').find('.modal-basket__item-before').data('pr') + $(price).html(Number(input) * $(price).data('basecost')) + $(this).closest('.modal-basket__item').data('cost', Number(price.html())) + $('#cart_total').html(wc_cart_summary_upd()) + var title = $(this).closest('.cart_item').find('.modal-basket-item__title').html() + if ($(this).hasClass('minus')){ + $(this).attr('data-value', Number( $(this).attr('data-value')) - 1) + + if(Number($(this).attr('data-value')) == 0){ + $(this).closest('.modal-basket__item').find('.modal-basket__item-before').click() + } + dataLayer.push({ + "ecommerce": { + "currencyCode": "RUB", + "remove": { + "products": [ + { + "id": pr, + "name": title, + "quantity": 1, + } + ] + } + } + }); + } + else{ + var min = $(this).closest('.counter--small').find('.minus') + $(min).attr('data-value', Number($(min).attr('data-value')) + 1) + dataLayer.push({ + "ecommerce": { + "currencyCode": "RUB", + "add": { + "products": [ + { + "id": pr, + "name": title, + "quantity": 1, + } + ] + } + } + }); + } + // if ($(this).hasClass('minus') && Number(input) == 1){ + // $(this).closest('.modal-basket__item').find('.modal-basket__item-before').click() + // } + var data = { + action: 'get_cartprice', + quantity: input, + product: productID + }; + $.ajax({ + type: 'post', + url: '/wp-admin/admin-ajax.php', + data: data, + beforeSend: function (response) { + // $thisbutton.removeClass('added').addClass('loading'); + }, + complete: function (response) { + // $thisbutton.addClass('added').removeClass('loading'); + }, + success: function (response) { + if (response.error) { + + } else { +// $('#cart_total').html(response) + initCounters() + if(response['cart_count'] > 0){ + $('.mini-profile__button--counter').removeClass('disabled').html(response['cart_count']) + } + else{ + $('.mini-profile__button--counter').addClass('disabled').html(response['cart_count']) + } + } + }, + }); + }) + + $('body').on('click', '.product-item-overlay__field .counter__button', function(){ + var input = $(this).closest('.counter').find('.counter__input').val() + var price = $(this).closest('.product-item__form').find('.product-item-overlay__price') + + + $(price).html(Number(input) * $(price).data('basecost')) + }) + + $('body').on('click', '.modal-basket__item-before', function(){ + var key = $(this).data('id') + var p_ID = $(this).data('pr'); + var var_ID = $(this).data('var'); + var quantity = $(this).closest('.modal-basket__item').find('.counter__input').val() + var layout = ` + + + + ` + if(localeValue == 'en_US'){ + var layout = ` + + + + ` + } + + var old_html = $(this).closest('.modal-basket__item').html() + $(this).closest('.modal-basket__item').addClass('.modal-basket__item--return').html(layout) + var title = $(this).closest('.cart_item').find('.modal-basket-item__title').html() + + + var timerVal = 5; + + var interval = setInterval(function(){ + timerVal -= 1; + if (timerVal > 0){ + $(`#${key}_timer`).html(timerVal) + } + else{ + + dataLayer.push({ + "ecommerce": { + "currencyCode": "RUB", + "remove": { + "products": [ + { + "id": p_ID, + "name": title, + "quantity": quantity, + } + ] + } + } + }); + var input = 0; + var productID = key; + + var data = { + action: 'get_cartprice', + quantity: input, + product: productID + }; + $.ajax({ + type: 'post', + url: '/wp-admin/admin-ajax.php', + data: data, + beforeSend: function (response) { + // $thisbutton.removeClass('added').addClass('loading'); + }, + complete: function (response) { + // $thisbutton.addClass('added').removeClass('loading'); + }, + success: function (response) { + + if(response['cart_count'] > 0){ + $('.mini-profile__button--counter').removeClass('disabled').html(response['cart_count']) + } + else{ + $('.mini-profile__button--counter').addClass('disabled').html(response['cart_count']) + } + }, + }); + $(`#${key}_timer`).closest('.modal-basket__item').remove() + if (Number(wc_cart_summary_upd()) > 0){ + $('#cart_total').html(wc_cart_summary_upd()) + } + else{ + var tmpl = ` + + ` + + if(localeValue == 'en_US'){ + var tmpl = ` + + ` + } + $('.modal__basket').html(tmpl) + } + clearInterval(interval); + } + }, 1000) + + + + + $(`#${key}_return`).one('click', function(){ + $(this).closest('.modal-basket__item').removeClass('.modal-basket__item--return').html(old_html) + clearInterval(interval); + }) + }) + + $('body').on('click', '.state__button', function(){ + var s = $(this).closest('.select') + var id = $(this).data('id') + var bc = $(this).data('bc') + + var form = $(this).closest('.product-item__form') + + $(form).find('input[name="variation_id"]').val(id) + $(form).find('.counter__input').data('maxcount', $(this).data('stock')).attr('data-maxcount', $(this).data('stock')) + if (Number($(form).find('.counter__input').val()) > Number($(form).find('.counter__input').data('maxcount'))){ + $(form).find('.counter__input').val($(form).find('.counter__input').data('maxcount')) + } + var input = $(form).find('.counter__input').val() + $(form).find('.product-item-overlay__price').data('basecost', bc).html(Number(bc) * Number(input)) + }) + + $('body').on('click', '.btn-load-ajax', function(){ + var page = Number($(this).data('page')) + 1 + var maxpage = Number($(this).data('maxpage')) + var data = { + ajax_load: 'ajax', + }; + var btn = this + var baseUrl = jQuery(location).attr('origin') + jQuery(location).attr('pathname') + baseUrl += 'page/' + page + '/' + var searchUrl = baseUrl + if (jQuery(location).attr('search')){ + searchUrl += jQuery(location).attr('search') + '&ajax_search=ajax' + } + else{ + searchUrl += '?ajax_search=ajax' + } + $.ajax({ + type: 'get', + url: searchUrl, + data: data, + beforeSend: function (response) { + $(btn).attr('disabled', true) + $(btn).attr('data-page', page) + $(btn).data('page', page) + }, + complete: function (response) { + if (page >= maxpage){ + $(btn).remove() + } + else{ + $(btn).attr('disabled', false) + } + }, + success: function (response) { + $('.products').append(response) + initCounters() + initOverlay() + initSelect() + modalOpen('.open-to-know', '.modal__to-know'); + + /// РЕШЕНИЕ ДЛЯ СТЕНДА AJAX ДЛЯ ПОДГРУЗКИ AJAX + document.querySelectorAll('img').forEach(img => { + var str = img.attributes['src'].value.replace('https://cosmopet.good-production.xyz/', 'https://cosmopet.shop/') + checkImage(str, function(){ img.attributes['src'].value = str }); + if (img.attributes['srcset']){ + img.attributes['srcset'].value = img.attributes['srcset'].value.replace('cosmopet.good-production.xyz', '') + } + }) + // + }, + }); + }) + + // $('body').on('click', '.singular-w-btn', function(){ + // var wg = $(this).data('wg') + // var id = $(this).data('id') + // $('#variation_id').val(id) + // $('.detail__block-price').hide() + // $('.detail__block-price[data-wg="' + wg + '"]').show() + // if ($(this).data('available')){ + // $('.detail-block-form__item--tn').hide() + // $('.detail-block-form__item--add').show() + // } + // else{ + // $('.detail-block-form__item--tn').show() + // $('.detail-block-form__item--add').hide() + // } + + // }) + // асинхронный запрос при отправке формы + $( '#ajaxform' ).on( 'submit',function( event ) { + event.preventDefault(); + + const form = $(this); + + $.ajax( { + type : 'POST', + url : woocommerce_params.ajax_url, + data : form.serialize(), + beforeSend : function( xhr ) { + $('.products').addClass('loading') + form.find('.button-submit').addClass('loading').attr('disabled', true) + }, + success : function( data ) { + $( '.products' ).html( data.products ); + $('.product__tag').html(data.tags); + $( '.btn-load-ajax' ).remove() + form.find('.button-submit').removeClass('loading').attr('disabled', false) + form.find('.modal__close').click() + $('.products').removeClass('loading') + if (data.err){ + $('.product__error-button').show() + } + else{ + $('.product__error-button').hide() + } + + initCounters() + initOverlay() + initSelect() + modalOpen('.open-to-know', '.modal__to-know'); + + document.querySelectorAll('img').forEach(img => { + var str = img.attributes['src'].value.replace('https://cosmopet.good-production.xyz/', 'https://cosmopet.shop/') + checkImage(str, function(){ img.attributes['src'].value = str }); + if (img.attributes['srcset']){ + img.attributes['srcset'].value = img.attributes['srcset'].value.replace('cosmopet.good-production.xyz', '') + } + }) + } + + } ); + + } ); + + + $('body').on('click', '.product-tag__item', function(){ + $('#tax_' + $(this).data('tag')).find('input').prop('checked', false) + $('#tax_' + $(this).data('tag')).removeClass('active'); + $(this).remove() + $('#ajaxform').submit() + }) + + + // Login + $('.login_popup').on('click', function(e){ + e.preventDefault(); + $('.login_modal').addClass('active'); + }); + $('.login_close').on('click', function(){ + $('.login_modal').removeClass('active'); + }); + $('.login_back').on('click', function(){ + if($(this).is('.disabled')) { + return false; + } + $('.login_wrap .step').toggleClass('active'); + }); + $('.login_input input').on('input keyup', function(){ + $('.login_input').removeClass('error'); + }); + $('.js-get-code').on('click', function(){ + $('.login_input').removeClass('error'); + + var email = $('.js-input-email input').val(); + $('.sended_email').text(email); + + if(email === '') { + $('.js-input-email').addClass('error'); + $('.js-input-email .login_error').text(localeValue == 'en_US' ? 'Enter your email' : 'Укажите Email'); + return false; + } else { + // Проверка Email + $.ajax({ + type: 'POST', + url: '/wp-admin/admin-ajax.php', + data: {action: 'email_validate', email:email}, + success: function(data){ + if(data['status'] === 'error') { + $('.js-input-email').addClass('error'); + $('.js-input-email .login_error').text(data['text']); + return false; + } else { + $('.login_wrap .step').toggleClass('active'); + send_code(); + } + } + }); + + } + + }); + $('.js-repeat-code').on('click', function(){ + $('.login_input').removeClass('error'); + send_code(); + }); + + function send_code(){ + $('.login_timer').show(); + $('.js-repeat-code').hide(); + $('.login_back').addClass('disabled'); + // Timer + var seconds = 15; + var interval = setInterval(function() { + if (seconds > 0) { + seconds--; + $('.seconds').text(seconds); + } else { + clearInterval(interval); + $('.login_timer').hide(); + $('.js-repeat-code').show(); + $('.login_back').removeClass('disabled'); + $('.seconds').text(15); + } + }, 1000); + //Ajax отправка кода + $.ajax({ + type: 'POST', + url: '/wp-admin/admin-ajax.php', + data: {action: 'send_code', email: $('.js-input-email input').val()} + }); + } + // Проверка кода и регистрация/авторизация + $('.js-input-code input').on('input keydown keyup propertychange paste cut copy change', function(){ + var val = $(this).val(); + var email = $('.js-input-email input').val(); + if(val.length === 4) { + $.ajax({ + type: 'POST', + url: '/wp-admin/admin-ajax.php', + data: {action: 'check_code', code: val, email: email}, + success: function(data){ + console.log(data); + if(data['status'] == 'success_reg') { + $('.login_forms').addClass('hide'); + $('.login_success').removeClass('hide'); + if (typeof wc_checkout_params !== 'undefined') { + location.reload() + } + } + if(data['status'] == 'success_auth') { + $('.login_forms').addClass('hide'); + $('.login_auth').removeClass('hide'); + if (typeof wc_checkout_params !== 'undefined') { + location.reload() + } + } + if(data['status'] == 'error') { + $('.js-input-code').addClass('error'); + $('.js-input-code .login_error').text(data['text']); + } + } + }); + } + }); + + $('.email_link_form').on('submit', function(e){ + e.preventDefault(); + $('.cabinet-card_linked-email .error').remove(); + var data = $(this).serializeArray(); + $.ajax({ + type: 'POST', + url: '/wp-admin/admin-ajax.php', + data: data, + success: function(data){ + if(data['error']) { + $('.cabinet-card_linked-email').append('
'+data['error']+'
'); + } else { + location.reload(); + } + + } + }); + }); + + +})(jQuery); + +function checkImage(imageSrc, good) { + var img = new Image(); + img.onload = good; + img.src = imageSrc; +} +// 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 + + + + + +function initOverlay(){ + + // overlay +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'); + } + } + +}) +// overlay +} + +initOverlay() + + +function initSelect(){ + + +// 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 +} +initSelect() + +// counter +function initCounters(){ + 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; + input.setAttribute('value', input.value) + } + } + + plus.onclick = function (e) { + e.preventDefault(); + + let number = input.value; + let max = input.dataset.maxcount + if (number <= max - 1) { + input.value = Number(number) + 1; + input.setAttribute('value', input.value) + } + } + }) +} + +initCounters() +// 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 +function modalOpen(buttonElement, contentElement){ + let modal = document.querySelector('.modal'), + aside = document.querySelector('.modal__aside'), + elements = document.querySelectorAll(buttonElement), + device = window.screen.width; + + elements.forEach(e => { + let thisContentElement = document.querySelector(contentElement); + + e.onclick = function () { + modal.classList.add('active'); + thisContentElement.classList.add('active'); + + let width = thisContentElement.clientWidth; + + setTimeout(() => { + if (device <= 720) { + aside.style.width = `${device}px`; + thisContentElement.style.opacity = 1; + thisContentElement.style.filter = 'blur(0px)'; + }else{ + aside.style.width = `${width}px`; + thisContentElement.style.opacity = 1; + thisContentElement.style.filter = 'blur(0px)'; + } + }, 10); + } + }) +} + +function modalClose(buttonElement) { + let modal = document.querySelector('.modal'), + aside = document.querySelector('.modal__aside'), + asideItems = document.querySelectorAll('.modal__item'), + elements = document.querySelectorAll(buttonElement); + + elements.forEach(e => { + e.onclick = function () { + 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'); + } + } + + }); +} +var menu_opened = false; +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.Y <= 25) { + thisRemoveBlock.classList.add(removeClass); + } + } + } + menu_opened = !menu_opened; + } +} + + +// resize +window.addEventListener('resize', (e) => { + let width = window.screen.width; + + // media + 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 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 + +// + + +if (document.querySelector('.header').classList.contains('white')) { + window.addEventListener("scroll", function (e) { + let header = document.querySelector('.header'); + let scroll = window.scrollY; + if(!menu_opened){ + if (scroll >= 25) { + header.classList.remove('white') + }else{ + + header.classList.add('white') + + } + } + + }); +} +// scroll + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/css/profile.css b/wp-content/themes/cosmopet/modules/profile/assets/css/profile.css new file mode 100644 index 0000000..227b7b1 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/css/profile.css @@ -0,0 +1,3240 @@ +/* cabinet */ +.cabinet{ +padding: 24px; + +display: flex; +justify-content: space-between; +} +.cabinet__control{ +margin: 24px; +margin-bottom: 0; +display: none; +} +.cabinet-control__button{ +margin-left: 8px; + +padding: 12px 16px; + +font-family: var(--font-family); +font-weight: 500; +font-size: 20px; +line-height: 120%; +color: var(--text-black); + +background: var(--background-white); +border: 2px solid var(--text-black); +border-radius: 48px; + +transition: opacity .2s ease-out; +} +.cabinet-control__button:first-child{ +margin-left: 0; +} +.cabinet-control__button.active{ +background: var(--background-black); +color: #fff; +} +.cabinet-control__button:hover{ +opacity: .8; +} +.cabinet__orders{ +width: calc(((100% - 48px) / 3) * 2); +} +.cabinet__profile{ +width: calc((100% - 48px) / 3); +} + +.cabinet-card{ +margin-top: 32px; + +padding: 1px; + +border-radius: 20px; +} +.cabinet-card:first-child{ +margin-top: 0; +} +.cabinet-card--green{ +background: var(--background-green); +} +.cabinet-card--green-white{ +background: var(--background-green-white); +} +.cabinet-card--green-white .cabinet-card__content{ +background: none; +} +.cabinet-card--red-blue{ +background: var(--gradient-red); +} +.cabinet-card--grey{ +background: var(--background-9); +} +.cabinet-card__content{ +padding: 23px; + +border-radius: 19px; + +background-color: var(--background-white); +} +.cabinet-card__element{ +margin-top: 24px; + +position: relative; +} +.cabinet-card__element--margin-top-32{ +margin-top: 32px; +} +.cabinet-card__element:first-child, +.cabinet-card__element--margin-top-32:first-child{ +margin-top: 0 +} +.cabinet-card__element-change{ +position: absolute; +top: 14px; +right: 0; + +width: 24px; +aspect-ratio: 1; + +background-image: url(../img/svg/main/change-dot.svg); +border: none; +background-color: var(--background-white); + +transition: opacity .2s ease-out; +} +.cabinet-card__element-change:hover{ +opacity: .8; +} +.cabinet-card__title{ +font-family: var(--font-family); +font-weight: 700; +font-size: 26px; +line-height: 123%; +text-transform: uppercase; +background: var(--gradient-blue); +background-clip: text; +-webkit-background-clip: text; +-webkit-text-fill-color: transparent; +} +.cabinet-card__text{ +font-family: var(--font-family); +font-weight: 400; +font-size: 20px; +line-height: 120%; + +color: var(--text-black); +} +.cabinet-card__text--grey{ +color: var(--text-grey); +} +.cabinet-card__label{ +font-family: var(--font-family); +font-weight: 700; +font-size: 16px; +line-height: 125%; + +color: var(--text-3); +} +.cabinet-card__status{ +padding-left: 20px; + +font-family: var(--font-family); +font-weight: 500; +font-size: 12px; +line-height: 133%; + +position: relative; +color: #121212; +} +.cabinet-card__status--chek{ +color: var(--text-green); +} +.cabinet-card__status--chek::before{ +content: ''; + +position: absolute; +top: 0; +left: 0; + +width: 16px; +height: 16px; + +background-image: url(../img/svg/main/status-chek.svg); +object-fit: contain; +} +.cabinet-card__status--cancelled{ +color: var(--text-red); +} +.cabinet-card__status--cancelled::before{ +content: ''; + +position: absolute; +top: 0; +left: 0; + +width: 16px; +height: 16px; + +background-image: url(../img/svg/main/status-cancelled.svg); +object-fit: contain; +} +.cabinet-card__block-accounts{ +display: flex; +} +.cabinet-card__account{ +margin-left: 16px; + +width: 40px; +aspect-ratio: 1; + +display: flex; +justify-content: center; +align-items: center; + +background: var(--background-9); +border-radius: 50%; +} +.cabinet-card__account:first-child{ +margin-left: 0; +} +.cabinet-card__block-buttons{ +display: flex; +justify-content: space-between; +align-items: center; +} +.cabinet-card__button{ +padding: 8px 8px 6px 0; + +font-family: var(--font-family); +font-weight: 600; +font-size: 20px; +line-height: 120%; +color: var(--text-black); + +background: none; +border: none; + +position: relative; + +text-decoration: none; +} +.cabinet-card__button::before{ +content: ''; + +position: absolute; +bottom: 6px; + +width: calc(100% - 8px); +height: 1px; + +background: var(--text-black); + +transition: opacity .2s ease-out; +} +.cabinet-card__button:hover{ +opacity: .8; +} +.cabinet-card__confirm{ +margin-top: 16px; + +border-radius: 20px; +padding: 4px 24px; + +font-family: var(--font-family); +font-weight: 600; +font-size: 20px; +line-height: 120%; + + +background: var(--background-black); +color: #fff; +border: none; + +transition: opacity .2s ease-out; +} +.cabinet-card__confirm:hover{ +opacity: .8; +} +.cabinet-card__text, .cabinet-card__label, .cabinet-card__status, .cabinet-card__block-accounts, .cabinet-card__block-buttons{ +margin-top: 8px; +} +.cabinet-card__text:first-child, .cabinet-card__label:first-child, .cabinet-card__status:first-child, .cabinet-card__block-accounts:first-child, .cabinet-card__block-buttons:first-child{ +margin-top: 0px; +} +.cabinet-card__block-add-pets{ +width: 100%; + +display: flex; +align-items: center; + +background: none; +border: none; +} +.cabinet-card-add-pets__circle{ +width: 48px; +aspect-ratio: 1; + +display: flex; +justify-content: center; +align-items: center; + +border: 1px solid var(--text-6); +border-radius: 50%; +} +.cabinet-card-add-pets__text{ +margin-left: 16px; + +font-family: var(--font-family); +font-weight: 600; +font-size: 20px; +line-height: 120%; + +color: var(--text-6); + +position: relative; +} +.cabinet-card-add-pets__text::after{ +content: ''; + +position: absolute; +left: 0; +bottom: -4px; + +width: 100%; +height: 1px; + +background: var(--text-6); +} +.cabinet-card__discount{ +display: flex; +align-items: center; +} +.cabinet-card-discount__title{ +font-family: var(--font-family); +font-weight: 700; +font-size: 16px; +line-height: 125%; +color: var(--text-black); +} +.cabinet-card-discount__percent{ +margin-left: 16px; + +font-family: var(--font-family); +font-weight: 700; +font-size: 16px; +line-height: 125%; +color: var(--text-black); +} +.cabinet-card-discount__percent::after{ +content: '%'; +} +.cabinet-card-discount__arrow{ +display: inline-block; + +margin-left: 6px; + +width: 20px; +aspect-ratio: 1; + +background-image: url(../img/svg/main/arrow-breadcrumbs-black.svg); +background-position: center; +} +.cabinet-card__no-orders{ +margin-top: 32px; + +padding: 48px 24px; +} +.cabinet-card-no-orders__element{ +margin-top: 26px; +} +.cabinet-card-no-orders__element:first-child{ +margin-top: 0; +} +.cabinet-card-no-orders__title{ +font-family: var(--font-family); +font-weight: 500; +font-size: 24px; +line-height: 133%; +text-align: center; +color: var(--text-black); +} +.cabinet-card__pet{ +display: flex; +align-items: center; +} +.cabinet-card-pet__icon{ +width: 48px; +aspect-ratio: 1; + +border-radius: 50%; +background: var(--gradient-blue); +} +.cabinet-card-pet-icon__content{ +margin: 1px; + +width: calc(100% - 2px); +aspect-ratio: 1; + +display: flex; +justify-content: center; +align-items: center; + +border-radius: 50%; +background: var(--background-white); +} +.cabinet-card-pet-icon__content img{ +width: 32px; +aspect-ratio: 1; + +object-fit: contain; +} +.cabinet-card-pet__name{ +margin-left: 24px; + +font-family: var(--font-family); +font-weight: 700; +font-size: 16px; +line-height: 125%; +color: var(--text-black); +} +.cabinet-card__order{ +position: relative; +} +.cabinet-card-order__header{ +display: flex; +justify-content: space-between; +align-items: flex-start; +} +.cabinet-card-order__main{} +.cabinet-card-order-main__date{ +font-family: var(--font-family); +font-weight: 500; +font-size: 24px; +line-height: 133%; +color: var(--text-black); +} +.cabinet-card-order-main__number{ +margin-top: 8px; + +font-family: var(--font-family); +font-weight: 500; +font-size: 12px; +line-height: 133%; +color: var(--text-black); +} +.cabinet-card-order-main__number::before{ +content: '№'; +} +.cabinet-card-order__payment{ +display: flex; +align-items: flex-end; + +transition: margin .2s ease-out; +} +.cabinet-card-order-payment__title{ +font-family: var(--font-family); +font-weight: 500; +font-size: 12px; +line-height: 133%; +color: var(--text-black); +} +.cabinet-card-order-payment__price{ +margin-left: 8px; + +font-family: var(--font-family); +font-weight: 700; +font-size: 16px; +line-height: 125%; +color: var(--text-black); +} +.cabinet-card-order__content{ +margin-top: 24px; +} +.cabinet-card-order__content +.cabinet-card-order__status{ +display: flex; +align-items: center; +} +.cabinet-card-order-status__title{ +font-family: var(--font-family); +font-weight: 500; +font-size: 20px; +line-height: 120%; +color: var(--text-black); +} +.cabinet-card-order-status__pointer{ +margin-left: 12px; + +font-family: var(--font-family); +font-weight: 500; +font-size: 20px; +line-height: 120%; +color: var(--text-black); +} +.cabinet-card-order-status__pointer--grey{ +color: var(--text-6); +} +.cabinet-card-order-status__pointer--green{ +color: var(--text-green); +} +.cabinet-card-order-status__pointer--red{ +color: var(--text-red); +} +.cabinet-card-order__block-detail{ +height: 0; +overflow: hidden; + +transition: height .2s ease-out; +} +.cabinet-card-order__detail{ +padding-top: 24px; +} +.cabinet-card-order-detail__address{} +.cabinet-card-order-detail-address__title{ +font-family: var(--font-family); +font-weight: 500; +font-size: 20px; +line-height: 120%; +color: var(--text-black); +} +.cabinet-card-order-detail-address__text{ +margin-top: 16px; + +font-family: var(--font-family); +font-weight: 400; +font-size: 20px; +line-height: 120%; +color: var(--text-black); +} +.cabinet-card-order-detail__main{ +margin-top: 24px; + +display: flex; +justify-content: space-between; +} +.cabinet-card-order-detail-main__products{} +.cabinet-card-order-detail-main__product{ +margin-top: 4px; + +display: flex; +align-items: center; +} +.cabinet-card-order-detail-main__product:first-child{ +margin-top: 0; +} +.cabinet-card-order-detail-main-product__img{ +width: 106px; +height: 96px; +} +.cabinet-card-order-detail-main-product__content{ +display: flex; +} +.cabinet-card-order-detail-main-product__description{ +width: 212px; +} +.cabinet-card-order-detail-main-product-description__what{ +font-family: var(--font-family); +font-weight: 500; +font-size: 12px; +line-height: 133%; +color: var(--text-black); +} +.cabinet-card-order-detail-main-product-description__with-what{ +margin-top: 8px; + +font-family: var(--font-family); +font-weight: 500; +font-size: 12px; +line-height: 133%; +color: var(--text-6); +} +.cabinet-card-order-detail-main-product__count{ +margin-left: 8px; + +font-family: var(--font-family); +font-weight: 700; +font-size: 12px; +line-height: 133%; +text-align: right; +color: var(--text-6); +} +.cabinet-card-order-detail-main-product__count::before{ +margin-right: 4px; + +content: 'x'; +} +.cabinet-card-order-detail-main-product__price{ +margin-left: 16px; + +font-family: var(--font-family); +font-weight: 700; +font-size: 12px; +line-height: 133%; +text-align: right; +color: var(--text-black); +} + +.cabinet-card-order-detail-main__links{ +display: flex; +flex-direction: column; +} +.cabinet-card-order-detail-main__link{ +margin-top: 16px; +} +.cabinet-card-order-detail-main__link:first-child{ +margin-top: 0; +} +.cabinet-card-order__open-detail{ +margin-top: 24px; + +padding-right: 24px; + +font-family: var(--font-family); +font-weight: 500; +font-size: 20px; +line-height: 120%; +color: var(--text-black); + +border: none; +background: none; + +position: relative; +} +.cabinet-card-order__open-detail::after{ +content: ''; + +position: absolute; +top: 6.75px; +right: 0; + +width: 12.5px; +height: 10.5px; + +background-image: url(../../core/img/svg/main/arrow-black.svg); +background-size: contain; +background-position: center; +background-repeat: no-repeat; + +transition: transform .2s; +/* transform: rotate(180deg); */ +} +.cabinet-card-order-detail-short__item{ +object-fit: contain; +} +.cabinet-card-order__detail-short{ +display: flex; +align-items: center; +justify-content: flex-end; +max-width: calc(100% - 250px); +margin-left: auto; +overflow: auto; +/* flex-wrap: wrap; */ +transition: all .2s .1s ease-out; +} +.cabinet-card-order__bottom{ +display: flex; +align-items: flex-end; +} +@media (max-width: 768px) { +.cabinet-card-order__bottom{ + display: flex; + align-items: flex-start; + flex-direction: column-reverse; + margin-top: 16px; +} +.cabinet-card-order__detail-short{ + max-width: calc(100%); + flex-wrap: wrap; + justify-content: flex-start; + margin-left: 0; +} +} +.cabinet-card-order-detail-short__item{ +border-radius: 16px; +width: 106px; +height: 96px; +} +.cabinet-card__download{ +margin-top: 32px; +} +.cabinet-card__order.active .cabinet-card-order__detail-short{ +opacity: 0; +height: 0; +} +.cabinet-card__order.active .cabinet-card-order__open-detail::after{ +transform: rotate(180deg); +} +/* .cabinet-card-no-orders__ */ +.cabinet__subscription-pc{ +} +.cabinet__subscription-mobile{ +display: none; +} +/* cabinet */ + +.main-page-wrapper{ +margin-top: 20px !important; +} + + +.col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-20_0, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-20_0, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-20_0, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto { +padding-right: 0 !important; +padding-left: 0 !important; +} + +@media only screen and (max-width: 1200px) { +/* cabinet */ +.cabinet{ + flex-direction: column; + + position: relative; +} +.cabinet__control{ + display: flex; + + position: relative; +} +.cabinet__orders, .cabinet__profile{ + width: calc(100% - 48px); +} +.cabinet__orders, .cabinet__profile{ + position: absolute; + opacity: 0; + + transition: opacity .2s ease-out; +} +.cabinet-content{ + pointer-events:none; +} +.cabinet__orders.active, .cabinet__profile.active{ + opacity: 1; +} +.cabinet__orders.hide, .cabinet__profile.hide{ + position: static; + display: block; + pointer-events:auto; + + width: 100%; +} +.cabinet__subscription-pc{ + display: none; +} +.cabinet__subscription-mobile{ + display: block; + + margin: 24px 24px 0 24px; +} +.cabinet__orders .cabinet-card:nth-child(2){ + margin-top: 0; + } +/* cabinet */ +} +@media only screen and (max-width: 750px) { + /* cabinet */ + .cabinet-card-order__open-detail{ + margin-top: 0px; + } + .cabinet-card-order__detail-short{ + right: auto; + left: 0; + bottom: 48px; + } + .cabinet-card-order-detail-short__item{ + margin-left: 10px; + } + .cabinet-card-order-detail-short__item:first-child{ + margin-left: 0; + } + .cabinet-card__order.active .cabinet-card-order__open-detail{ + margin-top: 24px; + } + .cabinet-card-order__detail-short{ + max-width: 100%; + } + .cabinet-card-order__content, .cabinet-card-order__bottom{ + margin-top: 0; + } + /* cabinet */ + } +@media only screen and (max-width: 720px) { + /* cabinet */ +.cabinet-card__title{ + font-size: 20px; +} +.cabinet-card__no-orders{ + margin-top: 16px; +} +.cabinet-card-order__header{ + flex-direction: column; +} +.cabinet-card-order__payment{ + margin-top: 16px; +} +.cabinet-card-order-detail__main{ + flex-direction: column; +} +.cabinet-card-order-detail-main__links{ + margin-top: 24px; + + align-items: start; +} +.cabinet-card-order-detail-main-product__img{ + width: 70px; + height: 70px; +} +.cabinet-card-order-detail-main__product{ + margin-top: 16px; + + align-items: start; +} +.cabinet-card-order-detail-main__products{ + position: relative; +} +.cabinet-card-order-detail-main-product__content{ + margin-left: 16px; + + flex-wrap: wrap; + + +} +.cabinet-card-order-detail-main-product__description{ + width: 100%; +} +.cabinet-card-order-detail-main-product__count{ +margin-left: 0; +margin-top: 7px; +} +.cabinet-card-order-detail-main-product__price{ + margin-top: 7px; +} +.cabinet-card__content{ + padding-right: 19px; +} +/* .cabinet-card__order.active */ +/* .cabinet-card__order.active */ +/* cabinet */ +} + +@media only screen and (max-width: 576px) { + /* cabinet */ + +.cabinet-card-order-detail-main-product__img{ + width: 40px; + height: 40px; +} + +.cabinet-card-order-detail-main-product__count{ + left: auto; + right: 71px; +} +.cabinet-card-order-detail-main-product__price{ + left: auto; + right: 0; +} +.cabinet-card-order__detail-short{ + transition-delay: 0; + transition-duration: 0; +} +.cabinet-card-order-detail-short__item { + border-radius: 16px; + width: 80px; + height: 80px; +} + +/* cabinet */ +} + + + + + + + + + + + + + + + + + + + + + + +button{ + cursor: pointer; + } + + .wrapper{ + margin: 0 auto; + + max-width: 1600px; + } + + .main_link{ + font-size: 24px; + font-weight: 500; + line-height: 28.8px; + color: var(--creme-white, #F4F1F0); + width: 221px; + height: 50px; + padding: 10px; + white-space: nowrap; + display: flex; + align-items: center; + justify-content: center; + border-radius: 48px; + border: 2px solid var(--creme-white, #F4F1F0); + transition: .3s ease all; +} +.main_link:hover{ + background-color: #F4F1F0; + color: #121212; +} + +.btn--black-hover:hover{ + background: #121212 !important; + color: #F4F1F0 !important; +} + body{ + font-family: var(--font-family); + } + + :root { + --font-family: "Craftwork Grotesk", sans-serif; + --second-family: "DIN 2014 Rounded", sans-serif; + --third-family: "Roboto", sans-serif; + --text-white: #fff; + --text-black: #121212; + --text-dark: #2b2b3b; + --text-grey: #999; + --text-red: #fa0505; + --text-green: #2ED15D; + --text-0: #000; + --text-3: #333; + --text-6: #666; + --text-9: #999; + --background-white: #fff; + --background-black: #121212; + --background-grey: #f2f2f2; + --background-green: #2ED15D; + --background-green-white: #f4fff0; + --background-9: #999; + --gradient-blue: radial-gradient(346.57% 244.17% at 149.73% -58.39%, rgb(15, 88, 129) 0%, rgb(30, 164, 156) 51.21689438819885%, rgb(118, 206, 117) 80.70731163024902%, rgb(236, 243, 159) 91.14583134651184%); + --gradient-turquoise: radial-gradient(346.57% 244.17% at 149.73% -58.39%, rgb(117, 196, 240) 0%, rgb(126, 231, 225) 51.21689438819885%, rgb(181, 228, 180) 80.70731163024902%, rgb(237, 244, 164) 91.14583134651184%); + --gradient-red: linear-gradient(22deg, #f44242 0%, #569ef0 100%); +} + + +.form{ + width: 100%; + + padding: 24px 24px 43px; + + display: flex; + flex-direction: column; + + position: relative; + overflow: hidden; + border-radius: 24px; + background: var(--gradient-turquoise); + } + .form.submited .footer-thx{ + display: flex; + } + .footer-thx{ + height: 100%; + width: 100%; + top: 0; + left: 0; + text-align: center; + position: absolute; + display: none; + font-size: 32px; + align-items: center; + justify-content: center; + padding: 24px; + background: var(--gradient-turquoise); + flex-direction: column; + } + .footer-thx-sub{ + font-size: 15px; + margin-top: 8px; + } + .form__item{ + margin-top: 16px; + } + .form__title{ + font-family: var(--font-family); + font-weight: 500; + font-size: 24px; + line-height: 133%; + color: var(--text-black); + } + .form__input{ + width: 100%; + + border-radius: 20px; + padding: 12px 16px; + border: 1px solid var(--text-black); + + background: var(--background-white); + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + + color: var(--text-black); + } + .form__input::placeholder{ + color: var(--text-grey); + } + .form__input--textarea{ + height: 96px; + resize: none; + } + .form__button{ + width: 100%; + + padding: 12px 24px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-white); + + border-radius: 16px; + border: none; + background: var(--background-black); + + cursor: pointer; + + transition: background-color .2s ease-out; + } + .form__button:hover{ + opacity: .8; + } + + .label{ + padding-bottom: 4px; + + display: inline-block; + + position: relative; + } + .label::after{ + content: ''; + + position: absolute; + top: 2px; + right: -20px; + + width: 16px; + height: 16px; + + background-image: url(../img/svg/main/question.svg); + + cursor: pointer; + } + .label__title{ + font-family: var(--font-family); + font-weight: 700; + font-size: 16px; + line-height: 125%; + color: var(--text-3); + } + .label__question{ + position: absolute; + + padding: 8px; + width: max-content; + max-width: 200px; + border-radius: 6px; + transition: height .2s ease-out; + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.1), 0 0 2px 0 rgba(0, 0, 0, 0.2); + overflow: hidden; + background-color: var(--background-white); + + opacity: 0; + transition: opacity .2s ease-out; + pointer-events: none; + } + .label:hover .label__question{ + opacity: 1; + pointer-events: auto; + } + + + .social-media{ + display: flex; + align-items: center; + } + .social-media__item{ + margin-left: 32px; + + transition: opacity .2s ease-out; + } + .social-media__item:hover{ + opacity: .8; + } + .social-media__item:first-child{ + margin-left: 0px; + } + .social-media__icon{ + width: 32px; + aspect-ratio: 1; + } + + .breadcrumbs{ + margin: 24px; + + display: flex; + align-items: center; + } + .breadcrumbs__item{ + display: block; + + padding: 0px 16px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 16px; + line-height: 125%; + color: var(--text-6); + + text-decoration: none; + + position: relative; + } + .breadcrumbs__item:first-child{ + padding-left: 0; + } + .breadcrumbs__item:nth-child(n+2)::before{ + content: ''; + + position: absolute; + top: -2px; + left: -12px; + + width: 24px; + aspect-ratio: 1; + + background-image: url(../img/svg/main/arrow-breadcrumbs.svg); + background-repeat: no-repeat; + background-size: contain; + } + + /* button */ +.button{ + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + border-radius: 20px; + text-transform: none; + cursor: pointer; + } + .button--100-perc{ + width: 100%; + } + .button--white{ + padding: 11px 24px; + + text-align: center; + + background-color: var(--background-white); + border: 1px solid var(--background-black); + + transition: opacity .2s ease-out; + } + .button--white:hover{ + opacity: .8; + } + .button--white.active{ + background: var(--background-black); + color: var(--background-white); + } + .button--gradient{ + background: var(--gradient-turquoise); + border: none; + + transition: opacity .2s ease-out; + } + .button--gradient:hover{ + opacity: .8; + } + .button--base{ + padding: 12px 24px; + } + .button--high{ + height: 56px; + + padding: 16px 24px 16px 24px; + + font-weight: 700; + text-align: center; + + position: relative; + } + .button--icon{ + padding-right: 56px; + + text-align: start; + } + .button--filter::after{ + content: ''; + + position: absolute; + top: 16px; + right: 24px; + + width: 24px; + aspect-ratio: 1; + + background-image: url(../img/svg/main/filter.svg); + background-repeat: no-repeat; + background-size: contain; + } + .button--black{ + padding: 7px 15px; + + font-family: var(--font-family); + font-weight: 500; + font-size: 24px; + line-height: 133%; + color: var(--text-white); + + background: var(--background-black); + border: 1px solid var(--text-white); + } + .button--link{ + text-decoration: none; + } + .button--red-48-px{ + border-radius: 48px; + } + .to-know{ + width: 100%; + + padding: 12px; + + display: flex; + justify-content: center; + + border: none; + + transition: opacity .2s ease-out; + } + .to-know:hover{ + opacity: .8; + } + .to-know p{ + padding-bottom: 4px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + border-bottom: 1px var(--text-black) solid; + + cursor: pointer; + } + .to-know--background-none{ + background: none; + } + .back{ + margin-top: 16px; + margin-left: 16px; + + padding: 8px; + padding-left: 32px; + + background: none; + border: none; + + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + text-decoration: none; + + position: relative; + } + .back::before{ + content: ''; + + position: absolute; + top: 8px; + left: 0; + + margin-right: 8px; + + width: 24px; + height: 24px; + + background-image: url(../img/svg/main/arrow-back.svg); + } + + .back::after{ + content: ''; + + position: absolute; + bottom: 6px; + left: 0; + + width: calc(100% - 8px); + height: 1px; + + background: var(--text-black); + } + /* button */ + + + /* select */ +.select{ + max-width: 144px; + + position: relative; + } + .select__state{ + width: 100%; + + padding: 11px 47px 11px 13px; + + /* pointer-events:none; */ + + border: 1px solid var(--background-black); + border-radius: 20px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + cursor: pointer; + + position: relative; + + transition: opacity .2s ease-out; + } + .select:hover .select__state{ + opacity: .8; + } + .select::after{ + content: ''; + + position: absolute; + top: 20.5px; + right: 21.5px; + + width: 17px; + height: 10px; + + background-image: url(../img/svg/main/arrow-black.svg); + background-repeat: no-repeat; + background-size: contain; + + pointer-events: none; + } + .state__block{ + position: absolute; + top: 48px; + left: 0; + + width: 100%; + + height: 0; + overflow: hidden; + + transition: height .2s ease-out; + } + .state__content{ + padding: 8px; + + border-radius: 6px; + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.1), 0 0 2px 0 rgba(0, 0, 0, 0.2); + background-color: var(--background-white); + + list-style-type: none; + } + .state__content li{ + margin-top: 8px; + } + .state__content li:first-child{ + margin-top: 0; + } + .state__button{ + width: 100%; + + padding: 4px 32px 4px 4px; + + background: none; + border: none; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-dark); + text-align: start; + + border-radius: 6px; + + transition: background-color .2s ease-out; + + position: relative; + } + .state__button:hover, + .state__button.active{ + background-color: var(--background-grey); + } + + .state__button.active::before{ + content: ''; + position: absolute; + top: 10px; + right: 8px; + width: 16px; + height: 12px; + background-image: url(../img/svg/main/arrow-selected.svg); + } + + /* select */ + + /* counter */ + .counter{ + display: flex; + align-items: center; + } + .counter__input{ + width: 48px; + + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + text-align: center; + color: var(--text-black); + + pointer-events: none; + + background: none; + border: none; + } + .counter__button{ + width: 48px; + height: 48px; + + display: flex; + justify-content: center; + align-items: center; + + border: 1px solid var(--text-3); + border-radius: 24px; + + background: var(--background-white); + + transition: opacity .2s ease-out; + } + .counter__button:hover{ + opacity: .8; + } + .counter--small{ + + } + .counter--small .counter__button{ + width: 32px; + height: 32px; + } + .counter--small{ + + } + /* counter */ + + /* modal */ +/* modal */ +.modal{ + position: fixed; + top: 0; + left: 0; + + padding: 20px; + + width: 100%; + height: 100%; + + background: rgba(0, 0, 0, 0.25); + + z-index: 200; + + opacity: 0; + transition: opacity .2s ease-out; + pointer-events: none; + + display: flex; + justify-content: center; + align-items: center; + + overflow-y: auto; +} +.modal.active{ + opacity: 1; + pointer-events: auto; +} +.modal__notification{} +.form__button-mobile{ + display: none; +} +.modal__aside{ + position: fixed; + top: 0; + right: 0; + + width: 0; + height: 100%; + + overflow: hidden; + transition: width .4s ease-out; +} +.modal__item{ + height: 100%; + + padding: 24px; + + background: var(--background-white); + + position: relative; + + display: none; + + filter: blur(10px); + transition: filter .2s ease-out; +} +.modal__item--no-title{ + padding-top: 72px; +} +.modal__item.active{ + display: flex; + flex-direction: column; + justify-content: space-between; +} +.modal__close{ + position: absolute; + top: 32px; + right: 24px; + + width: 24px; + height: 24px; + + border: none; + background: none; +} +.modal__header{} +.modal__title{ + padding-right: 48px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 36px; + line-height: 111%; + text-transform: uppercase; + color: var(--text-black); +} +.modal__small-title{ + font-family: var(--font-family); + font-weight: 700; + font-size: 24px; + line-height: 100%; + text-transform: uppercase; + color: var(--text-black); +} +.modal__text{ + margin-top: 16px; + + padding-right: 10px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-0); +} +.modal__form-sub{ + margin-top: 48px; +} +.modal-form-sub__submit{ + margin-top: 64px; +} +.modal__block-button{ + margin-top: 24px; +} +.modal__button{ + margin-top: 16px; +} +.modal__button:first-child{ + margin-top: 0; +} +.modal__content{ + margin-top: 24px; +} +.modal__filter{ + width: 400px; + overflow-y: auto; +} +.modal__footer{ + border-top: 1px solid var(--text-6); + padding-top: 23px; +} +.modal__block-price{ + display: flex; + justify-content: space-between; + align-items: center; +} +.modal-block-price__title{ + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.modal-block-price__price{ + font-family: var(--font-family); + font-weight: 700; + font-size: 24px; + line-height: 100%; + text-transform: uppercase; + text-align: right; + color: var(--text-black); +} +.modal-block-price__price::after{ + content: 'Р'; +} +.modal__basket{ + width: 600px; +} +.modal__to-know, +.modal__to-know-submit{ + width: 412px; +} + +.modal-basket__item{ + padding-top: 23px; + padding-right: 15px; + padding-bottom: 24px; + + display: flex; + + border-top: 1px solid #f2f2f2; + + position: relative; +} +.modal-basket__item-before{ + content: ''; + + position: absolute; + top: 24px; + right: 6px; + + width: 24px; + aspect-ratio: 1; + + background-image: url(../img/svg/main/basket.svg); + background-repeat: no-repeat; + background-position: center; + + cursor: pointer; + + transition: opacity .2s ease-out; +} +.modal-basket__item:hover .modal-basket__item::before{ + opacity: .8; +} +.modal-basket__item--return{ + padding-right: 5px; + + display: flex; + justify-content: space-between; + align-items: center; +} +.modal-basket__item--return .modal-basket-item__title{ + padding-right: 10px; +} +.modal-basket__item--return::before{ + display: none; +} +.modal-basket-item__return{ + border-radius: 20px; + padding: 4px 24px; + + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + color: var(--text-white); + + background: var(--background-black); + + border: none; +} +.modal-basket-item__block-image{ + width: 128px; + aspect-ratio: 1; + + display: flex; + justify-content: center; + align-items: center; +} +.modal-basket-item__image{ + width: 96px; + aspect-ratio: 1; + + object-fit: contain; +} +.modal-basket-item__content{ + margin-left: 16px; +} +.modal-basket-item__title{ + padding-right: 40px; + + font-family: var(--font-family); + font-weight: 500; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.modal-basket-item__sub-title{ + margin-top: 8px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 12px; + line-height: 133%; + color: var(--text-black); +} +.modal-basket-item__control{ + margin-top: 24px; + + display: flex; + justify-content: space-between; + align-items: center; +} +.modal-basket-item__price{ + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + text-align: right; + color: var(--text-black); +} +.modal-basket-item__price::after{ + content: 'Р'; + + padding-left: 4px; +} +.modal__basket .modal__header{ + height: calc(100% - 92px); + margin-bottom: -36px; +} +.modal__basket .modal__content{ + height: calc(100% - 100px); + overflow-x: hidden; + +} +.modal__basket .modal__content::-webkit-scrollbar { + width: 7px; + background-color: #f9f9fd; +} +.modal__basket .modal__content::-webkit-scrollbar-thumb { + background-color: var(--background-black); + border-radius: 2px; +} + +.modal-form{ + margin: auto; + + width: 600px; + + padding: 24px; + + border-radius: 20px; + + position: relative; + + display: none; +} +.modal-form.active{ + display: block; +} +.modal-form--white{ + border: 1px solid var(--background-black); + background: var(--background-white); +} +.modal-form--green-gradient{ + background: var(--gradient-blue); +} +.modal-form--width-584{ + width: 584px; +} +.modal-form__close{ + position: absolute; + top: 24px; + right: 24px; + + width: 24px; + aspect-ratio: 1; + + border: none; + background: none; + background-image: url(../img/svg/main/black-x.svg); + background-repeat: no-repeat; + background-size: 24px; + background-position: center; + + transition: opacity .2s ease-out; +} +.modal-form__close--white{ + background-image: url(../img/svg/main/white-x.svg); +} +.modal-form__close:hover{ + opacity: .8; +} +.modal-form__button-close{} +.modal-form__title{ + padding-right: 50px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 26px; + line-height: 123%; + text-transform: uppercase; + color: var(--text-dark); +} +.modal-form__text--center{ + text-align: center; +} +.modal-form__text--center-pc{ + text-align: center; +} +.modal-form__title--green-gradient{ + background: var(--gradient-blue); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} +.modal-form__title--white{ + color: var(--text-white); +} +.modal-form__element{ + margin-top: 24px; +} +.modal-form__element--center{ + display: flex; + justify-content: center; +} +.modal-form__element--top-40{ + margin-top: 40px; +} +.modal-form__text{ + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.modal-form__text--weight-500{ + font-weight: 500; +} +.modal-form__text--white{ + color: var(--text-white); +} +.modal-form__img{ + width: 100%; + height: 360px; + + object-fit: contain; +} +.modal-form__content{ + margin-top: 40px; +} +.modal-form-content__line{ + margin-top: 24px; +} +.modal-form-content__line:first-child{ + margin-top: 0; +} +.modal-form-content__line--two{ + display: flex; + justify-content: space-between; +} +.modal-form-content-line__element{ + position: relative; +} +.modal-form-content__line--two .modal-form-content-line__element{ + width: calc(50% - 12px); +} +.modal-form-content__line--three{ + display: flex; +} +.modal-form-content__line--three .modal-form-content-line__element:nth-child(1){ + width: 85px; + + flex-shrink: 0; +} +.modal-form-content__line--three .modal-form-content-line__element:nth-child(2){ + margin-left: 8px; + + width: 100%; +} +.modal-form-content__line--three .modal-form-content-line__element:nth-child(3){ + margin-left: 8px; + + width: 85px; + + flex-shrink: 0; +} +.modal-form-content__line--margin-top-16{ + margin-top: 16px; +} +.modal-form__buttons{ + margin-top: 32px; +} +.modal-form__buttons--two{ + display: flex; + justify-content: space-between; + align-items: center; +} + +.modal-form__buttons--two button, +.modal-form__buttons--two input{ + width: calc(50% - 20px); +} +.modal-map{ + margin: auto; + + width: 1105px; + + display: none; + + border-radius: 24px; + border: none; +} +.modal-map.active{ + display: flex; +} +.modal-map__left{ + width: 600px; + + padding: 24px; + + position: relative; +} +.modal-map__control{ + margin: 38px -12px -12px -12px; + + display: flex; +} +.modal-map-control__item{ + margin: 12px; + + padding: 2px; + + width: calc(50% - 24px); + + background: var(--background-9); + border-radius: 20px; + border: none; +} +.modal-map-control__item.active{ + background: var(--gradient-blue); +} +.modal-map-control__item.active .form-input-radio__circle::before{ + content: ''; + position: absolute; + top: 4px; + left: 4px; + width: 12px; + aspect-ratio: 1; + border-radius: 50%; + background: var(--gradient-blue); +} +.modal-map-control-item__content{ + padding: 14px; + + border-radius: 18px; + + background: var(--background-white); +} +.modal-map-control-item__header{ + display: flex; + align-items: center; +} +.modal-map-control-item__circle{ + padding: 2px; + width: 20px; + aspect-ratio: 1; + border-radius: 50%; + background: var(--background-9); + position: relative; +} +.modal-map-control-item-circle__content{ + width: 16px; + aspect-ratio: 1; + border-radius: 50%; + background: var(--background-white); +} +.modal-map-control__item.active .modal-map-control-item__circle{ + background: var(--gradient-blue); +} +.modal-map-control__item.active .modal-map-control-item__circle::before{ + content: ''; + position: absolute; + top: 4px; + left: 4px; + width: 12px; + aspect-ratio: 1; + border-radius: 50%; + background: var(--gradient-blue); +} +.modal-map-control-item__title{ + margin-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-dark); +} +.modal-map-control-item__description{ + margin-top: 16px; +} +.modal-map-control-item__time{ + font-family: var(--font-family); + font-weight: 500; + font-size: 16px; + line-height: 125%; + color: var(--text-black); + + text-align: start; +} +.modal-map-control-item__price{ + margin-top: 8px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 12px; + line-height: 133%; + color: var(--text-6); + + text-align: start; +} +.modal-map__form{ + margin-top: 24px; +} +.modal-map-form__hidden{ + +} +.modal-map-form__button{ + margin-top: 83px; +} +.modal-map-form__sub-button{ + display: none; +} +.modal-map__right{ + padding: 16px 0px 16px 16px; +} +.modal-map__map{ + border: 2px solid var(--background-9); + border-radius: 16px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.modal-map__map iframe{ + height: 650px; +} +.modal__age{ + +} +.modal__age > div{ + display: none; +} +.modal__age > div.active{ + display: flex; +} +/* modal */ + /* modal */ + + /* toggle */ + .toggle{ + padding-top: 26px; + padding-bottom: 25px; + + border-bottom: 1px solid var(--text-3); + + position: relative; + } + .toggle::after{ + content: ''; + + position: absolute; + top: 24px; + right: 0; + + width: 24px; + aspect-ratio: 1; + + background-image: url(../img/svg/main/black-x.svg); + transform: rotate(45deg); + transition: transform .2s; + pointer-events: none; + } + .toggle.active::after{ + transform: rotate(0deg); + } + .toggle__title{ + padding-right: 30px; + text-transform: uppercase; + + font-family: var(--font-family); + font-weight: 700; + font-size: 16px; + line-height: 125%; + color: var(--text-black); + margin-bottom: 0; + cursor: pointer; + } + .toggle__block-content{ + height: 0; + overflow: hidden; + + transition: height .2s ease-out; + } + .toggle__content{ + padding-top: 24px; + } + .toggle-content__item{ + margin: 12px -12px -12px -12px; + + display: flex; + align-items: center; + flex-wrap: wrap; + } + .toggle-content__item:first-child{ + margin-top: 0; + } + .toggle-content__element{ + margin: 12px; + } + .toggle-content__element--width-perc-100{ + width: 100%; + } + .toggle-content__element--width-perc-50{ + width: calc(50% - 24px); + } + .toggle__text{ + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + } + /* toggle */ + + /* checkbox */ + .checkbox{ + display: flex; + align-items: center; + + cursor: pointer; + } + .checkbox__state{ + border-radius: 4px; + + width: 18px; + height: 18px; + + border: 2px solid var(--background-black); + background: var(--background-white); + + flex-shrink: 0; + } + .checkbox.active .checkbox__state{ + background-color: var(--background-black); + + background-image: url(../img/svg/main/arrow-selected-white.svg); + background-repeat: no-repeat; + background-position: center; + } + .checkbox__input{ + display: none; + } + .checkbox__label{ + padding-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-dark); + + cursor: pointer; + } + .checkbox__label a{ + color: #76ce75; + + text-decoration: none; + } + .checkbox--small{ + margin-top: 24px; + } + .checkbox--small .checkbox__label{ + padding-left: 24px; + + font-weight: 500; + font-size: 12px; + line-height: 133%; + } + /* checkbox */ + + /* radio */ + .radio{ + display: flex; + align-items: center; + } + .radio__input{ + width: 18px; + aspect-ratio: 1; + + accent-color: var(--background-black); + + cursor: pointer; + } + .radio__label{ + padding-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-dark); + + cursor: pointer; + } + /* radio */ + + + @keyframes slidein { + from { + opacity: 0; + } + + to { + opacity: 1; + } + } + + .slider-arrow{ + background-color: transparent; + } + + .product__footer{ + width: 100%; + } + + .button.loading{ + font-size: 0; + color: transparent !important; + position: relative; + } + .button.loading::before{ + content: ''; + height: 36px; + width: 36px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid' width='200' height='200' style='shape-rendering: auto; display: block; background: transparent;'%3E%3Cg%3E%3Ccircle stroke-dasharray='164.93361431346415 56.97787143782138' r='35' stroke-width='10' stroke='%23000000' fill='none' cy='50' cx='50'%3E%3CanimateTransform keyTimes='0;1' values='0 50 50;360 50 50' dur='1s' repeatCount='indefinite' type='rotate' attributeName='transform'/%3E%3C/circle%3E%3Cg/%3E%3C/g%3E%3C!-- %5Bldio%5D generated by https://loading.io --%3E%3C/svg%3E"); + background-size: contain; + background-repeat: no-repeat; + } + + + .products.loading{ + position: relative; + } + .products.loading::before{ + content: ''; + z-index: 150; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + background-color: rgba(255,255,255, .6); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid' width='200' height='200' style='shape-rendering: auto; display: block; background: transparent;'%3E%3Cg%3E%3Ccircle stroke-dasharray='164.93361431346415 56.97787143782138' r='35' stroke-width='10' stroke='%23000000' fill='none' cy='50' cx='50'%3E%3CanimateTransform keyTimes='0;1' values='0 50 50;360 50 50' dur='1s' repeatCount='indefinite' type='rotate' attributeName='transform'/%3E%3C/circle%3E%3Cg/%3E%3C/g%3E%3C!-- %5Bldio%5D generated by https://loading.io --%3E%3C/svg%3E"); + background-size: 48px; + background-position: top 200px center; + background-repeat: no-repeat; + } + + html{ + background: #fff !important; + } + + .detail__label-wrap{ + display: flex; + flex-wrap: wrap; + gap: 5px; + } + + .product-item-label__tag--sale{ + flex-shrink: 0; + margin-left: auto; + } + + .detail__label-wrap .detail__label .product-item-label__tag:last-child{ + margin-left: 0; + } + + .detail__label-wrap{ + align-items: center; + } + + .open-to-know{ + background-color: transparent; + } + + .detail-block-form__item .open-to-know{ + width: auto; + padding-left: 0; + padding-right: 0; + margin-right: 0; + margin-left: 0; + } + + .input-text { + display: flex; + flex-direction: row; + align-items: center; + padding: 12px 16px; + gap: 8px; + width: 100%; + height: 48px; + background: #FFFFFF; + border: 1px solid #999999; + border-radius: 20px; + margin-top: 6px; + color: #000 + } + + textarea.input-text{ + height: 150px; + } + + .woocommerce-button{ + padding: 20px; + margin-top: 20px; + } + + fieldset{ + padding: 0; + } + + +.radio-button{ + display: flex; + gap: 10px; +} + + +/* By Max fix add to cart button */ +.store-add-to-cart{ + min-height: 48px; +} +.mini-profile__button{ + position: relative; +} +.mini-profile__button--counter{ + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 2px; + position: absolute; + background: var(--gradient-turquoise); + border-radius: 10px; + width: 16px; + height: 16px; + + border-radius: 50%; + top: 6px; + right: 6px; + font-style: normal; + font-weight: 700; + font-size: 9px; + line-height: 16px; + color: #121212; +} + +.mini-profile__button--counter.disabled{ + display: none; +} + +.--text-center{ + text-align: center; +} + +.post{ + padding-bottom: 1.5rem; +} + +.login_wrap{ + min-height: 100%; +} + +.button--high-46{ + padding: 12px 24px; + + font-size: 20px; + font-weight: 700; + line-height: 24px; +} + +/* form */ +.form{ + width: 100%; + + padding: 24px 24px 43px; + + display: flex; + flex-direction: column; + + border-radius: 24px; + background: var(--gradient-turquoise); +} +.form__item{ + margin-top: 16px; +} +.form__title{ + font-family: var(--font-family); + font-weight: 500; + font-size: 24px; + line-height: 133%; + color: var(--text-black); +} +.form__input{ + width: 100%; + + border-radius: 20px; + padding: 12px 16px; + border: 1px solid var(--text-black); + + background: var(--background-white); + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + + color: var(--text-black); +} +.form__input::placeholder{ + color: var(--text-grey); +} +.form__input--textarea{ + height: 96px; + resize: none; +} +.form__input--center{ + text-align: center; +} +.form__button{ + width: 100%; + + padding: 12px 24px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-white); + + border-radius: 16px; + border: none; + background: var(--background-black); + + cursor: pointer; + + transition: background-color .2s ease-out; +} +.form__button:hover{ + opacity: .8; +} + +.label{ + padding-bottom: 4px; + + display: inline-block; + + position: relative; +} +.label::after{ + content: ''; + + position: absolute; + top: 2px; + right: -20px; + + width: 16px; + height: 16px; + + background-image: url(../img/svg/main/question.svg); + + cursor: pointer; +} +.label__title, .form-row label{ + font-family: var(--font-family); + font-weight: 700; + font-size: 16px; + line-height: 125%; + color: var(--text-3); +} +.label__question{ + position: absolute; + + padding: 8px; + + border-radius: 6px; + transition: height .2s ease-out; + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.1), 0 0 2px 0 rgba(0, 0, 0, 0.2); + overflow: hidden; + background-color: var(--background-white); + + opacity: 0; + transition: opacity .2s ease-out; + pointer-events: none; +} +.label:hover .label__question{ + opacity: 1; + pointer-events: auto; +} + +.label-name{ + margin-bottom: 8px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 16px; + line-height: 125%; + color: var(--text-black); + + display: block; +} +.form-input__error{ + margin-top: 4px; + + font-family: var(--font-family); + font-weight: 500; + font-size: 12px; + line-height: 133%; + + color: #f60909; + + display: none; + + position: relative; +} +.form-input__error--absolute{ + position: absolute; + bottom: -19.95px; + left: 0; + + width: 100%; +} +.form__input.error, .form-input__phone.error{ + border-color: #f60909; +} +.form__input.error + .form-input__error{ + display: block; +} +.form-input__phone.error .form-input__error{ + display: block; +} +.form-input-phone__input.error + .form-input__error--absolute::before{ + content: ''; + + position: absolute; + top: -53px; + left: -1px; + + width: 100%; + height: 48px; + + border-radius: 20px; + border: 1px solid #f60909; +} +.form-input__phone{ + padding: 12px 16px 12px ; + + display: flex; + align-items: center; + + border-radius: 20px; + border: 1px solid var(--text-black); + + cursor: pointer; + + position: relative; +} +.form-input__phone.focus{ + outline: 1px solid var(--text-black); +} +.form-input-phone__icon{ + flex-shrink: 0; + + height: 16px; + width: 28px; + + background-size: 16px; + background-repeat: no-repeat; + background-position: left; + + position: relative; +} +.form-input-phone__icon::after{ + content: ''; + + position: absolute; + top: 4px; + right: 0; + + width: 8px; + aspect-ratio: 1; + + background-image: url(../img/svg/main/triangle-grey.svg); +} +.form-input-phone__code{ + flex-shrink: 0; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.form-input-phone__code::before{ + content: '+'; +} +.form-input-phone__input{ + margin-left: 6px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + border: none; + outline: none; +} +.form-input-phone__list{ + position: absolute; + top: 52px; + left: 8px; + + width: 280px; + + z-index: 10; + + transition: opacity .2s ease-out; + + opacity: 0; + pointer-events: none; + + border-radius: 20px; + + overflow: hidden; +} +.form-input-phone__list.active{ + opacity: 1; + pointer-events: auto; +} +.form-input-phone-list__search{ + width: 100%; + + padding: 12px 16px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + border-left: 1px solid var(--background-black); + border-right: 1px solid var(--background-black); + border-top: 1px solid var(--background-black); + border-radius: 20px 20px 0 0; + + background: var(--background-white); +} +.form-input-phone-list__search::placeholder{ + color: var(--text-6); +} +.form-input-phone-list__content{ + width: 100%; + max-height: 224px; + + padding: 24px 16px; + + border: 1px solid var(--background-black); + border-top: none; + border-radius: 0 0 20px 20px; + + background: var(--background-white); + + overflow-y: auto; +} +.form-input-phone-list__item{ + margin-top: 14px; + + display: flex; + align-items: center; + + background: none; + border: none; + + cursor: pointer; +} +.form-input-phone-list__item:first-child{ + margin-top: 0; +} +.form-input-phone-list-item__icon{ + width: 16px; + aspect-ratio: 1; +} +.form-input-phone-list-item__name{ + margin-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.form-input-phone-list-item__code{ + margin-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.form-input-phone-list-item__code::before{ + content: '+'; +} +.form-input__tabs{ + padding: 2px; + + display: flex; + + border-radius: 20px; + background: var(--gradient-turquoise); + + position: relative; +} +.form-input-tabs__button{ + width: 100%; + margin-bottom: 0; + padding: 10px; + cursor: pointer; + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + text-align: center; + + border-radius: 18px; + + z-index: 2; + + transition: background-color .2s ease-out; +} +.form-input-tabs__button.active{ + background-color: var(--background-white); +} +.form-input-tabs__input{ + display: none; +} +.form-input__radio{ + padding: 16px; + + display: flex; + flex-direction: column; +} +.form-input-radio__item{ + margin-top: 14px; + + display: flex; + align-items: center; +} +.form-input-radio__item:first-child{ + margin-top: 0; +} +.form-input-radio__circle{ + padding: 2px; + + width: 20px; + aspect-ratio: 1; + + border-radius: 50%; + + background: var(--gradient-blue); + + position: relative; +} +.form-input-radio__item.active .form-input-radio__circle::before{ + content: ''; + + position: absolute; + top: 4px; + left: 4px; + + width: 12px; + aspect-ratio: 1; + + border-radius: 50%; + + background: var(--gradient-blue); +} +.form-input-radio-circle__content{ + width: 16px; + aspect-ratio: 1; + + border-radius: 50%; + + background: var(--background-white); +} +.form-input-radio__title{ + margin-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-dark); +} +.form-input-radio__input{ + display: none; +} +.form-input__list{ + position: relative; +} +.form-input__list::before{ + content: ''; + position: absolute; + top: 21.5px; + right: 19.5px; + width: 13px; + height: 8px; + background-image: url(../img/svg/main/arrow-black.svg); + background-repeat: no-repeat; + background-size: contain; + pointer-events: none; +} +.form-input-list__input{ + width: 100%; + + border-radius: 20px; + padding: 12px 16px; + padding-right: 40px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + border: 1px solid var(--text-black); +} + +.form-input-list__input::placeholder{ + color: var(--text-grey); +} +.form-input-list__block-content{ + position: absolute; + top: 50px; + left: 0; + + width: 100%; + max-height: 192px; + height: 0; + + border-radius: 20px; + background-color: var(--background-white); + + overflow: hidden; + + transition: height .2s ease-out; + + z-index: 10; +} +.form-input-list__block-content.active{ + border: 1px solid var(--background-black); +} +.form-input-list__content{ + margin: 8px 16px; + + max-height: 176px; + + padding-right: 16px; + + overflow-y: auto; +} +.form-input-list__content::-webkit-scrollbar{ + border-radius: 8px; + width: 4px; + background: rgba(204, 204, 204, 0.2); +} +.form-input-list__content::-webkit-scrollbar-thumb{ + border-radius: 8px; + background: var(--background-9); +} +.form-input-list__content +.form-input-list__item{ + margin-top: 16px; + + width: 100%; + + display: flex; + justify-content: space-between; + align-items: center; + + border-radius: 8px; + padding: 4px; + + background: none; + border: none; +} +.form-input-list__item:first-child{ + margin-top: 0; +} +.form-input-list__item.active{ + background: rgba(204, 204, 204, 0.2); +} +.form-input-list-item__text{ + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.form-input-list-item__box{ + width: 20px; + aspect-ratio: 1; + + padding: 2px; + + border-radius: 4px; + + background: var(--gradient-blue); +} +.form-input-list-item-box__content{ + width: 16px; + aspect-ratio: 1; + + border-radius: 2px; + + background: var(--background-white); +} +.form-input-list__item.active .form-input-list-item-box__content{ + background: var(--gradient-blue); +} +.remote-control__item{ + display: none; +} +.remote-control__item.active{ + display: block; +} +/* .form-input-radio__ */ +/* form */ + + +.v-hidden{ + position: absolute !important; + clip: rect(1px 1px 1px 1px); + clip: rect(1px, 1px, 1px, 1px); + padding: 0 !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + overflow: hidden; +} + +.form-input-list-item-box__content{ + display: inline-flex; + align-items: center; + justify-content: center; +} + +.modalProfile{ + position: fixed; + top: 0; + left: 0; + + padding: 20px; + + width: 100vw; + height: 100vh; + + background: rgba(0, 0, 0, 0.25); + + z-index: 200; + + opacity: 0; + transition: opacity .2s ease-out; + pointer-events: none; + + display: flex; + justify-content: center; + align-items: center; + + overflow-y: auto; + padding-top: 30px; + padding-bottom: 30px; +} +.modalProfile.active{ + opacity: 1; + pointer-events: auto; +} + +.popup-wrap{ + width: 100%; + height: 100%; + display: flex; +} + +.modal-form{ + margin: auto; +} + +.iti__country-name{ + color: #000; +} + +.rm{ + margin-top: 24px; +} + +body { + background-color: rgb(255, 255, 255) !important; + background-image: none; +} + +.login_inner img{ + display: block; + margin: 40px auto; +} + + +.product-item__price p::after, +.modal-basket-item__price::after, +.modal-block-price__price::after, +.product-item-overlay__price::after, +.detail-block-price__price::after { +content: '₽'; +padding-left: 5px; +} + +.checkout { + margin-top: 2rem; +} + +.modal-basket-item__block-image{ + flex-shrink: 0; +} + +.modal-basket-item__content{ + flex-grow: 1; +} + +.modal__close{ + padding: 0; +} + +.woocommerce-order * { + color: #000; +} + +.woocommerce-notices-wrapper{ + position: relative; + top: 112px; + z-index: 100; +} + +.cabinet__control--column { + flex-direction: column; +} + +.form-input__tabs--white{ + padding: 3px; + border: 1px solid var(--text-3); + background: var(--white); + width: 100%; +} +.form-input__tabs--white .form-input-tabs__button.active{ + background: var(--gradient-turquoise); +} + +.form-input-tabs__button { + width: 100%; + padding: 10px; + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + text-align: center; + border-radius: 18px; + z-index: 2; + transition: background-color .2s ease-out; +} +@media (max-width: 1200px) { + .cabinet__profile .form-input__tabs{ + display: none; +} + +} + + + +.subscription{ + margin-top: 12px; + +} +.subscription__item{ + padding: 12px 0; + display: flex; + justify-content: space-between; + border-bottom: 1px solid #999; +} +.subscription__item{ + font-size: 20px; +} +.subscription__add{ + color: var(--text-black); +} +.subscription__add-header{ + +} +.subscription__add-title{ + font-size: 24px; +} +.subscription__add-content{ + padding: 24px 0 12px 0; +} +.subscription__add-product{ + align-items: start; +} +.subscription__add-product > *:nth-child(3){ + margin-left: auto; + align-items: center; +} +.subscription__add .cabinet-card-order-detail-main-product-description__what { + font-size: 16px; + line-height: 125%; +} +.subscription__add .cabinet-card-order-detail-main-product-description__with-what { + font-weight: 500; + font-size: 16px; +} +.subscription__add .cabinet-card-order-detail-main-product__count{ + font-weight: 700; + font-size: 16px; + line-height: 100%; +} +.subscription__add .cabinet-card-order-detail-main-product__price{ + font-weight: 500; + font-size: 20px; + line-height: 120%; +} +.subscription__add{ + width: 100%; +} + +@media only screen and (max-width: 720px) { + .subscription__item{ + flex-direction: column; + } + + .subscription__item > p:first-child{ + font-size: 16px; + color: var(--text-6); + } + .subscription__item > p:last-child{ + margin-top: 6px; + } + + .subscription__add-title { + font-size: 20px; + } + + .subscription__add-product{ + flex-wrap: wrap; + } + + .subscription__add-product > *:not(:first-child){ + padding-top: 0; + } + .subscription__add-product .cabinet-card-order-detail-main-product__img{ + width: 73px; + height: 66px; + } + .subscription__add-product .cabinet-card-order-detail-main-product-description__what{ + font-size: 12px; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + } + .subscription__add-product .cabinet-card-order-detail-main-product-description__with-what{ + margin-top: 8px; + + font-size: 12px; + } + .subscription__add-product .cabinet-card-order-detail-main-product__description { + width: calc(100% - 73px); + } + .subscription__add-product .cabinet-card-order-detail-main-product__content{ + position: static; + margin-top: -10px; + margin-left: auto; + width: calc(100% - 73px); + + display: flex; + justify-content: space-between; + align-items: center; + } + .subscription__add-product .cabinet-card-order-detail-main-product__count{ + position: static; + font-size: 12px; + } + .subscription__add-product .cabinet-card-order-detail-main-product__price{ + position: static; + font-size: 16px; + } +} diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/modal/about_slider.png b/wp-content/themes/cosmopet/modules/profile/assets/img/modal/about_slider.png new file mode 100644 index 0000000..f3a8325 Binary files /dev/null and b/wp-content/themes/cosmopet/modules/profile/assets/img/modal/about_slider.png differ diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/pet/cat.png b/wp-content/themes/cosmopet/modules/profile/assets/img/pet/cat.png new file mode 100644 index 0000000..f88dd36 Binary files /dev/null and b/wp-content/themes/cosmopet/modules/profile/assets/img/pet/cat.png differ diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/pet/dog.png b/wp-content/themes/cosmopet/modules/profile/assets/img/pet/dog.png new file mode 100644 index 0000000..36e37ae Binary files /dev/null and b/wp-content/themes/cosmopet/modules/profile/assets/img/pet/dog.png differ diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/pet/mini-cat.png b/wp-content/themes/cosmopet/modules/profile/assets/img/pet/mini-cat.png new file mode 100644 index 0000000..49233dd Binary files /dev/null and b/wp-content/themes/cosmopet/modules/profile/assets/img/pet/mini-cat.png differ diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/pet/mini-dog.png b/wp-content/themes/cosmopet/modules/profile/assets/img/pet/mini-dog.png new file mode 100644 index 0000000..59a696d Binary files /dev/null and b/wp-content/themes/cosmopet/modules/profile/assets/img/pet/mini-dog.png differ diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/product/image.png b/wp-content/themes/cosmopet/modules/profile/assets/img/product/image.png new file mode 100644 index 0000000..aaef248 Binary files /dev/null and b/wp-content/themes/cosmopet/modules/profile/assets/img/product/image.png differ diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/product/mini-card.png b/wp-content/themes/cosmopet/modules/profile/assets/img/product/mini-card.png new file mode 100644 index 0000000..0e0eb02 Binary files /dev/null and b/wp-content/themes/cosmopet/modules/profile/assets/img/product/mini-card.png differ diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/country/ar.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/country/ar.svg new file mode 100644 index 0000000..4e3a7b3 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/country/ar.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/country/ru.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/country/ru.svg new file mode 100644 index 0000000..fc991dd --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/country/ru.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-black.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-black.svg new file mode 100644 index 0000000..4cd0135 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-gradient.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-gradient.svg new file mode 100644 index 0000000..9054fde --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-gradient.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-white.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-white.svg new file mode 100644 index 0000000..22c4489 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-back.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-back.svg new file mode 100644 index 0000000..a977e53 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-back.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-black.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-black.svg new file mode 100644 index 0000000..38fe433 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-black.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-breadcrumbs-black.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-breadcrumbs-black.svg new file mode 100644 index 0000000..88fd149 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-breadcrumbs-black.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-breadcrumbs.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-breadcrumbs.svg new file mode 100644 index 0000000..f1f9618 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-breadcrumbs.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-left.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-left.svg new file mode 100644 index 0000000..465c268 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-left.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-right.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-right.svg new file mode 100644 index 0000000..8952470 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-right.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-selected-white.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-selected-white.svg new file mode 100644 index 0000000..bb7e90b --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-selected-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-selected.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-selected.svg new file mode 100644 index 0000000..fb283a7 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-selected.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/basket.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/basket.svg new file mode 100644 index 0000000..6c08b40 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/basket.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/black-x.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/black-x.svg new file mode 100644 index 0000000..cb3041d --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/black-x.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/change-dot.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/change-dot.svg new file mode 100644 index 0000000..f38b6c9 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/change-dot.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/filter.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/filter.svg new file mode 100644 index 0000000..efa46c8 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/filter.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/google-white.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/google-white.svg new file mode 100644 index 0000000..4040621 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/google-white.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/gradient-x.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/gradient-x.svg new file mode 100644 index 0000000..3a19e1f --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/gradient-x.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/minus.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/minus.svg new file mode 100644 index 0000000..77109fe --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/minus.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/plus-grey.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/plus-grey.svg new file mode 100644 index 0000000..6fa9039 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/plus-grey.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/plus.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/plus.svg new file mode 100644 index 0000000..a9db939 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/plus.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/question.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/question.svg new file mode 100644 index 0000000..2e21e7b --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/question.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/status-cancelled.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/status-cancelled.svg new file mode 100644 index 0000000..f96648a --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/status-cancelled.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/status-chek.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/status-chek.svg new file mode 100644 index 0000000..836d49b --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/status-chek.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/triangle-grey.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/triangle-grey.svg new file mode 100644 index 0000000..23ede66 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/triangle-grey.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/vk-white.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/vk-white.svg new file mode 100644 index 0000000..556d386 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/vk-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/white-x.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/white-x.svg new file mode 100644 index 0000000..3697346 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/white-x.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/ya-white.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/ya-white.svg new file mode 100644 index 0000000..a6b4ece --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/ya-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/basket-w.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/basket-w.svg new file mode 100644 index 0000000..55eb29f --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/basket-w.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/basket.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/basket.svg new file mode 100644 index 0000000..fdf6bf8 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/basket.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/profile-w.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/profile-w.svg new file mode 100644 index 0000000..442e587 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/profile-w.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/profile.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/profile.svg new file mode 100644 index 0000000..6a48c34 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/profile.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/tg.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/tg.svg new file mode 100644 index 0000000..332942a --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/tg.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/vk.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/vk.svg new file mode 100644 index 0000000..ef5cadf --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/vk.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/ya.svg b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/ya.svg new file mode 100644 index 0000000..055175d --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/ya.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/wp-content/themes/cosmopet/modules/profile/assets/js/profile.js b/wp-content/themes/cosmopet/modules/profile/assets/js/profile.js new file mode 100644 index 0000000..0033817 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/assets/js/profile.js @@ -0,0 +1,96 @@ +'use strict'; + + +let widthPhoneCabinet = 1200; + +toggleOpenX('.cabinet-card__order', '.cabinet-card-order__open-detail', '.cabinet-card-order__detail', '.cabinet-card-order__block-detail'); + +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); + if (thisButtonElement){ +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'); + } + } + } + + + }); +} + +jQuery('.cabinet-card__button').on('click', function(){ + var id = jQuery(this).data('edit') + jQuery(`#pet_edit_` + id).addClass('active') +}) + +jQuery('.form-sub__btn').on('click', function(){ + jQuery(`#subForm`).addClass('active') +}) + +jQuery('.user-edit-open').on('click', function(){ + jQuery(`#user_edit`).addClass('active') +}) + +jQuery('.cabinet-card__block-add-pets').on('click', function(){ + jQuery(`#pet_add_form`).addClass('active') +}) + + +jQuery(document).ready(function ($) { + $('.subscription-address-form').on('submit', function (e) { + e.preventDefault(); + + var $form = $(this); + var $message = $form.find('.form-message'); + var subscriptionId = $form.data('subscription-id'); + var address = $form.find('input[name="address"]').val(); + var comment = $form.find('textarea[name="comment"]').val(); + var nonce = $form.find('input[name="address_nonce"]').val(); + + $message.hide().removeClass('success error').empty(); + + $.ajax({ + url: '/wp-admin/admin-ajax.php', // Defined in wp_localize_script + type: 'POST', + data: { + action: 'update_subscription_address', + subscription_id: subscriptionId, + address: address, + comment: comment, + address_nonce: nonce + }, + success: function (response) { + if (response.success) { + $message.addClass('success').text(response.data.message).show(); + } else { + $message.addClass('error').text(response.data.message).show(); + } + }, + error: function () { + + } + }); + }); +}); diff --git a/wp-content/themes/cosmopet/modules/profile/components/profile/component-controller.php b/wp-content/themes/cosmopet/modules/profile/components/profile/component-controller.php new file mode 100644 index 0000000..5a40939 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/components/profile/component-controller.php @@ -0,0 +1,193 @@ +user_firstname; +$context['last_name'] = $current_user->user_lastname; +$context['email'] = $current_user->user_email; +$context['phone'] = get_user_meta($current_user->ID, 'billing_phone', true); +$context['tg_account'] = get_user_meta($current_user->ID, 'tg_account', true); + +// ACF поля для пользователя +$context['activated'] = get_field('activated', 'user_' . get_current_user_id()); +$context['uuid'] = get_field('uuid', 'user_' . get_current_user_id()); + +// Запрос для питомцев +$current_user_id = get_current_user_id(); +if ($current_user_id) { + $args = [ + 'post_type' => 'pets', + 'meta_query' => [ + [ + 'key' => 'user', + 'value' => $current_user_id, + 'compare' => '=' + ] + ] + ]; + $context['pets'] = Timber::get_posts($args); +} + +// Заказы пользователя +$context['customer_orders'] = wc_get_orders(['customer_id' => $current_user->ID]); +// В page-profile.php, внутри цикла заказов + + + + + +// foreach ($context['customer_orders'] as &$order) { +// $meta_data = get_post_meta($order->get_id(), 'order_data', true); +// if (isset($meta_data['office_code'])) { +// $office_data = json_decode($api->getOffices(['code' => $meta_data['office_code']])['body'], true); +// $order->office_name = $office_data[0]['name'] ?? ''; +// } +// } + + + + +$context['bot_username'] = defined('BOT_USERNAME') ? BOT_USERNAME : ''; + +// Текущий пользователь +$current_user_id = get_current_user_id(); +$context['current_user_id'] = $current_user_id; + + + + + +// Запрос для питомцев +// if ($current_user_id) { +// $args = [ +// 'post_type' => 'pets', +// 'meta_query' => [ +// [ +// 'key' => 'user', +// 'value' => $current_user_id, +// 'compare' => '=' +// ] +// ] +// ]; +// $pets = Timber::get_posts($args); + +// // Обработка ACF-полей для каждого питомца +// foreach ($pets as &$pet) { +// // ACF-поля +// $pet->weight = get_field('weight', $pet->ID); +// $pet->old = get_field('old', $pet->ID); +// $pet->activity = get_field('activity', $pet->ID); + +// // Перевод веса +// switch ($pet->weight) { +// case 'below_1_5': +// $pet->weight_text = __('from 0,5 kg to 1,5 kg', 'woodmart'); +// break; +// case '1_5-3': +// $pet->weight_text = __('from 1.5 to 3 kg', 'woodmart'); +// break; +// case '3-5': +// $pet->weight_text = __('from 3 to 5 kg', 'woodmart'); +// break; +// case '5-8': +// $pet->weight_text = __('from 5 to 8 kg', 'woodmart'); +// break; +// case '8-11': +// $pet->weight_text = __('from 8 to 11 kg', 'woodmart'); +// break; +// case '11-15': +// $pet->weight_text = __('from 11 to 15 kg', 'woodmart'); +// break; +// case '15-20': +// $pet->weight_text = __('from 15 to 20 kg', 'woodmart'); +// break; +// case '20-25': +// $pet->weight_text = __('from 20 to 25 kg', 'woodmart'); +// break; +// case '25-35': +// $pet->weight_text = __('from 25 to 35 kg', 'woodmart'); +// break; +// case 'more_35': +// $pet->weight_text = __('More than 35 kg', 'woodmart'); +// break; +// default: +// $pet->weight_text = ''; +// } + +// // Перевод возраста +// switch ($pet->old) { +// case 'normal': +// $pet->old_text = __('Adult (from 1 year to 7 years)', 'woodmart'); +// break; +// case 'old': +// $pet->old_text = __('Elderly (from 7 to 12 years)', 'woodmart'); +// break; +// case 'very_old': +// $pet->old_text = __('Aging (12 years and older)', 'woodmart'); +// break; +// case 'baby': +// $pet->old_text = __('Baby (from 0 to 1 year)', 'woodmart'); +// break; +// default: +// $pet->old_text = ''; +// } + +// // Перевод активности +// switch ($pet->activity) { +// case 'low': +// $pet->activity_text = __('Low', 'woodmart'); +// break; +// case 'moderate': +// $pet->activity_text = __('Moderate', 'woodmart'); +// break; +// case 'high': +// $pet->activity_text = __('High', 'woodmart'); +// break; +// default: +// $pet->activity_text = ''; +// } +// } + +// $context['pets'] = $pets; +// } + + + + +// Месяцы для локализации +$context['months'] = [ + __('january', 'woodmart'), + __('february', 'woodmart'), + __('march', 'woodmart'), + __('april', 'woodmart'), + __('may', 'woodmart'), // Исправлено 'mail' на 'may' + __('june', 'woodmart'), + __('july', 'woodmart'), + __('august', 'woodmart'), + __('september', 'woodmart'), + __('october', 'woodmart'), + __('november', 'woodmart'), + __('december', 'woodmart'), +]; + + +if ($orders_pg){ +Timber::render('profile/profile-orders.twig', $context); +} +else{ +Timber::render('profile/profile.twig', $context); +} + +?> diff --git a/wp-content/themes/cosmopet/modules/profile/components/subscription_single/component-controller.php b/wp-content/themes/cosmopet/modules/profile/components/subscription_single/component-controller.php new file mode 100644 index 0000000..ed0fc4f --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/components/subscription_single/component-controller.php @@ -0,0 +1,143 @@ + function ($attachment_id, $size = 'thumbnail', $icon = false) { + $image = wp_get_attachment_image_src($attachment_id, $size, $icon); + return $image ? $image[0] : ''; // Return the URL or empty string + }, + ]; + return $filters; +}); +add_filter('timber/twig/functions', function ($functions) { + $functions['wc_get_page_permalink'] = [ + 'callable' => 'wc_get_page_permalink', + ]; + $functions['wc_get_endpoint_url'] = [ + 'callable' => 'wc_get_endpoint_url', + ]; + $functions['is_wc_endpoint_url'] = [ + 'callable' => 'is_wc_endpoint_url', + ]; + $functions['get_permalink'] = [ + 'callable' => 'get_permalink', + ]; + $functions['get_the_ID'] = [ + 'callable' => 'get_the_ID', + ]; + $functions['pll_e'] = [ + 'callable' => 'pll_e', + ]; + return $functions; +}); + +// Get subscription ID from URL (e.g., /my-account/view-subscription/7632/) + + $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; + if (preg_match('/view-subscription\/(\d+)/', $request_uri, $matches)) { + $subscription_id = absint($matches[1]); + } + + +$subscription = $subscription_id ? wcs_get_subscription($subscription_id) : null; + +if (!$subscription || !wcs_is_subscription($subscription) || $subscription->get_user_id() !== get_current_user_id()) { + error_log('Invalid or inaccessible subscription ID: ' . $subscription_id); + $subscription = null; +} else { + error_log('Subscription ID: ' . $subscription->get_id() . ' | Status: ' . $subscription->get_status()); + + $items = array_map(function ($item) { + $product_id = $item->get_product_id(); + $variation_id = $item->get_variation_id(); + $wc_product = $product_id ? wc_get_product($variation_id ?: $product_id) : null; + $product_name = $wc_product ? $wc_product->get_name() : 'Unknown Product'; + $image_id = $wc_product ? $wc_product->get_image_id() : 0; + $status = $product_id ? get_post_status($product_id) : 'N/A'; + $permalink = $wc_product && $wc_product->is_visible() ? get_permalink($product_id) : ''; + $variation_details = $variation_id ? wc_get_formatted_variation($wc_product, true) : ''; + error_log('Item ID: ' . $item->get_id() . ' | Product ID: ' . $product_id . ' | Variation ID: ' . $variation_id . ' | Name: ' . $product_name . ' | Permalink: ' . $permalink . ' | Status: ' . $status); + + return [ + 'product' => [ + 'id' => $product_id ?: 0, + 'name' => $product_name, + 'image_id' => $image_id, + 'variation_details' => $variation_details, + ], + 'quantity' => $item->get_quantity(), + 'total' => $item->get_total(), + ]; + }, $subscription->get_items()); + + + $cancel_url = ''; + if ($subscription->can_be_updated_to('cancelled')) { + $cancel_url = add_query_arg( + [ + 'subscription_id' => $subscription->get_id(), + 'change_subscription_to' => 'cancelled', + '_wpnonce' => wp_create_nonce('wcs_switch_request'), + ], + wc_get_endpoint_url('view-subscription', $subscription->get_id(), wc_get_page_permalink('myaccount')) + ); + } + + $subscription_data = [ + 'id' => $subscription->get_id(), + 'status' => $subscription->get_status(), + 'date_created' => $subscription->get_date_created(), + 'last_order_date' => $subscription->get_date('last_order_date_created'), + 'next_payment_date' => $subscription->get_date('next_payment'), + 'payment_method_title' => $subscription->get_payment_method_title(), + 'total' => $subscription->get_total(), + 'currency' => $subscription->get_currency(), + 'items' => $items, + 'cancel_url' => $cancel_url, + 'shipping_address' => $subscription->get_formatted_shipping_address(), + 'shipping_comment' => $subscription->get_customer_note(), + ]; +} + +// Timber context +$context = Timber::context(); + +$current_user = wp_get_current_user(); +$context['current_user'] = $current_user; +$context['first_name'] = $current_user->user_firstname; +$context['last_name'] = $current_user->user_lastname; +$context['email'] = $current_user->user_email; +$context['phone'] = get_user_meta($current_user->ID, 'billing_phone', true); +$context['tg_account'] = get_user_meta($current_user->ID, 'tg_account', true); + +// ACF поля для пользователя +$context['activated'] = get_field('activated', 'user_' . get_current_user_id()); +$context['uuid'] = get_field('uuid', 'user_' . get_current_user_id()); + +// Запрос для питомцев +$current_user_id = get_current_user_id(); +if ($current_user_id) { + $args = [ + 'post_type' => 'pets', + 'meta_query' => [ + [ + 'key' => 'user', + 'value' => $current_user_id, + 'compare' => '=' + ] + ] + ]; + $context['pets'] = Timber::get_posts($args); +} +$context['bot_username'] = defined('BOT_USERNAME') ? BOT_USERNAME : ''; +$context['subscription'] = $subscription_data; + +// Debug: Log subscription data +error_log('Subscription Data: ' . print_r($subscription_data, true)); + +// Render the Twig template +Timber::render('profile/profile-subs-single.twig', $context); +?> diff --git a/wp-content/themes/cosmopet/modules/profile/components/subscriptions/component-controller.php b/wp-content/themes/cosmopet/modules/profile/components/subscriptions/component-controller.php new file mode 100644 index 0000000..b31fc70 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/components/subscriptions/component-controller.php @@ -0,0 +1,107 @@ + function ($attachment_id, $size = 'thumbnail', $icon = false) { + $image = wp_get_attachment_image_src($attachment_id, $size, $icon); + return $image ? $image[0] : ''; // Return the URL or empty string + }, + ]; + return $filters; +}); + + +use Timber\Timber; + + +$context = Timber::context(); +if (!class_exists('WC_Subscriptions')) { + error_log('WooCommerce Subscriptions plugin is not active.'); + return; +} + +// Get the current user’s subscriptions +$user_id = get_current_user_id(); +$subscriptions = wcs_get_users_subscriptions($user_id); + +$subscription_data = []; +foreach ($subscriptions as $subscription) { + $view_url = $subscription->get_view_order_url(); + // Debug: Log the view_url to check its value + error_log('Subscription ID: ' . $subscription->get_id() . ' | View URL: ' . $view_url); + + $subscription_data[] = [ + 'id' => $subscription->get_id(), + 'date_created' => $subscription->get_date_created(), + 'total' => $subscription->get_total(), + 'currency' => $subscription->get_currency(), + 'billing_period' => $subscription->get_billing_period(), + 'next_payment_date' => $subscription->get_date('next_payment'), + 'view_url' => esc_url($view_url), // Ensure URL is escaped for safety + 'items' => array_map(function ($item) { + $product = $item->get_product(); + return [ + 'product' => [ + 'name' => $product->get_name(), + 'image_id' => $product->get_image_id(), + ], + ]; + }, $subscription->get_items()), + ]; +} + +$context['subscriptions'] = $subscription_data; + +// Debug: Log the entire subscriptions array +error_log('Subscriptions Data: ' . print_r($subscription_data, true)); + +// Render the Twig template + +$current_user = wp_get_current_user(); +$context['current_user'] = $current_user; +$context['first_name'] = $current_user->user_firstname; +$context['last_name'] = $current_user->user_lastname; +$context['email'] = $current_user->user_email; +$context['phone'] = get_user_meta($current_user->ID, 'billing_phone', true); +$context['tg_account'] = get_user_meta($current_user->ID, 'tg_account', true); + +// ACF поля для пользователя +$context['activated'] = get_field('activated', 'user_' . get_current_user_id()); +$context['uuid'] = get_field('uuid', 'user_' . get_current_user_id()); +$context['bot_username'] = defined('BOT_USERNAME') ? BOT_USERNAME : ''; +// Запрос для питомцев +$current_user_id = get_current_user_id(); +if ($current_user_id) { + $args = [ + 'post_type' => 'pets', + 'meta_query' => [ + [ + 'key' => 'user', + 'value' => $current_user_id, + 'compare' => '=' + ] + ] + ]; + $context['pets'] = Timber::get_posts($args); +} + +// Месяцы для локализации +$context['months'] = [ + __('january', 'woodmart'), + __('february', 'woodmart'), + __('march', 'woodmart'), + __('april', 'woodmart'), + __('may', 'woodmart'), + __('june', 'woodmart'), + __('july', 'woodmart'), + __('august', 'woodmart'), + __('september', 'woodmart'), + __('october', 'woodmart'), + __('november', 'woodmart'), + __('december', 'woodmart'), +]; + +Timber::render('profile/profile-subs.twig', $context); +?> diff --git a/wp-content/themes/cosmopet/modules/profile/module-ajax-controller.php b/wp-content/themes/cosmopet/modules/profile/module-ajax-controller.php new file mode 100644 index 0000000..6d9fde9 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/module-ajax-controller.php @@ -0,0 +1,134 @@ + get_current_user_id(), + 'first_name' => $_POST['name'], + 'last_name' => $_POST['l_name'], + + ) ); + + $phone = update_user_meta( get_current_user_id(), 'billing_phone', $_POST['phone'] ); + +} + +function ajax_add_pet() { + $current_user = wp_get_current_user(); + // Подготовка данных + $pet_name = $_POST['name']; + $old_type = $_POST['old_type']; + if ($old_type == 'ex'){ + $old= $_POST['old']; + } + + $weight= $_POST['weight']; + $activity = $_POST['activity']; + $pet = $_POST['pet']; + $breed = $_POST['breed']; + $sex = $_POST['sex']; + $user = $current_user->ID; + + $post_data = array( + 'post_title' => $pet_name, + 'post_type' => 'pets', + 'post_status' => 'publish', + ); + + + $post_id = wp_insert_post($post_data); + var_dump($post_id); + if ($post_id) { + // Добавление мета-полей + if ($old_type == 'ex'){ + + update_field( 'old', $old, $post_id ); + + + } + else{ + + update_field( 'day', $_POST['day'], $post_id ); + update_field( 'month', $_POST['month'], $post_id ); + update_field( 'year', $_POST['year'], $post_id ); + } + update_field( 'weight', $weight, $post_id ); + update_field( 'breed', $breed, $post_id ); + update_field( 'sex', $sex, $post_id ); + update_field( 'type', $pet, $post_id ); + update_field( 'user', $user, $post_id ); + update_field( 'activity', $activity, $post_id ); + if($_POST['sterilized']=='1' && $pet=='cat'){ + update_field( 'sterilized', true ); + } + else{ + update_field( 'sterilized', false ); + } + wp_send_json_success('Питомец успешно добавлен!'); + } else { + wp_send_json_error('Ошибка при добавлении питомца.'); + } + + wp_die(); // Завершение работы +} +add_action('wp_ajax_add_pet', 'ajax_add_pet'); +add_action('wp_ajax_nopriv_add_pet', 'ajax_add_pet'); // Если нужно разрешить для незалогиненных пользователей + +function ajax_edit_pet() { + $current_user = wp_get_current_user(); + // Подготовка данных + $pet_name = $_POST['name']; + $old_type = $_POST['old_type']; + if ($old_type == 'ex'){ + $old= $_POST['old']; + } + else{ + $old_acc = $_POST['day'] . ' ' . $_POST['month'] . ' ' . $_POST['year']; + } + $weight= $_POST['weight']; + $activity = $_POST['activity']; + $pet = $_POST['pet']; + $breed = $_POST['breed']; + $sex = $_POST['sex']; + $user = $current_user->ID; + + $post_id = intval($_POST['pet_id']); + + if (get_field('user', $post_id) == $user) { + // Добавление мета-полей + if ($old_type == 'ex'){ + update_field( 'old', $old, $post_id ); + } + else{ + update_field( 'old', '', $post_id ); + update_field( 'day', $_POST['day'], $post_id ); + update_field( 'month', $_POST['month'], $post_id ); + update_field( 'year', $_POST['year'], $post_id ); + } + update_field( 'weight', $weight, $post_id ); + update_field( 'breed', $breed, $post_id ); + update_field( 'sex', $sex, $post_id ); + update_field( 'type', $pet, $post_id ); + update_field( 'activity', $activity, $post_id ); + if($_POST['sterilized']=='1' && $pet=='cat'){ + update_field( 'sterilized', true ); + } + else{ + update_field( 'sterilized', false ); + } + wp_send_json_success('Питомец успешно отредактирован!'); + } else { + wp_send_json_error('Ошибка при редактировании питомца.'); + } + + wp_die(); // Завершение работы +} +add_action('wp_ajax_edit_pet', 'ajax_edit_pet'); +add_action('wp_ajax_nopriv_edit_pet', 'ajax_edit_pet'); + diff --git a/wp-content/themes/cosmopet/modules/profile/module-controller.php b/wp-content/themes/cosmopet/modules/profile/module-controller.php new file mode 100644 index 0000000..9f8d04f --- /dev/null +++ b/wp-content/themes/cosmopet/modules/profile/module-controller.php @@ -0,0 +1,2 @@ + item.key !== element.key); - localStorage.setItem(removedItemsStorageKey, JSON.stringify(updatedItems)); - } - // Обрабатываем следующий элемент - processNextItem(); - }, - error: function() { - // Продолжаем даже при ошибке - processNextItem(); + function processNextItem() { + if (itemsToRemove.length === 0) { + // Все элементы обработаны + localStorage.removeItem(removedItemsStorageKey); + updateCartFragment(); + $('#modal-basket').removeClass('loading'); + return; } - }); - } - // Начинаем обработку - processNextItem(); -} + const element = itemsToRemove.shift(); // Берем первый элемент + + $.ajax({ + type: 'POST', + url: woocommerce_params.ajax_url, + data: { + action: 'remove_cart_item', + cart_item_key: element.key + }, + success: function(response) { + if (response.success) { + // Обновляем localStorage, удаляя только что обработанный элемент + const currentItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || []; + const updatedItems = currentItems.filter(item => item.key !== element.key); + localStorage.setItem(removedItemsStorageKey, JSON.stringify(updatedItems)); + } + // Обрабатываем следующий элемент + processNextItem(); + }, + error: function() { + // Продолжаем даже при ошибке + processNextItem(); + } + }); + } + + // Начинаем обработку + processNextItem(); + } // Инициализация при загрузке restoreRemovedItems(); @@ -125,7 +126,7 @@ jQuery(document).ready(function($) { // Показываем кнопку восстановления $item.html(` `); + // Проверяем количество товаров в корзине + $.ajax({ + type: 'POST', + url: woocommerce_params.ajax_url, + data: { + action: 'check_cart_count' + }, + success: function(response) { + if (response.success && response.data.count <= 1) { + // Если после удаления корзина станет пустой (1 товар сейчас, удаляем его) + $('.proceed-to-checkout').css('display', 'none'); + } + } + }); + // Удаляем через 5 секунд, если не восстановили const removeTimeout = setTimeout(() => { permanentRemoveItem(key, productId, variationId); }, 5000); const product_remove_timer = setInterval(() => { - let number = Number($(`#${key}_timer`).html()) - 1 - $(`#${key}_timer`).html(number) + let number = Number($(`#${key}_timer`).html()) - 1; + $(`#${key}_timer`).html(number); }, 1000); // Обработчик восстановления @@ -207,6 +223,9 @@ jQuery(document).ready(function($) { ); localStorage.setItem(removedItemsStorageKey, JSON.stringify(updatedItems)); + // Показываем кнопку Proceed to checkout + $('.proceed-to-checkout').css('display', ''); + updateCartFragment(); } } @@ -318,19 +337,22 @@ jQuery(document).ready(function($) { $('#modal-basket').removeClass('loading'); }, success: function(response) { - console.log(response) + console.log(response); if (response.success) { $('#modal-basket-content').html(response.data.contents); $('.modal-block-price__price').html(response.data.total); $('.mini-profile__button--counter').text(response.data.count); - if(response.data.count > 0){ - $('.mini-profile__button--counter').removeClass('disabled') + if (response.data.count > 0) { + $('.mini-profile__button--counter').removeClass('disabled'); + $('.proceed-to-checkout').css('display', ''); // Показываем кнопку, если есть товары + } else { + $('.mini-profile__button--counter').addClass('disabled'); + $('.proceed-to-checkout').css('display', 'none'); // Скрываем кнопку, если корзина пуста } - else( - $('.mini-profile__button--counter').addClass('disabled') - ) - } + }, + error: function(xhr, status, error) { + console.error('AJAX error:', error); } }); } @@ -356,6 +378,4 @@ jQuery(document).ready(function($) { } } }); -}); - - +}); \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/css/checkout.css b/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/css/checkout.css index f3ee59b..808f7fe 100644 --- a/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/css/checkout.css +++ b/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/css/checkout.css @@ -1304,4 +1304,40 @@ .cdek-office-info{ display: none; +} + +.quantity-control { + display: flex; + align-items: center; + gap: 10px; + margin-bottom: 10px; +} +.quantity-decrease, .quantity-increase { + background: #f0f0f0; + border: none; + padding: 5px 10px; + cursor: pointer; + font-size: 16px; + border-radius: 4px; +} +.quantity-decrease:hover, .quantity-increase:hover { + background: #e0e0e0; +} +.quantity-input { + width: 50px; + text-align: center; + border: 1px solid #ccc; + border-radius: 4px; + padding: 5px; +} +.remove-item { + background: #ff4d4d; + color: white; + border: none; + padding: 5px 10px; + cursor: pointer; + border-radius: 4px; +} +.remove-item:hover { + background: #e63939; } \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/js/script.js b/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/js/script.js index 3035f2c..fafa1a1 100644 --- a/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/js/script.js +++ b/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/js/script.js @@ -130,7 +130,7 @@ jQuery(document).ready(function ($) { $('#billing_phone-error').addClass('active'); } if (errorMessage == 'Order pickup point not selected.' || errorMessage == 'Не выбран ПВЗ для доставки заказа.'){ - $('#pvz-error').html(errorMessage) + $('#pvz-error').html('Не выбран ПВЗ для доставки заказа.') $('#pvz-error').addClass('active'); } if (errorMessage == 'adress_error'){ @@ -159,3 +159,174 @@ jQuery(document).ready(function ($) { }) }); +jQuery(document).ready(function($) { + // Функция для получения активных фильтров из URL + function getActiveFilters() { + const params = new URLSearchParams(window.location.search); + const filters = []; + + params.forEach((value, key) => { + if (key.startsWith('filter_') || key === 'min_price' || key === 'max_price') { + let filterName = key.replace('filter_', '').replace('_', ' '); + let filterValue = value.split(',').map(val => decodeURIComponent(val.replace(/\+/g, ' '))); + + if (key === 'min_price') { + filterName = 'Цена от'; + filterValue = [value + ' ₽']; + } else if (key === 'max_price') { + filterName = 'Цена до'; + filterValue = [value + ' ₽']; + } + + filters.push({ + key: key, + name: filterName.charAt( W1).toUpperCase() + filterName.slice(1), + values: filterValue + }); + } + }); + + return filters; + } + + // Функция для отображения активных фильтров + function displayActiveFilters() { + const $filterList = $('.active-filters__list'); + const $filterContainer = $('.active-filters'); + const $clearButton = $('.active-filters__clear'); + $filterList.empty(); + + const activeFilters = getActiveFilters(); + + if (activeFilters.length > 0) { + $filterContainer.show(); + $clearButton.show(); + + activeFilters.forEach(filter => { + filter.values.forEach(value => { + const $filterTag = $('', { + class: 'active-filters__tag', + html: `${filter.name}: ${value} ×` + }); + $filterList.append($filterTag); + }); + }); + W2 else { + $filterContainer.hide(); + $clearButton.hide(); + } + } + + // Инициализация при загрузке страницы + displayActiveFilters(); + + // Обновление фильтров после AJAX-фильтрации + $(document).on('wcpf_after_filtering', function() { + displayActiveFilters(); + }); + + // Удаление фильтра + $(document).on('click', '.active-filters__remove', function() { + const key = $(this).data('key'); + const value = $(this).data('value'); + const params = new URLSearchParams(window.location.search); + + if (key === 'min_price' || key === 'max_price') { + params.delete(key); + } else { + let values = params.get(key) ? params.get(key).split(',') : []; + values = values.filter(val => decodeURIComponent(val.replace(/\+/g, ' ')) !== value); + if (values.length > 0) { + params.set(key, values.join(',')); + } else { + params.delete(key); + } + } + + const newUrl = window.location.pathname + (params.toString() ? '?' + params.toString() : ''); + window.history.pushState({}, '', newUrl); + + // Запуск AJAX-фильтрации + $.ajax({ + url: wc_checkout_params.ajax_url, + type: 'POST', + data: { + action: 'wcpf_filter', + query: params.toString(), + category_id: $('#load-more-products').data('category_id'), + category_type: $('#load-more-products').data('category_type') + }, + success: function(response) { + if (response.success) { + $('.product__main').html(response.data.products); + displayActiveFilters(); + $(document.body).trigger('wc_fragments_refreshed'); + } + }, + error: function() { + alert('Ошибка при обновлении фильтров'); + } + }); + }); + + // Очистка всех фильтров + $(document).on('click', '.active-filters__clear', function() { + const params = new URLSearchParams(window.location.search); + const newUrl = window.location.pathname; + window.history.pushState({}, '', newUrl); + + $.ajax({ + url: wc_checkout_params.ajax_url, + type: 'POST', + data: { + action: 'wcpf_filter', + query: '', + category_id: $('#load-more-products').data('category_id'), + category_type: $('#load-more-products').data('category_type') + }, + success: function(response) { + if (response.success) { + $('.product__main').html(response.data.products); + displayActiveFilters(); + $(document.body).trigger('wc_fragments_refreshed'); + } + }, + error: function() { + alert('Ошибка при очистке фильтров'); + } + }); + }); + + // Обработка загрузки дополнительных продуктов + $(document).on('click', '#load-more-products', function() { + const $button = $(this); + const categoryId = $button.data('category_id'); + const categoryType = $button.data('category_type'); + const page = parseInt($button.data('page') || 1) + 1; + + $.ajax({ + url: wc_checkout_params.ajax_url, + type: 'POST', + data: { + action: 'load_more_products', + category_id: categoryId, + category_type: categoryType, + page: page, + query: window.location.search + }, + success: function(response) { + if (response.success) { + $('.product__main').append(response.data.products); + $button.data('page', page); + if (!response.data.has_more) { + $button.hide(); + } + } + }, + error: function() { + alert('Ошибка при загрузке продуктов'); + } + }); + }); +}); + diff --git a/wp-content/themes/cosmopet/static/assets/css/thankyou.css b/wp-content/themes/cosmopet/static/assets/css/thankyou.css new file mode 100644 index 0000000..6055e3b --- /dev/null +++ b/wp-content/themes/cosmopet/static/assets/css/thankyou.css @@ -0,0 +1,65 @@ +/* Основные стили страницы */ +.woocommerce-order { + max-width: 800px; + margin: 2rem auto; + padding: 2rem; + background: #fff; + box-shadow: 0 0 10px rgba(0,0,0,0.1); + border-radius: 8px; +} + +/* Заголовок */ +.woocommerce-order h2.woocommerce-order-details__title, +.woocommerce-order h2.woocommerce-column__title { + color: #333; + border-bottom: 2px solid #eee; + padding-bottom: 10px; +} + +/* Детали заказа */ +.woocommerce-order-overview { + display: flex; + flex-wrap: wrap; + gap: 1rem; + margin-bottom: 2rem; +} + +.woocommerce-order-overview li { + flex: 1; + min-width: 200px; + background: #f9f9f9; + padding: 1rem; + border-radius: 4px; +} + +/* Кнопка "Вернуться в магазин" */ +.woocommerce-button.button.wc-backward { + background: #4CAF50; + color: white; + padding: 10px 20px; + border-radius: 4px; + text-decoration: none; + display: inline-block; + margin-top: 20px; +} + +.woocommerce-button.button.wc-backward:hover { + background: #3e8e41; +} + + +@media (max-width: 768px) { + .woocommerce-order { + padding: 1rem; + margin: 1rem; + } + + .woocommerce-order-overview li { + min-width: 100%; + } + + .woocommerce-order-details, + .woocommerce-customer-details { + margin-top: 1rem; + } +} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/static/assets/js/telegram-auth.js b/wp-content/themes/cosmopet/static/assets/js/telegram-auth.js new file mode 100644 index 0000000..41b8512 --- /dev/null +++ b/wp-content/themes/cosmopet/static/assets/js/telegram-auth.js @@ -0,0 +1,55 @@ +jQuery(document).ready(function($) { + window.onTelegramAuth = function(user) { + $.ajax({ + type: 'POST', + url: telegram_auth_params.ajax_url, + data: { + action: 'ontelegramauth', + userid: user.id, + username: user.username || '', + fname: user.first_name || '', + lname: user.last_name || '', + photo_url: user.photo_url || '', + auth_date: user.auth_date, + hash: user.hash + }, + success: function(response) { + if (response.success) { + window.location.href = telegram_auth_params.my_account_url; + } else { + alert(telegram_auth_params.i18n_error + ': ' + (response.data.message || 'Unknown error')); + } + }, + error: function() { + alert(telegram_auth_params.i18n_error); + } + }); + }; + + window.linkTelegram = function(user) { + $.ajax({ + type: 'POST', + url: telegram_auth_params.ajax_url, + data: { + action: 'linktelegram', + userid: user.id, + username: user.username || '', + fname: user.first_name || '', + lname: user.last_name || '', + photo_url: user.photo_url || '', + auth_date: user.auth_date, + hash: user.hash + }, + success: function(response) { + if (response.success) { + $('.cabinet-accounts').html(''); + } else { + alert(telegram_auth_params.i18n_error_link + ': ' + (response.data.message || 'Unknown error')); + } + }, + error: function() { + alert(telegram_auth_params.i18n_error_link); + } + }); + }; +}); \ No newline at end of file diff --git a/wp-content/themes/cosmopet/static/img/pet/mini-cat.png b/wp-content/themes/cosmopet/static/img/pet/mini-cat.png new file mode 100644 index 0000000..49233dd Binary files /dev/null and b/wp-content/themes/cosmopet/static/img/pet/mini-cat.png differ diff --git a/wp-content/themes/cosmopet/templates/modal/basket.twig b/wp-content/themes/cosmopet/templates/modal/basket.twig index 4fb1488..b19d3c4 100644 --- a/wp-content/themes/cosmopet/templates/modal/basket.twig +++ b/wp-content/themes/cosmopet/templates/modal/basket.twig @@ -15,33 +15,30 @@ - {% if not fn('WC').cart.is_empty %} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/modal/login.twig b/wp-content/themes/cosmopet/templates/modal/login.twig new file mode 100644 index 0000000..92573b6 --- /dev/null +++ b/wp-content/themes/cosmopet/templates/modal/login.twig @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/profile/profile-base.twig b/wp-content/themes/cosmopet/templates/profile/profile-base.twig new file mode 100644 index 0000000..45e31c5 --- /dev/null +++ b/wp-content/themes/cosmopet/templates/profile/profile-base.twig @@ -0,0 +1,611 @@ +
+
+
+

+ {{ function('pll_e', 'Feed subscription') }} +

+
+

{{ function('pll_e', 'Weekly food delivery for your pet') }}

+
+
+ +
+
+
+ + + +
+
+ + +
+
+
+

+ {% if first_name or last_name %} + {{ first_name }} {{ last_name }} + {% else %} + {{ function('pll_e', 'Name is not set') }} + {% endif %} +

+
+ +
+

{{ function('pll_e', 'Phone') }}:

+

+ {% if phone %} + {{ phone }} + {% else %} + {{ function('pll_e', 'Not filled') }} + {% endif %} +

+
+ +
+

{{ function('pll_e', 'Email') }}:

+ {% if email %} +

{{ email }}

+ {% if activated %} +

{{ function('pll_e', 'Email is verified') }}

+ {% else %} +

{{ function('pll_e', 'Email is not verified') }}

+ + {% if uuid %} +

{{ function('pll_e', 'Email with verification link is sent to your email.') }}

+ {% endif %} + {% endif %} + {% else %} +
+ +
+ {% endif %} +
+ +
+

{{ function('pll_e', 'Linked accounts') }}:

+

+ {% if tg_account %} + + + + + + + + + {% else %} + + {% endif %} +

+
+ +
+
+ + {{ function('pll_e', 'Logout') }} +
+
+
+
+ + {% if pets %} + {% for pet in pets %} + {% include 'pet-card.twig' with { 'item': pet } %} + {% endfor %} + {% endif %} + +
+
+ +
+
+
+ + + {% block profile_content %} + + {% endblock %} + + +
+ + + + + +
+ +
+ +
+ +
+
+ +
\ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/profile/profile-orders.twig b/wp-content/themes/cosmopet/templates/profile/profile-orders.twig new file mode 100644 index 0000000..791538a --- /dev/null +++ b/wp-content/themes/cosmopet/templates/profile/profile-orders.twig @@ -0,0 +1,106 @@ +{% extends 'profile/profile-base.twig' %} + +{% block profile_content%} +
+
+
+

{{ function('pll_e', 'Feed subscription') }}

+
+

{{ function('pll_e', 'Weekly food delivery for your pet') }}

+
+
+ +
+
+
+ {% if customer_orders %} + {% for order in customer_orders %} + {% set meta_data = order.meta_data.order_data %} + {% set shipping_address = order.get_address('shipping') %} +
+
+
+
+
+

{{ function('pll_e', 'Order from') }} {{ order.date_created|date('Y.m.d') }}

+

{{ order.id }}

+
+
+

{{ function('pll_e', 'Summary') }}:

+

{{ order.get_total() }}

+
+
+
+
+ {% set order_track = meta_data.order_number|default('') %} +
+
+
+

{{ function('pll_e', 'Delivery address') }}

+

+ {% if meta_data.office_code %} + {{ function('pll_e', 'CDEK shipping point') }}
+ {{ office_name }} + {% else %} + {{ shipping_address.city }} {{ shipping_address.address_1 }} + {% endif %} +

+
+
+
+ {% for item in order.get_items %} + {% set product = item.get_product %} + {% set thumbnail = product ? function('wp_get_attachment_image_url', product.get_image_id(), 'woocommerce_thumbnail') : function('wc_placeholder_img_src', 'woocommerce_thumbnail') %} +
+ +
+
+

{{ item.name }}

+
+

{{ item.quantity }}

+

{{ item.total }} {{ function('get_woocommerce_currency_symbol', code) }}

+
+
+ {% endfor %} +
+ +
+
+
+ +
+
+ {% for item in order.get_items %} + {% set product = item.get_product %} + {% set thumbnail = product ? function('wp_get_attachment_image_url', product.get_image_id(), 'woocommerce_thumbnail') : function('wc_placeholder_img_src', 'woocommerce_thumbnail') %} + {% if thumbnail %} + + {% endif %} + {% endfor %} +
+
+
+
+
+ {% endfor %} + {% else %} +
+
+

{{ function('pll_e', 'No orders yet') }}

+
+ +
+ {% endif %} +
+ +{% endblock %} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/profile/profile-subs-single.twig b/wp-content/themes/cosmopet/templates/profile/profile-subs-single.twig new file mode 100644 index 0000000..ff1f0ee --- /dev/null +++ b/wp-content/themes/cosmopet/templates/profile/profile-subs-single.twig @@ -0,0 +1,133 @@ +{% extends 'profile/profile-base.twig' %} + +{% block profile_content %} + +
+ {% if subscription %} +
+
+
+
+
+

+ {{ fn('pll_e', 'Подписка №') }} {{ subscription.id }} +

+
+
+
+ +
+
+

{{ fn('pll_e', 'Статус') }}

+

{{ subscription.status | capitalize }}

+
+
+

{{ fn('pll_e', 'Дата подписки') }}

+

{{ subscription.date_created | date('d.m.Y') }}

+
+
+

{{ fn('pll_e', 'Дата последнего заказа') }}

+

{{ subscription.last_order_date | date('d.m.Y') }}

+
+
+

{{ fn('pll_e', 'Следующий платеж') }}

+

{{ subscription.next_payment_date | date('d.m.Y')}}

+
+
+

{{ fn('pll_e', 'Способ оплаты') }}

+

{{ subscription.payment_method_title}}

+
+
+
+
+

{{ fn('pll_e', 'Товары:') }}

+
+
+ {% for item in subscription.items %} + {% set product = item.product %} + {% set image_id = product.image_id %} + {% set product_permalink = product.id ? fn('get_permalink', product.id) : '' %} + {# Debug: Display product ID and permalink for testing #} + +
+ {% if product.id and product_permalink and product_permalink != fn('get_permalink', fn('get_the_ID')) %} + + {{ product.name }} + + {% else %} + {{ product.name }} + {% endif %} +
+

{{ product.name }}

+

{{ product.variation_details | default('') }}

+
+
+

{{ item.quantity }}

+

{{ item.total }}

+
+
+ {% endfor %} +
+
+
+
+

{{ fn('pll_e', 'Сумма') }}

+

{{ subscription.total }} {{ subscription.currency }} / {{ fn('pll_e', 'месяц') }}

+
+
+

{{ fn('pll_e', 'Доставка') }}

+

{{ fn('pll_e', 'Бесплатно') }}

+
+
+

{{ fn('pll_e', 'Итого') }}

+

{{ subscription.total }} {{ subscription.currency }} / {{ fn('pll_e', 'месяц') }}

+
+
+
+
+

{{ fn('pll_e', 'Доставка:') }}

+
+
+
+ + + + + + +
+
+
+
+
+ + +

{{ fn('pll_e', 'Отменить подписку') }}

+
+
+
+ {% else %} +
+

{{ fn('pll_e', 'Подписка не найдена.') }}

+
+ {% endif %} +
+{% endblock %} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/profile/profile-subs.twig b/wp-content/themes/cosmopet/templates/profile/profile-subs.twig new file mode 100644 index 0000000..99e0427 --- /dev/null +++ b/wp-content/themes/cosmopet/templates/profile/profile-subs.twig @@ -0,0 +1,78 @@ +{% extends 'profile/profile-base.twig' %} + +{% block profile_content %} +
+ {% for subscription in subscriptions %} +
+
+
+
+
+

+ {% if subscription.view_url %} + {{ fn('pll_e', 'Подписка от') }} {{ subscription.date_created | date('d.m.Y') }} + {% else %} + {{ fn('pll_e', 'Подписка от') }} {{ subscription.date_created | date('d.m.Y') }} + {% endif %} +

+

+ {{ subscription.id }} +

+
+
+

{{ fn('pll_e', 'Сумма:') }}

+

+ {{ subscription.total }} {{ subscription.currency }} / {{ subscription.billing_period }} +

+
+
+ +
+
+

+ {{ fn('pll_e', 'Следующий платеж:') }} +

+

+ {{ subscription.next_payment_date | date('d.m.Y') }} +

+
+ + +
+ +
+ {% for item in subscription.items %} + {% set product = item.product %} + {% set image_id = product.image_id %} + {% if product.permalink %} + + {{ product.name }} + + {% else %} + {{ product.name }} + {% endif %} + {% endfor %} +
+ +
+
+
+ {% else %} +

{{ fn('pll_e', 'У вас нет активных подписок.') }}

+ {% endfor %} +
+{% endblock %} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/profile/profile.twig b/wp-content/themes/cosmopet/templates/profile/profile.twig new file mode 100644 index 0000000..cdbff07 --- /dev/null +++ b/wp-content/themes/cosmopet/templates/profile/profile.twig @@ -0,0 +1,414 @@ +{% set profile_pg = 1 %} + +{% extends 'profile/profile-base.twig' %} + +{% block profile_content%} +
+
+
+

{{ function('pll_e', 'Feed subscription') }}

+
+

{{ function('pll_e', 'Weekly food delivery for your pet') }}

+
+
+ +
+
+
+ {% if customer_orders %} + {% for order in customer_orders %} + {% set meta_data = order.meta_data.order_data %} + {% set shipping_address = order.get_address('shipping') %} +
+
+
+
+
+

{{ function('pll_e', 'Order from') }} {{ order.date_created|date('Y.m.d') }}

+

{{ order.id }}

+
+
+

{{ function('pll_e', 'Summary') }}:

+

{{ order.get_total() }}

+
+
+
+
+ {% set order_track = meta_data.order_number|default('') %} +
+
+
+

{{ function('pll_e', 'Delivery address') }}

+

+ {% if meta_data.office_code %} + {{ function('pll_e', 'CDEK shipping point') }}
+ {{ office_name }} + {% else %} + {{ shipping_address.city }} {{ shipping_address.address_1 }} + {% endif %} +

+
+
+
+ {% for item in order.get_items %} + {% set product = item.get_product %} + {% set thumbnail = product ? function('wp_get_attachment_image_url', product.get_image_id(), 'woocommerce_thumbnail') : function('wc_placeholder_img_src', 'woocommerce_thumbnail') %} +
+ +
+
+

{{ item.name }}

+
+

{{ item.quantity }}

+

{{ item.total }} {{ function('get_woocommerce_currency_symbol', code) }}

+
+
+ {% endfor %} +
+ +
+
+
+ +
+
+ {% for item in order.get_items %} + {% set product = item.get_product %} + {% set thumbnail = product ? function('wp_get_attachment_image_url', product.get_image_id(), 'woocommerce_thumbnail') : function('wc_placeholder_img_src', 'woocommerce_thumbnail') %} + {% if thumbnail %} + + {% endif %} + {% endfor %} +
+
+
+
+
+ {% endfor %} + {% else %} +
+
+

{{ function('pll_e', 'No orders yet') }}

+
+ +
+ {% endif %} +
+ + +{% endblock %} + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ diff --git a/wp-content/themes/cosmopet/templates/profile/template-profile.php b/wp-content/themes/cosmopet/templates/profile/template-profile.php new file mode 100644 index 0000000..e69de29 diff --git a/wp-content/themes/cosmopet/templates/where_to_buy/template_wtb.php b/wp-content/themes/cosmopet/templates/where_to_buy/template_wtb.php new file mode 100644 index 0000000..f341475 --- /dev/null +++ b/wp-content/themes/cosmopet/templates/where_to_buy/template_wtb.php @@ -0,0 +1,502 @@ + + +
+ +
+ + +
+
+

Where to Buy

+

Looking for Cosmopet products in stores? You can find our premium pet treats in select pet shops and retail stores across the UAE.

+
+
+ +
+ + +
+
+
+ + + + + +
+

+ +
+
+

📍 Find us at:

+
    + +
  • +

    + + + + + + +

    +

    +
  • + +
+
+
+ + + + + + +
+ + +
+

Our partners

+
+
+ +
+ + <?php echo esc_attr($image['alt']); ?> + +
+ +
+
+
+ + + +
+ +
+
+ +

Want to sell Cosmopet in your store?

+

Join our growing network of retailers! Fill out the contact form below, and we’ll get in touch to discuss the details.

+
+ + + + + + + + + +
+
+

Thanks for request!

+

We will answer your message as soon as possible

+ +
+ + + +
+
+ + +
+
+ + diff --git a/wp-content/themes/cosmopet/templates/where_to_buy/wtb.twig b/wp-content/themes/cosmopet/templates/where_to_buy/wtb.twig new file mode 100644 index 0000000..e69de29 diff --git a/wp-content/themes/cosmopet/woocommerce/assets/js/gp-main.js b/wp-content/themes/cosmopet/woocommerce/assets/js/gp-main.js index e011909..438dc06 100644 --- a/wp-content/themes/cosmopet/woocommerce/assets/js/gp-main.js +++ b/wp-content/themes/cosmopet/woocommerce/assets/js/gp-main.js @@ -138,26 +138,25 @@ toggleHeader('#phone-menu','.header__menu-block','.header__phone-menu', '.white' // 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 -let modal = document.querySelector('.modal'); - -modal.onclick = function (event) { +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'), - body = document.querySelector('body'); - - aside.style.width = '0px'; - body.classList.remove('overflow-hidden'); - setTimeout(() => { - modalItem.style.cssText = ''; - modalItem.classList.remove('active'); - target.classList.remove('active'); - }, 300); + modalItem = target.querySelector('.modal__item.active'); + + aside.style.width = '0px'; + setTimeout(() => { + modalItem.style.cssText = ''; + modalItem.classList.remove('active'); + target.classList.remove('active'); + }, 300); } } @@ -195,7 +194,7 @@ radioButtons.forEach(radioBlock => { }) // radio-button -overlay + let products = document.querySelectorAll('.product__item'); products.forEach(productItem => { @@ -222,7 +221,7 @@ products.forEach(productItem => { } }) -overlay + // select diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php b/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php index b341ab6..9eb87d3 100644 --- a/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php +++ b/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php @@ -70,7 +70,7 @@ $calculator_text = ''; + ?>₽

diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/order-receipt.php b/wp-content/themes/cosmopet/woocommerce/checkout/order-receipt.php index 74b628f..9a93632 100644 --- a/wp-content/themes/cosmopet/woocommerce/checkout/order-receipt.php +++ b/wp-content/themes/cosmopet/woocommerce/checkout/order-receipt.php @@ -1,19 +1,46 @@ -// Get Timber context -$context = Timber::context(); + +get_payment_method(), $order->get_id() ); ?> -// Render the Twig template -Timber::render('shop/review-order.twig', $context); \ No newline at end of file +
diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/thankyou copy.php b/wp-content/themes/cosmopet/woocommerce/checkout/thankyou copy.php deleted file mode 100644 index 53d5191..0000000 --- a/wp-content/themes/cosmopet/woocommerce/checkout/thankyou copy.php +++ /dev/null @@ -1,90 +0,0 @@ - - -
- - get_id() ); - ?> - - has_status( 'failed' ) ) : ?> - -

- -

- - - - -

- - - - $order ) ); ?> - - - - - - get_payment_method(), $order->get_id() ); ?> - get_id() ); ?> - - - - false ) ); ?> - - - -
diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/thankyou.php b/wp-content/themes/cosmopet/woocommerce/checkout/thankyou.php deleted file mode 100644 index 6019893..0000000 --- a/wp-content/themes/cosmopet/woocommerce/checkout/thankyou.php +++ /dev/null @@ -1,108 +0,0 @@ - - -
- - - - get_id() ); ?> - - has_status( 'failed' ) ) : ?> - -

- -

- - - - -

- - - -
- - - - - -
- - - - -

- - - - - - - - - get_payment_method(), $order->get_id() ); ?> - get_id() ); ?> - - - - -

- - - -
diff --git a/wp-content/themes/cosmopet/woocommerce/myaccount/form-login.php b/wp-content/themes/cosmopet/woocommerce/myaccount/form-login.php new file mode 100644 index 0000000..c31c856 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/myaccount/form-login.php @@ -0,0 +1,119 @@ + + + + +
+ +
+ + + +

+ + + + + +
+ +
+ +

+ +
> + + + + + +

+ + +

+ + + +

+ + +

+ + + +

+ + +

+ + + +

+ + + + + +

+ + +

+ + + +
+ +
+ +
+ + + diff --git a/wp-content/themes/cosmopet/woocommerce/myaccount/my-account.php b/wp-content/themes/cosmopet/woocommerce/myaccount/my-account.php new file mode 100644 index 0000000..9cac5cd --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/myaccount/my-account.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/myaccount/my-address.php b/wp-content/themes/cosmopet/woocommerce/myaccount/my-address.php new file mode 100644 index 0000000..5bd5a97 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/myaccount/my-address.php @@ -0,0 +1,93 @@ + __( 'Billing address', 'woocommerce' ), + 'shipping' => __( 'Shipping address', 'woocommerce' ), + ), + $customer_id + ); +} else { + $get_addresses = apply_filters( + 'woocommerce_my_account_get_addresses', + array( + 'billing' => __( 'Billing address', 'woocommerce' ), + ), + $customer_id + ); +} + +$oldcol = 1; +$col = 1; +?> + +

+ +

+ + +
+ + + $address_title ) : ?> + + +
+
+

+ + + +
+
+ +
+
+ + + + +
+