dev_10_fixes #20

Merged
Andrei-10 merged 5 commits from dev_10_fixes into master 3 months ago
  1. 1748
      wp-content/themes/cosmopet/composer-setup.php
  2. 171
      wp-content/themes/cosmopet/functions.php
  3. 1
      wp-content/themes/cosmopet/home.php
  4. 46
      wp-content/themes/cosmopet/modules/footer/assets/css/gp-style-desktop.css
  5. 1014
      wp-content/themes/cosmopet/modules/footer/assets/js/footer.js
  6. 174
      wp-content/themes/cosmopet/modules/footer/module-controller.php
  7. 10
      wp-content/themes/cosmopet/modules/forms/assets/js/form.js
  8. 213
      wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-core.css
  9. 852
      wp-content/themes/cosmopet/modules/profile/assets/css/profile.css
  10. BIN
      wp-content/themes/cosmopet/modules/profile/assets/img/modal/about_slider.png
  11. BIN
      wp-content/themes/cosmopet/modules/profile/assets/img/pet/cat.png
  12. BIN
      wp-content/themes/cosmopet/modules/profile/assets/img/pet/dog.png
  13. BIN
      wp-content/themes/cosmopet/modules/profile/assets/img/pet/mini-cat.png
  14. BIN
      wp-content/themes/cosmopet/modules/profile/assets/img/pet/mini-dog.png
  15. BIN
      wp-content/themes/cosmopet/modules/profile/assets/img/product/image.png
  16. BIN
      wp-content/themes/cosmopet/modules/profile/assets/img/product/mini-card.png
  17. 13
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/country/ar.svg
  18. 13
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/country/ru.svg
  19. 4
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-black.svg
  20. 18
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-gradient.svg
  21. 4
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/logo/logo-white.svg
  22. 5
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-back.svg
  23. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-black.svg
  24. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-breadcrumbs-black.svg
  25. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-breadcrumbs.svg
  26. 5
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-left.svg
  27. 5
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-right.svg
  28. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-selected-white.svg
  29. 11
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/arrow-selected.svg
  30. 13
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/basket.svg
  31. 11
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/black-x.svg
  32. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/change-dot.svg
  33. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/filter.svg
  34. 6
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/google-white.svg
  35. 11
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/gradient-x.svg
  36. 10
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/minus.svg
  37. 11
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/plus-grey.svg
  38. 11
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/plus.svg
  39. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/question.svg
  40. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/status-cancelled.svg
  41. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/status-chek.svg
  42. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/triangle-grey.svg
  43. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/vk-white.svg
  44. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/white-x.svg
  45. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/main/ya-white.svg
  46. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/basket-w.svg
  47. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/basket.svg
  48. 4
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/profile-w.svg
  49. 4
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/mini-profile/profile.svg
  50. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/tg.svg
  51. 3
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/vk.svg
  52. 6
      wp-content/themes/cosmopet/modules/profile/assets/img/svg/social-media/ya.svg
  53. 300
      wp-content/themes/cosmopet/modules/profile/assets/js/profile.js
  54. 188
      wp-content/themes/cosmopet/modules/profile/components/profile/component-controller.php
  55. 133
      wp-content/themes/cosmopet/modules/profile/module-ajax-controller.php
  56. 178
      wp-content/themes/cosmopet/modules/profile/module-controller.php
  57. 7
      wp-content/themes/cosmopet/page.php
  58. 58
      wp-content/themes/cosmopet/static/front-page/js/main.js
  59. 839
      wp-content/themes/cosmopet/templates/blog/blog-page.twig
  60. 33
      wp-content/themes/cosmopet/templates/blog/most-read.twig
  61. 187
      wp-content/themes/cosmopet/templates/footer.twig
  62. 13
      wp-content/themes/cosmopet/templates/header.twig
  63. 1
      wp-content/themes/cosmopet/templates/page.twig
  64. 537
      wp-content/themes/cosmopet/templates/profile/profile.twig
  65. 0
      wp-content/themes/cosmopet/templates/profile/template-profile.php
  66. 119
      wp-content/themes/cosmopet/woocommerce/myaccount/form-login.php
  67. 4
      wp-content/themes/cosmopet/woocommerce/myaccount/my-account.php
  68. 93
      wp-content/themes/cosmopet/woocommerce/myaccount/my-address.php

File diff suppressed because it is too large Load Diff

@ -426,6 +426,7 @@ require_once('modules/forms/module-ajax-controller.php');
require_once('modules/shop/module-ajax-controller.php'); require_once('modules/shop/module-ajax-controller.php');
add_action('wp', 'my_custom_checkout_code'); add_action('wp', 'my_custom_checkout_code');
function my_custom_checkout_code() { function my_custom_checkout_code() {
if (function_exists('is_checkout') && is_checkout() && !is_order_received_page()) { if (function_exists('is_checkout') && is_checkout() && !is_order_received_page()) {
@ -448,6 +449,8 @@ function disable_woocommerce_css() {
wp_dequeue_style('woocommerce_chosen_styles'); wp_dequeue_style('woocommerce_chosen_styles');
wp_dequeue_style('woocommerce_prettyPhoto_css'); wp_dequeue_style('woocommerce_prettyPhoto_css');
} }
class WooProduct extends Timber\Post { class WooProduct extends Timber\Post {
protected $wc_product; protected $wc_product;
@ -617,6 +620,173 @@ register_sidebar( array(
) ); ) );
// Define encryption secret key
define('SECRET', 'fT54ehYtt87@q1A');
/**
* Email Validation
* Validates the format of the provided email via AJAX.
*/
add_action('wp_ajax_email_validate', 'email_validate');
add_action('wp_ajax_nopriv_email_validate', 'email_validate');
function email_validate() {
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
header("Content-Type: application/json");
echo json_encode(array(
'status' => 'error',
'text' => esc_html__('Invalid email format', 'woodmart')
));
}
wp_die();
}
/**
* Send Verification Code
* Generates a random code, encrypts it, stores it in a cookie, and sends it via email.
*/
add_action('wp_ajax_send_code', 'send_code');
add_action('wp_ajax_nopriv_send_code', 'send_code');
function send_code() {
$email = $_POST['email'];
// Generate a random 4-digit code
$string = rand(1234, 9999);
$ciphering = "AES-128-CTR";
$options = 0;
$iv = '1234567891011121';
$encryption = openssl_encrypt($string, $ciphering, SECRET, $options, $iv);
// Store encrypted code in a cookie for 5 minutes
setcookie('login_code', $encryption, time() + 60 * 5, '/');
// Prepare email content based on language
if (function_exists('pll_current_language') && pll_current_language() === 'ru') {
$subject = "Проверочный код Cosmopet -" . $string;
$message = "Привет, это Cosmopet.\n
Держите проверочный код!\n
" . $string;
} else {
$subject = "Cosmopet Verification Code -" . $string;
$message = "Hello, this is CosmoPet.\n
Here's your verification code!\n
" . $string;
}
// Remove email filters for consistent sending
remove_all_filters('wp_mail_from');
remove_all_filters('wp_mail_from_name');
$headers = array(
'From: Cosmopet <pro@cosmopet.shop>',
'content-type: text/html; charset=utf-8',
);
// Send email
wp_mail($email, $subject, $message, $headers);
wp_die();
}
/**
* Check Verification Code
* Validates the user-entered code, logs in or registers the user.
*/
add_action('wp_ajax_check_code', 'check_code');
add_action('wp_ajax_nopriv_check_code', 'check_code');
function check_code() {
header("Content-Type: application/json");
$code = $_POST['code'];
$email = $_POST['email'];
// Generate a random 12-character password
$alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@#!()';
$pass = array();
$alphaLength = strlen($alphabet) - 1;
for ($i = 0; $i < 12; $i++) {
$n = rand(0, $alphaLength);
$pass[] = $alphabet[$n];
}
$pass = implode($pass);
// Check if verification code cookie exists
if (isset($_COOKIE['login_code'])) {
$string = $_COOKIE['login_code'];
$ciphering = "AES-128-CTR";
$options = 0;
$iv = '1234567891011121';
$decryption = openssl_decrypt($string, $ciphering, SECRET, $options, $iv);
if ($decryption === $code) {
if (email_exists($email)) {
// Log in existing user
$user_id = get_user_by('login', $email)->ID;
if (empty($user_id)) {
$user_id = get_user_by('email', $email)->ID;
}
wp_set_password($pass, $user_id);
wp_signon(
array(
'user_login' => $email,
'user_password' => $pass,
'remember' => 'on',
)
);
echo json_encode(array(
'status' => 'success_auth'
));
if (function_exists('update_field')) {
update_field('activated', true, 'user_' . $user_id); // Requires ACF
}
exit();
} else {
// Register new user
$user_id = wp_create_user($email, $pass, $email);
wp_update_user([
'ID' => $user_id,
'user_email' => $email
]);
wp_set_auth_cookie($user_id, true);
echo json_encode(array(
'status' => 'success_reg'
));
if (function_exists('update_field')) {
update_field('activated', true, 'user_' . $user_id); // Requires ACF
}
exit();
}
} else {
echo json_encode(array(
'status' => 'error',
'text' => esc_html__('Invalid code', 'woodmart')
));
exit();
}
} else {
echo json_encode(array(
'status' => 'error',
'text' => esc_html__('The code hasexpired', 'woodmart')
));
exit();
}
wp_die();
}
/**
* Logout Redirect
* Redirects to the homepage after user logout.
*/
add_action('wp_logout', 'logout_redirect');
function logout_redirect() {
wp_redirect('/');
exit();
}
add_filter( 'woocommerce_price_trim_zeros', '__return_true' ); add_filter( 'woocommerce_price_trim_zeros', '__return_true' );
function add_comment_like() { function add_comment_like() {
@ -979,4 +1149,5 @@ function change_wbw_filter_button_text($text) {
add_filter('wbw_filter_reset_button_text', 'change_wbw_reset_button_text'); add_filter('wbw_filter_reset_button_text', 'change_wbw_reset_button_text');
function change_wbw_reset_button_text($text) { function change_wbw_reset_button_text($text) {
return 'Сбросить'; return 'Сбросить';
} }

@ -1,4 +1,5 @@
<?php <?php
include_module('blog'); include_module('blog');
include_component('blog', 'archive'); include_component('blog', 'archive');

@ -151,8 +151,52 @@
text-decoration: underline; text-decoration: underline;
} }
/* Footer end */ /* Footer end */
.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__login {
width: 412px;
}
.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;
}
.login_wrap {
height: 100%;
}
.social-media__icon { .social-media__icon {
width: 32px; width: 32px;
aspect-ratio: 1; aspect-ratio: 1;
} }

@ -9,6 +9,180 @@ add_filter('timber/context', function($context) {
return $context; return $context;
}); });
define('BOT_USERNAME', 'cosmopetbot_bot');
function getTelegramUserData() {
if (isset($_COOKIE['tg_user'])) {
$auth_data_json = urldecode($_COOKIE['tg_user']);
$auth_data = json_decode($auth_data_json, true);
return $auth_data;
}
return false;
}
/*
if ($_GET['logout']) {
setcookie('tg_user', '');
header('Location: login.php');
}
*/
function tgWidget() {
$tg_user = getTelegramUserData();
if ($tg_user !== false) {
$first_name = htmlspecialchars($tg_user['first_name']);
$last_name = htmlspecialchars($tg_user['last_name']);
if (isset($tg_user['username'])) {
$username = htmlspecialchars($tg_user['username']);
$html = "<h1>Hello, <a href=\"https://t.me/{$username}\">{$first_name} {$last_name}</a>!</h1>";
} else {
$html = "<h1>Hello, {$first_name} {$last_name}!</h1>";
}
if (isset($tg_user['photo_url'])) {
$photo_url = htmlspecialchars($tg_user['photo_url']);
$html .= "<img src=\"{$photo_url}\">";
}
$html .= "<p><a href=\"?logout=1\">Log out</a></p>";
} else {
$bot_username = BOT_USERNAME;
$html = '<script async src="https://telegram.org/js/telegram-widget.js?2" data-telegram-login="'.$bot_username.'" data-size="large" data-onauth="onTelegramAuth(user)"></script>';
}
if(!is_user_logged_in()) {
echo $html;
}
}
add_action( 'wp_ajax_ontelegramauth', 'onTelegramAuth' );
add_action( 'wp_ajax_nopriv_ontelegramauth', 'onTelegramAuth' );
function onTelegramAuth(){
$tg_id = $_POST['userid'];
$tg_username = $_POST['username'];
$user = get_users(
array(
'meta_key' => 'tg_account',
'meta_value' => $tg_id
)
);
// $user = get_users(
// array(
// 'meta_key' => 'tg_username',
// 'meta_value' => $tg_username
// )
// );
// Генерация пароля
$alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@#!()';
$pass = array();
$alphaLength = strlen($alphabet) - 1;
for ($i = 0; $i < 12; $i++) {
$n = rand(0, $alphaLength);
$pass[] = $alphabet[$n];
}
$pass = implode($pass);
if($user) {
$user_login = $user[0]->data->user_login;
$user_id = get_user_by( 'login', $user_login )->ID;
wp_set_password( $pass, get_user_by( 'login', $user_login )->ID );
wp_signon(
array(
'user_login' => $user_login,
'user_password' => $pass,
'remember' => 'on',
)
);
} else {
$user_id = wp_create_user( $tg_username, $pass, '');
add_user_meta( $user_id, 'tg_account', $tg_id);
add_user_meta( $user_id, 'tg_username', $tg_username);
wp_update_user( [
'ID' => $user_id,
'first_name' => $_POST['fname'],
'last_name' => $_POST['lname']
] );
wp_set_auth_cookie( $user_id, true );
}
}
add_action( 'wp_ajax_linktelegram', 'linkTelegram' );
add_action( 'wp_ajax_nopriv_linktelegram', 'linkTelegram' );
function linkTelegram(){
$tg_id = $_POST['userid'];
$user_id = get_current_user_id();
add_user_meta( $user_id, 'tg_account', $tg_id);
wp_update_user( [
'ID' => $user_id,
'first_name' => $_POST['fname'],
'last_name' => $_POST['lname']
] );
}
add_action( 'wp_ajax_email_link', 'emailLink' );
add_action( 'wp_ajax_nopriv_email_link', 'emailLink' );
function emailLink(){
$email = $_POST['email'];
$user_id = get_current_user_id();
if(email_exists($email)){
header("Content-Type: application/json");
echo json_encode(array(
'error' => esc_html__( 'Email is already registered', 'woodmart' )
));
exit();
} else {
wp_update_user( [
'ID' => $user_id,
'user_email' => $email
] );
}
}
// Добавляем колонку Telegram в список пользователей
add_filter('manage_users_columns', 'add_tg_account_column');
function add_tg_account_column($columns) {
$columns['tg_username'] = 'Telegram';
return $columns;
}
// Заполняем колонку данными
add_filter('manage_users_custom_column', 'add_tg_account_column_content', 10, 3);
function add_tg_account_column_content($value, $column_name, $user_id) {
if ('tg_username' == $column_name) {
$tg_account = get_user_meta($user_id, 'tg_username', true);
if ($tg_account) {
return '<a href="https://t.me/"' . esc_attr($tg_account) . '" target="_blank">@' . esc_html($tg_account) . '</a>';
}
return '<span style="color:#ccc;">не указан</span>';
}
return $value;
}
// Делаем колонку сортируемой
add_filter('manage_users_sortable_columns', 'make_tg_account_column_sortable');
function make_tg_account_column_sortable($columns) {
$columns['tg_username'] = 'tg_username';
return $columns;
}
// Обрабатываем сортировку
add_action('pre_get_users', 'handle_tg_account_sorting');
function handle_tg_account_sorting($query) {
if (!is_admin() || !$query->is_main_query()) {
return;
}
if ('tg_username' === $query->get('orderby')) {
$query->set('meta_key', 'tg_username');
$query->set('orderby', 'meta_value');
}
}
?> ?>

@ -1,9 +1,13 @@
// Функция для показа модальных окон // Функция для показа модальных окон
function showModal(modalClass) { function showModal(modalClass) {
const modal = document.querySelector('.' + modalClass); const modal = document.querySelector('.' + modalClass);
if (modal) { if (modal) {
modal.style.display = 'flex'; modal.style.display = 'flex';
} }
}
// Функция для закрытия модальных окон // Функция для закрытия модальных окон
function closeModals() { function closeModals() {
@ -25,6 +29,7 @@ function showModal(modalClass) {
// Закрытие при клике вне контента // Закрытие при клике вне контента
window.addEventListener('click', function(event) { window.addEventListener('click', function(event) {
const modals = document.querySelectorAll('.mform'); const modals = document.querySelectorAll('.mform');
modals.forEach(modal => { modals.forEach(modal => {
if (event.target === modal) { if (event.target === modal) {
@ -42,10 +47,10 @@ function showModal(modalClass) {
modal.style.display = 'none'; modal.style.display = 'none';
} }
}); });
});
}); });
jQuery(document).ready(function($) { jQuery(document).ready(function($) {
$('.form-process').submit(function(event) { $('.form-process').submit(function(event) {
event.preventDefault(); event.preventDefault();
@ -63,6 +68,7 @@ jQuery(document).ready(function($) {
success: function(response) { success: function(response) {
closeModals() closeModals()
showModal('mform-success') showModal('mform-success')
} }
}); });
} }
@ -134,4 +140,4 @@ const localeValue = metaLocale.getAttribute('content');
errorMessages.forEach(errorMessage => { errorMessages.forEach(errorMessage => {
errorMessage.remove(); errorMessage.remove();
}); });
} }

@ -271,6 +271,7 @@ textarea{
} }
} }
.mform { .mform {
position: fixed; position: fixed;
top: 0; top: 0;
@ -284,7 +285,9 @@ textarea{
z-index: 1000; z-index: 1000;
} }
.mform-content { .mform-content {
position: relative; position: relative;
width: 100%; width: 100%;
max-width: 600px; max-width: 600px;
@ -331,7 +334,9 @@ textarea{
color: #000; color: #000;
} }
.mform-title { .mform-title {
font-size: 32px; font-size: 32px;
font-weight: bold; font-weight: bold;
margin-bottom: 10px; margin-bottom: 10px;
@ -340,16 +345,18 @@ textarea{
/* Стили для второго модального окна - Предложить статью */ /* Стили для второго модального окна - Предложить статью */
.mform-offer .mform-content { .mform-offer .mform-content {
background-color: #d6ff9f; background-color: #d6ff9f;
padding-bottom: 30px; padding-bottom: 30px;
} }
.mform-subtitle { .mform-subtitle {
font-size: 18px; font-size: 18px;
margin-bottom: 20px; margin-bottom: 20px;
} }
.mform-form { .modal-form {
width: 100%; width: 100%;
} }
@ -371,6 +378,16 @@ textarea{
width: 100%; width: 100%;
max-width: 380px; max-width: 380px;
} }
.modal-offer input, textarea {
width: 100%!important;
padding: 12px 15px!important;
border: none!important;
border-radius: 20px!important;
font-size: 16px!important;
background-color: white!important;
}
/* Контейнер для текстового поля и изображения автора */ /* Контейнер для текстового поля и изображения автора */
.message-container { .message-container {
position: relative; position: relative;
@ -419,7 +436,9 @@ textarea{
/* Адаптивность */ /* Адаптивность */
@media (max-width: 768px) { @media (max-width: 768px) {
.mform-content { .mform-content {
width: 90%; width: 90%;
padding: 30px 20px; padding: 30px 20px;
} }
@ -452,13 +471,156 @@ textarea{
} }
} }
.wrapper { .wrapper {
margin: 0 auto; margin: 0 auto;
max-width: 1600px; max-width: 1600px;
} }
.modal {
display: none;
}
.modal.active {
display: flex!important;
}
.modal__login.active {
filter: blur(0px);
}
/* 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;
}
/* modal */ /* modal */
@ -1324,15 +1486,54 @@ textarea{
flex: 1; flex: 1;
padding: 16px 24px; padding: 16px 24px;
border-radius: 20px; border-radius: 20px;
font-family: var(--font-family); font-family: var(--font-family);
font-weight: 600; font-weight: 600;
font-size: 20px; font-size: 20px;
line-height: 120%; line-height: 120%;
text-align: center; color: var(--text-black);
cursor: pointer;
transition: all 0.2s ease-out; 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--high-46{
padding: 12px 24px;
font-size: 20px;
font-weight: 700;
line-height: 24px;
} }
.modal-basket__button--continue { .modal-basket__button--continue {
background: var(--background-white); background: var(--background-white);
border: 1px solid var(--background-black); border: 1px solid var(--background-black);
@ -1860,4 +2061,4 @@ textarea{
.wc-block-checkout__form.wc-block-components-form .wc-block-components-text-input input[type=url], .wc-block-checkout__form.wc-block-components-form .wc-block-components-text-input input[type=url],
.wc-block-checkout__form.wc-block-components-form .wc-blocks-components-select .wc-blocks-components-select__select{ .wc-block-checkout__form.wc-block-components-form .wc-blocks-components-select .wc-blocks-components-select__select{
border-radius: 10px; border-radius: 10px;
} }

@ -0,0 +1,852 @@
/* 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-payment__price::after{
margin-left: 5px;
content: '₽';
}
.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-product__price::after{
content: ' Р';
}
.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: -27px;
}
.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 */
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

@ -0,0 +1,13 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_230_9775)">
<path d="M0 0H16V5.33437H0V0Z" fill="#D90012"/>
<path d="M0 5.33447H16V10.6657H0V5.33447Z" fill="#0033A0"/>
<path d="M0 10.6655H16V15.9999H0V10.6655Z" fill="#F2A800"/>
</g>
<rect x="0.1" y="0.1" width="15.8" height="15.8" stroke="#999999" stroke-width="0.2"/>
<defs>
<clipPath id="clip0_230_9775">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 502 B

@ -0,0 +1,13 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_230_9627)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H16V16H0V0Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 5.33447H16V16.0001H0V5.33447Z" fill="#0039A6"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 10.6655H16V15.9999H0V10.6655Z" fill="#D52B1E"/>
</g>
<rect x="0.1" y="0.1" width="15.8" height="15.8" stroke="#999999" stroke-width="0.2"/>
<defs>
<clipPath id="clip0_230_9627">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 615 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.0 KiB

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.5 12.3643H21" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.5 12.3643L10.864 18.7282" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.5 12.3643L10.864 6.0003" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 459 B

@ -0,0 +1,3 @@
<svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.46967 0.46967C0.762563 0.176777 1.23744 0.176777 1.53033 0.46967L5 3.93934L8.46967 0.46967C8.76256 0.176777 9.23744 0.176777 9.53033 0.46967C9.82322 0.762563 9.82322 1.23744 9.53033 1.53033L5.53033 5.53033C5.23744 5.82322 4.76256 5.82322 4.46967 5.53033L0.46967 1.53033C0.176777 1.23744 0.176777 0.762563 0.46967 0.46967Z" fill="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 493 B

@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.94673 2.74797C9.26993 2.62677 9.63019 2.79052 9.75139 3.11373L12.2514 9.78039C12.3045 9.92188 12.3045 10.0778 12.2514 10.2193L9.75139 16.886C9.63019 17.2092 9.26993 17.3729 8.94673 17.2517C8.62353 17.1305 8.45978 16.7703 8.58098 16.4471L10.9987 9.99984L8.58098 3.55263C8.45978 3.22943 8.62353 2.86917 8.94673 2.74797Z" fill="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 491 B

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.7369 3.29777C11.1247 3.15233 11.557 3.34884 11.7025 3.73668L14.7025 11.7367C14.7661 11.9065 14.7661 12.0936 14.7025 12.2634L11.7025 20.2634C11.557 20.6512 11.1247 20.8477 10.7369 20.7023C10.349 20.5568 10.1525 20.1245 10.298 19.7367L13.1992 12L10.298 4.26336C10.1525 3.87552 10.349 3.44321 10.7369 3.29777Z" fill="#666666"/>
</svg>

After

Width:  |  Height:  |  Size: 481 B

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 16.4854H28" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 16.4854L14.4853 24.9706" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 16.4854L14.4853 8.00007" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 456 B

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26 16.4854H4" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M26 16.4854L17.5147 24.9706" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M26 16.4854L17.5147 8.00007" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 458 B

@ -0,0 +1,3 @@
<svg width="10" height="8" viewBox="0 0 10 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.50681 0.784901C9.86151 1.14024 9.86101 1.71584 9.50567 2.07055L4.35112 7.216C3.99601 7.57049 3.42085 7.57024 3.06604 7.21544L0.493317 4.64271C0.138295 4.28769 0.138295 3.71208 0.493317 3.35706C0.848339 3.00204 1.42394 3.00204 1.77897 3.35706L3.70944 5.28753L8.22116 0.783766C8.57649 0.429057 9.1521 0.429565 9.50681 0.784901Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 495 B

@ -0,0 +1,11 @@
<svg width="16" height="12" viewBox="0 0 16 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.7071 0.292893C16.0976 0.683417 16.0976 1.31658 15.7071 1.70711L5.70711 11.7071C5.31658 12.0976 4.68342 12.0976 4.29289 11.7071L0.292893 7.70711C-0.0976311 7.31658 -0.0976311 6.68342 0.292893 6.29289C0.683417 5.90237 1.31658 5.90237 1.70711 6.29289L5 9.58579L14.2929 0.292893C14.6834 -0.0976311 15.3166 -0.0976311 15.7071 0.292893Z" fill="url(#paint0_radial_79_10214)" />
<defs>
<radialGradient id="paint0_radial_79_10214" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(23.9562 -7.00625) rotate(143.344) scale(34.5677 45.2811)">
<stop stop-color="#0F5881" />
<stop offset="0.512169" stop-color="#1EA49C" />
<stop offset="0.807073" stop-color="#76CE75" />
<stop offset="0.911458" stop-color="#ECF39F" />
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 954 B

@ -0,0 +1,13 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_3176)">
<path d="M4 7H20" stroke="#2C3E50" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5 7L6 19C6 19.5304 6.21071 20.0391 6.58579 20.4142C6.96086 20.7893 7.46957 21 8 21H16C16.5304 21 17.0391 20.7893 17.4142 20.4142C17.7893 20.0391 18 19.5304 18 19L19 7" stroke="#2C3E50" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9 7V4C9 3.73478 9.10536 3.48043 9.29289 3.29289C9.48043 3.10536 9.73478 3 10 3H14C14.2652 3 14.5196 3.10536 14.7071 3.29289C14.8946 3.48043 15 3.73478 15 4V7" stroke="#2C3E50" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10 12L14 16M14 12L10 16" stroke="#2C3E50" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_1_3176">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 983 B

@ -0,0 +1,11 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_2483)">
<path d="M18 6L6 18" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 6L18 18" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_1_2483">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 455 B

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.2929 5.70711C11.1054 5.51957 11 5.26522 11 5C11 4.73478 11.1054 4.48043 11.2929 4.29289C11.4804 4.10536 11.7348 4 12 4C12.2652 4 12.5196 4.10536 12.7071 4.29289C12.8946 4.48043 13 4.73478 13 5C13 5.26522 12.8946 5.51957 12.7071 5.70711C12.5196 5.89464 12.2652 6 12 6C11.7348 6 11.4804 5.89464 11.2929 5.70711ZM11 12C11 12.2652 11.1054 12.5196 11.2929 12.7071C11.4804 12.8946 11.7348 13 12 13C12.2652 13 12.5196 12.8946 12.7071 12.7071C12.8946 12.5196 13 12.2652 13 12C13 11.7348 12.8946 11.4804 12.7071 11.2929C12.5196 11.1054 12.2652 11 12 11C11.7348 11 11.4804 11.1054 11.2929 11.2929C11.1054 11.4804 11 11.7348 11 12ZM11 19C11 19.2652 11.1054 19.5196 11.2929 19.7071C11.4804 19.8946 11.7348 20 12 20C12.2652 20 12.5196 19.8946 12.7071 19.7071C12.8946 19.5196 13 19.2652 13 19C13 18.7348 12.8946 18.4804 12.7071 18.2929C12.5196 18.1054 12.2652 18 12 18C11.7348 18 11.4804 18.1054 11.2929 18.2929C11.1054 18.4804 11 18.7348 11 19Z" fill="#121212"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 3.25C6.41421 3.25 6.75 3.58579 6.75 4V7.35424C7.19755 7.48113 7.60976 7.72067 7.94454 8.05546C8.46027 8.57118 8.75 9.27065 8.75 10C8.75 10.7293 8.46027 11.4288 7.94454 11.9445C7.60976 12.2793 7.19755 12.5189 6.75 12.6458V20C6.75 20.4142 6.41421 20.75 6 20.75C5.58579 20.75 5.25 20.4142 5.25 20V12.6458C4.80245 12.5189 4.39024 12.2793 4.05546 11.9445C3.53973 11.4288 3.25 10.7293 3.25 10C3.25 9.27065 3.53973 8.57118 4.05546 8.05546C4.39024 7.72067 4.80245 7.48113 5.25 7.35424V4C5.25 3.58579 5.58579 3.25 6 3.25ZM12 3.25C12.4142 3.25 12.75 3.58579 12.75 4V13.3542C13.1975 13.4811 13.6098 13.7207 13.9445 14.0555C14.4603 14.5712 14.75 15.2707 14.75 16C14.75 16.7293 14.4603 17.4288 13.9445 17.9445C13.6098 18.2793 13.1975 18.5189 12.75 18.6458V20C12.75 20.4142 12.4142 20.75 12 20.75C11.5858 20.75 11.25 20.4142 11.25 20V18.6458C10.8025 18.5189 10.3902 18.2793 10.0555 17.9445C9.53973 17.4288 9.25 16.7293 9.25 16C9.25 15.2707 9.53973 14.5712 10.0555 14.0555C10.3902 13.7207 10.8025 13.4811 11.25 13.3542V4C11.25 3.58579 11.5858 3.25 12 3.25ZM18 3.25C18.4142 3.25 18.75 3.58579 18.75 4V4.35424C19.1975 4.48112 19.6098 4.72067 19.9445 5.05546C20.4603 5.57118 20.75 6.27065 20.75 7C20.75 7.72935 20.4603 8.42882 19.9445 8.94454C19.6098 9.27933 19.1975 9.51887 18.75 9.64576V20C18.75 20.4142 18.4142 20.75 18 20.75C17.5858 20.75 17.25 20.4142 17.25 20V9.64576C16.8025 9.51887 16.3902 9.27933 16.0555 8.94454C15.5397 8.42882 15.25 7.72935 15.25 7C15.25 6.27065 15.5397 5.57118 16.0555 5.05546C16.3902 4.72067 16.8025 4.48112 17.25 4.35424V4C17.25 3.58579 17.5858 3.25 18 3.25ZM18 5.75C17.6685 5.75 17.3505 5.8817 17.1161 6.11612C16.8817 6.35054 16.75 6.66848 16.75 7C16.75 7.33152 16.8817 7.64946 17.1161 7.88388C17.3505 8.1183 17.6685 8.25 18 8.25C18.3315 8.25 18.6495 8.1183 18.8839 7.88388C19.1183 7.64946 19.25 7.33152 19.25 7C19.25 6.66848 19.1183 6.35054 18.8839 6.11612C18.6495 5.8817 18.3315 5.75 18 5.75ZM6 8.75C5.66848 8.75 5.35054 8.8817 5.11612 9.11612C4.8817 9.35054 4.75 9.66848 4.75 10C4.75 10.3315 4.8817 10.6495 5.11612 10.8839C5.35054 11.1183 5.66848 11.25 6 11.25C6.33152 11.25 6.64946 11.1183 6.88388 10.8839C7.1183 10.6495 7.25 10.3315 7.25 10C7.25 9.66848 7.1183 9.35054 6.88388 9.11612C6.64946 8.8817 6.33152 8.75 6 8.75ZM12 14.75C11.6685 14.75 11.3505 14.8817 11.1161 15.1161C10.8817 15.3505 10.75 15.6685 10.75 16C10.75 16.3315 10.8817 16.6495 11.1161 16.8839C11.3505 17.1183 11.6685 17.25 12 17.25C12.3315 17.25 12.6495 17.1183 12.8839 16.8839C13.1183 16.6495 13.25 16.3315 13.25 16C13.25 15.6685 13.1183 15.3505 12.8839 15.1161C12.6495 14.8817 12.3315 14.75 12 14.75Z" fill="#121212"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1,6 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.7875 10.2271C19.7875 9.51801 19.7239 8.83619 19.6057 8.18164H10.1875V12.0498H15.5693C15.3375 13.2998 14.633 14.3589 13.5739 15.068V17.5771H16.8057C18.6966 15.8362 19.7875 13.2726 19.7875 10.2271Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1864 20.0004C12.8864 20.0004 15.15 19.105 16.8046 17.5777L13.5728 15.0686C12.6773 15.6686 11.5318 16.0231 10.1864 16.0231C7.58183 16.0231 5.37728 14.264 4.59092 11.9004H1.25V14.4913C2.89546 17.7595 6.27728 20.0004 10.1864 20.0004Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.59205 11.8997C4.39205 11.2997 4.27842 10.6588 4.27842 9.99971C4.27842 9.34062 4.39205 8.6997 4.59205 8.0997V5.50879H1.25114C0.573864 6.85879 0.1875 8.38607 0.1875 9.99971C0.1875 11.6133 0.573864 13.1406 1.25114 14.4906L4.59205 11.8997Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1864 3.97728C11.6546 3.97728 12.9728 4.48183 14.0091 5.47274L16.8773 2.60455C15.1455 0.990911 12.8818 0 10.1864 0C6.27728 0 2.89546 2.24091 1.25 5.5091L4.59092 8.10002C5.37728 5.73638 7.58183 3.97728 10.1864 3.97728Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,11 @@
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.42433 0.575954C1.18837 0.343303 0.807128 0.344651 0.572814 0.578965C0.338499 0.81328 0.339838 1.19183 0.575804 1.42448L5.84223 6.61694L0.575803 11.8094C0.339837 12.042 0.338499 12.4206 0.572813 12.6549C0.807128 12.8892 1.18837 12.8906 1.42433 12.6579L6.6968 7.45951L11.9692 12.6579C12.2052 12.8905 12.5864 12.8892 12.8208 12.6549C13.0551 12.4206 13.0537 12.042 12.8178 11.8094L7.55137 6.61694L12.8178 1.42451C13.0537 1.19186 13.0551 0.813306 12.8208 0.578991C12.5864 0.344677 12.2052 0.343328 11.9692 0.57598L6.6968 5.77437L1.42433 0.575954Z" fill="url(#paint0_radial_61_3534)"/>
<defs>
<radialGradient id="paint0_radial_61_3534" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(19.26 -6.85449) rotate(135.608) scale(30.5558 41.776)">
<stop stop-color="#0F5881"/>
<stop offset="0.512169" stop-color="#1EA49C"/>
<stop offset="0.807073" stop-color="#76CE75"/>
<stop offset="0.911458" stop-color="#ECF39F"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,10 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_61_7537)">
<path d="M5 12H19" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_61_7537">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 349 B

@ -0,0 +1,11 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_178_5112)">
<path d="M12 5V19" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5 12H19" stroke="#666666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_178_5112">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 455 B

@ -0,0 +1,11 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_61_7542)">
<path d="M12 5V19" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5 12H19" stroke="#121212" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_61_7542">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 453 B

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.00005 1.2498C4.27213 1.2498 1.25005 4.27188 1.25005 7.9998C1.25005 11.7277 4.27213 14.7498 8.00005 14.7498C11.728 14.7498 14.75 11.7277 14.75 7.9998C14.75 4.27188 11.728 1.2498 8.00005 1.2498ZM0.0500488 7.9998C0.0500488 3.60914 3.60939 0.0498047 8.00005 0.0498047C12.3907 0.0498047 15.9501 3.60914 15.9501 7.9998C15.9501 12.3905 12.3907 15.9498 8.00005 15.9498C3.60938 15.9498 0.0500488 12.3905 0.0500488 7.9998ZM8.75664 11.8914C8.75664 12.3056 8.42085 12.6414 8.00664 12.6414C7.59243 12.6414 7.25664 12.3056 7.25664 11.8914C7.25664 11.4772 7.59243 11.1414 8.00664 11.1414C8.42085 11.1414 8.75664 11.4772 8.75664 11.8914ZM6.35884 6.22749C6.35879 5.76088 6.51651 5.31995 6.80394 5.00253C7.08243 4.69497 7.51419 4.46749 8.14659 4.46748C9.28878 4.46747 10.0031 5.57665 9.44696 6.64451C9.21979 7.08066 8.93274 7.37811 8.60211 7.7207L8.60206 7.72075C8.49777 7.82881 8.38915 7.94137 8.27671 8.06418C7.82078 8.56216 7.37999 9.17405 7.37999 10.1425C7.37999 10.4738 7.64862 10.7425 7.97999 10.7425C8.31136 10.7425 8.57999 10.4738 8.57999 10.1425C8.57999 9.61088 8.79169 9.27875 9.16178 8.87452C9.23347 8.79622 9.31482 8.71242 9.40228 8.62233C9.75046 8.26368 10.1953 7.80545 10.5113 7.19883C11.4927 5.31454 10.1697 3.26746 8.14658 3.26748C7.19634 3.26749 6.43417 3.62308 5.91442 4.19707C5.4036 4.7612 5.15877 5.5003 5.15884 6.22761C5.15887 6.55898 5.42753 6.82758 5.7589 6.82755C6.09027 6.82752 6.35887 6.55886 6.35884 6.22749Z" fill="#121212"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,3 @@
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 1.5C7.64641 1.5 6.80117 1.66813 6.01256 1.99478C5.22394 2.32144 4.50739 2.80023 3.90381 3.40381C3.30023 4.00739 2.82144 4.72394 2.49478 5.51256C2.16813 6.30117 2 7.14641 2 8C2 8.85359 2.16813 9.69883 2.49478 10.4874C2.82144 11.2761 3.30023 11.9926 3.90381 12.5962C4.50739 13.1998 5.22394 13.6786 6.01256 14.0052C6.80117 14.3319 7.64641 14.5 8.5 14.5C9.35359 14.5 10.1988 14.3319 10.9874 14.0052C11.7761 13.6786 12.4926 13.1998 13.0962 12.5962C13.6998 11.9926 14.1786 11.2761 14.5052 10.4874C14.8319 9.69883 15 8.85359 15 8C15 7.14641 14.8319 6.30117 14.5052 5.51256C14.1786 4.72394 13.6998 4.00739 13.0962 3.40381C12.4926 2.80023 11.7761 2.32144 10.9874 1.99478C10.1988 1.66813 9.35359 1.5 8.5 1.5ZM6.39524 2.91866C7.06253 2.64226 7.77773 2.5 8.5 2.5C9.22227 2.5 9.93747 2.64226 10.6048 2.91866C11.272 3.19506 11.8784 3.60019 12.3891 4.11091C12.8998 4.62164 13.3049 5.22795 13.5813 5.89524C13.8577 6.56253 14 7.27773 14 8C14 8.72227 13.8577 9.43747 13.5813 10.1048C13.3049 10.772 12.8998 11.3784 12.3891 11.8891C11.8784 12.3998 11.272 12.8049 10.6048 13.0813C9.93747 13.3577 9.22227 13.5 8.5 13.5C7.77773 13.5 7.06253 13.3577 6.39524 13.0813C5.72795 12.8049 5.12164 12.3998 4.61091 11.8891C4.10019 11.3784 3.69506 10.772 3.41866 10.1048C3.14226 9.43747 3 8.72227 3 8C3 7.27773 3.14226 6.56253 3.41866 5.89524C3.69506 5.22795 4.10019 4.62163 4.61091 4.11091C5.12163 3.60019 5.72795 3.19506 6.39524 2.91866ZM7.52022 6.31311C7.32496 6.11785 7.00838 6.11785 6.81311 6.31311C6.61785 6.50838 6.61785 6.82496 6.81311 7.02022L7.79289 8L6.81311 8.97978C6.61785 9.17504 6.61785 9.49162 6.81311 9.68689C7.00838 9.88215 7.32496 9.88215 7.52022 9.68689L8.5 8.70711L9.47978 9.68689C9.67504 9.88215 9.99162 9.88215 10.1869 9.68689C10.3821 9.49162 10.3821 9.17504 10.1869 8.97978L9.20711 8L10.1869 7.02022C10.3821 6.82496 10.3821 6.50838 10.1869 6.31311C9.99162 6.11785 9.67504 6.11785 9.47978 6.31311L8.5 7.29289L7.52022 6.31311Z" fill="#F60909"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,3 @@
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 1.5C7.64641 1.5 6.80117 1.66813 6.01256 1.99478C5.22394 2.32144 4.50739 2.80023 3.90381 3.40381C3.30023 4.00739 2.82144 4.72394 2.49478 5.51256C2.16813 6.30117 2 7.14641 2 8C2 8.85359 2.16813 9.69883 2.49478 10.4874C2.82144 11.2761 3.30023 11.9926 3.90381 12.5962C4.50739 13.1998 5.22394 13.6786 6.01256 14.0052C6.80117 14.3319 7.64641 14.5 8.5 14.5C9.35359 14.5 10.1988 14.3319 10.9874 14.0052C11.7761 13.6786 12.4926 13.1998 13.0962 12.5962C13.6998 11.9926 14.1786 11.2761 14.5052 10.4874C14.8319 9.69883 15 8.85359 15 8C15 7.14641 14.8319 6.30117 14.5052 5.51256C14.1786 4.72394 13.6998 4.00739 13.0962 3.40381C12.4926 2.80023 11.7761 2.32144 10.9874 1.99478C10.1988 1.66813 9.35359 1.5 8.5 1.5ZM6.39524 2.91866C7.06253 2.64226 7.77773 2.5 8.5 2.5C9.22227 2.5 9.93747 2.64226 10.6048 2.91866C11.272 3.19506 11.8784 3.60019 12.3891 4.11091C12.8998 4.62164 13.3049 5.22795 13.5813 5.89524C13.8577 6.56253 14 7.27773 14 8C14 8.72227 13.8577 9.43747 13.5813 10.1048C13.3049 10.772 12.8998 11.3784 12.3891 11.8891C11.8784 12.3998 11.272 12.8049 10.6048 13.0813C9.93747 13.3577 9.22227 13.5 8.5 13.5C7.77773 13.5 7.06253 13.3577 6.39524 13.0813C5.72795 12.8049 5.12164 12.3998 4.61091 11.8891C4.10019 11.3784 3.69506 10.772 3.41866 10.1048C3.14226 9.43747 3 8.72227 3 8C3 7.27773 3.14226 6.56253 3.41866 5.89524C3.69506 5.22795 4.10019 4.62163 4.61091 4.11091C5.12163 3.60019 5.72795 3.19506 6.39524 2.91866ZM10.8536 7.02022C11.0488 6.82496 11.0488 6.50838 10.8536 6.31311C10.6583 6.11785 10.3417 6.11785 10.1464 6.31311L7.83333 8.62623L6.85355 7.64645C6.65829 7.45118 6.34171 7.45118 6.14645 7.64645C5.95118 7.84171 5.95118 8.15829 6.14645 8.35355L7.47978 9.68689C7.67504 9.88215 7.99162 9.88215 8.18689 9.68689L10.8536 7.02022Z" fill="#2ED15D"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,3 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.75 5.25L1.25 2.75L6.25 2.75L3.75 5.25Z" fill="#999999"/>
</svg>

After

Width:  |  Height:  |  Size: 168 B

@ -0,0 +1,3 @@
<svg width="22" height="14" viewBox="0 0 22 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9825 14C4.46596 14 0.178638 8.74474 0 0H3.76515C3.88882 6.41842 6.66459 9.13714 8.86321 9.6977V0H12.4085V5.53553C14.5796 5.2973 16.8607 2.77477 17.6302 0H21.1755C20.8855 1.43908 20.3075 2.80165 19.4776 4.0025C18.6477 5.20335 17.5837 6.21663 16.3523 6.97898C17.7269 7.67555 18.941 8.6615 19.9145 9.87175C20.888 11.082 21.5988 12.489 22 14H18.0974C17.7373 12.6876 17.0054 11.5128 15.9934 10.6228C14.9814 9.73284 13.7343 9.16727 12.4085 8.997V14H11.9825Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 584 B

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.62404 2.77566C3.38807 2.54301 3.00683 2.54436 2.77252 2.77867C2.53821 3.01299 2.53954 3.39154 2.77551 3.62419L6.90259 7.6933L2.77551 11.7624C2.53954 11.9951 2.53821 12.3736 2.77252 12.6079C3.00684 12.8422 3.38807 12.8436 3.62404 12.6109L7.75716 8.53587L11.8903 12.6109C12.1262 12.8436 12.5075 12.8422 12.7418 12.6079C12.9761 12.3736 12.9748 11.995 12.7388 11.7624L8.61173 7.6933L12.7388 3.62421C12.9748 3.39156 12.9761 3.01301 12.7418 2.77869C12.5075 2.54438 12.1262 2.54303 11.8903 2.77568L7.75716 6.85073L3.62404 2.77566Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 695 B

@ -0,0 +1,3 @@
<svg width="14" height="20" viewBox="0 0 14 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.1991 2.77628H8.65909C5.83576 2.77628 4.35076 4.20628 4.35076 6.31461C4.35076 8.69794 5.37742 9.81461 7.48576 11.2463L9.22742 12.4196L4.22242 19.8979H0.482422L4.97409 13.2079C2.39076 11.3563 0.940755 9.55794 0.940755 6.51628C0.940755 2.70294 3.59909 0.0996094 8.64076 0.0996094H13.6458V19.8796H10.1991V2.77628Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 442 B

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9995 3.53846C11.3616 3.53846 10.7499 3.78159 10.2988 4.21437C9.84778 4.64715 9.59439 5.23412 9.59439 5.84615V7.12821H14.4045V5.84615C14.4045 5.23412 14.1511 4.64715 13.7001 4.21437C13.2491 3.78159 12.6373 3.53846 11.9995 3.53846ZM16.0079 7.12821V5.84615C16.0079 4.82609 15.5856 3.84781 14.8339 3.12651C14.0821 2.40522 13.0626 2 11.9995 2C10.9364 2 9.91679 2.40522 9.16506 3.12651C8.41333 3.84781 7.99102 4.82609 7.99102 5.84615V7.12821H5.93986M7.99102 8.66667H5.93976C5.74711 8.66665 5.55664 8.7066 5.38159 8.78378C5.20654 8.86097 5.05095 8.97356 4.9255 9.11385C4.80004 9.25413 4.70769 9.41879 4.65477 9.59653C4.60186 9.77423 4.58961 9.9608 4.61887 10.1435C4.61886 10.1434 4.61888 10.1435 4.61887 10.1435L5.96036 18.5045C6.04768 19.0493 6.33539 19.5463 6.77139 19.9052C7.20738 20.2642 7.76287 20.4615 8.33735 20.4615C8.33734 20.4615 8.33736 20.4615 8.33735 20.4615H15.6616C16.2362 20.4617 16.7921 20.2644 17.2283 19.9055C17.6645 19.5465 17.9523 19.0496 18.0396 18.5046L19.3811 10.1436C19.3811 10.1436 19.3811 10.1435 19.3811 10.1436C19.4104 9.96093 19.3981 9.77423 19.3452 9.59653C19.2923 9.41879 19.1999 9.25413 19.0745 9.11385C18.949 8.97356 18.7935 8.86097 18.6184 8.78378C18.4433 8.7066 18.253 8.66665 18.0603 8.66667H16.0079V10.9744C16.0079 11.3992 15.649 11.7436 15.2062 11.7436C14.7635 11.7436 14.4045 11.3992 14.4045 10.9744V8.66667H9.59439V10.9744C9.59439 11.3992 9.23547 11.7436 8.79271 11.7436C8.34995 11.7436 7.99102 11.3992 7.99102 10.9744V8.66667ZM16.0079 7.12821H18.0601C18.0601 7.12821 18.0602 7.12821 18.0601 7.12821C18.4839 7.12817 18.9028 7.21606 19.2879 7.38586C19.673 7.55567 20.0153 7.80338 20.2913 8.11201C20.5673 8.42063 20.7705 8.78288 20.8869 9.1739C21.0033 9.56493 21.0303 9.97549 20.9658 10.3774L19.6244 18.7385C19.6243 18.7385 19.6244 18.7384 19.6244 18.7385C19.4788 19.6467 18.9991 20.475 18.2722 21.0732C17.5453 21.6715 16.6192 22.0002 15.6616 22C15.6615 22 15.6616 22 15.6616 22H8.33735C7.37986 22 6.45398 21.6711 5.72732 21.0728C5.00069 20.4746 4.52121 19.6466 4.37565 18.7386C4.37565 18.7385 4.37566 18.7386 4.37565 18.7386L3.03416 10.3776C2.96974 9.97561 2.99665 9.56493 3.11308 9.1739C3.22951 8.78288 3.43268 8.42063 3.70868 8.11201C3.98468 7.80338 4.32697 7.55567 4.71208 7.38586C5.09717 7.21606 5.51606 7.12817 5.93986 7.12821" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.9995 3.53846C11.3616 3.53846 10.7499 3.78159 10.2988 4.21437C9.84778 4.64715 9.59439 5.23412 9.59439 5.84615V7.12821H14.4045V5.84615C14.4045 5.23412 14.1511 4.64715 13.7001 4.21437C13.2491 3.78159 12.6373 3.53846 11.9995 3.53846ZM16.0079 7.12821V5.84615C16.0079 4.82609 15.5856 3.84781 14.8339 3.12651C14.0821 2.40522 13.0626 2 11.9995 2C10.9364 2 9.91679 2.40522 9.16506 3.12651C8.41333 3.84781 7.99102 4.82609 7.99102 5.84615V7.12821H5.93986M7.99102 8.66667H5.93976C5.74711 8.66665 5.55664 8.7066 5.38159 8.78378C5.20654 8.86097 5.05095 8.97356 4.9255 9.11385C4.80004 9.25413 4.70769 9.41879 4.65477 9.59653C4.60186 9.77423 4.58961 9.9608 4.61887 10.1435C4.61886 10.1434 4.61888 10.1435 4.61887 10.1435L5.96036 18.5045C6.04768 19.0493 6.33539 19.5463 6.77139 19.9052C7.20738 20.2642 7.76287 20.4615 8.33735 20.4615C8.33734 20.4615 8.33736 20.4615 8.33735 20.4615H15.6616C16.2362 20.4617 16.7921 20.2644 17.2283 19.9055C17.6645 19.5465 17.9523 19.0496 18.0396 18.5046L19.3811 10.1436C19.3811 10.1436 19.3811 10.1435 19.3811 10.1436C19.4104 9.96093 19.3981 9.77423 19.3452 9.59653C19.2923 9.41879 19.1999 9.25413 19.0745 9.11385C18.949 8.97356 18.7935 8.86097 18.6184 8.78378C18.4433 8.7066 18.253 8.66665 18.0603 8.66667H16.0079V10.9744C16.0079 11.3992 15.649 11.7436 15.2062 11.7436C14.7635 11.7436 14.4045 11.3992 14.4045 10.9744V8.66667H9.59439V10.9744C9.59439 11.3992 9.23547 11.7436 8.79271 11.7436C8.34995 11.7436 7.99102 11.3992 7.99102 10.9744V8.66667ZM16.0079 7.12821H18.0601C18.0601 7.12821 18.0602 7.12821 18.0601 7.12821C18.4839 7.12817 18.9028 7.21606 19.2879 7.38586C19.673 7.55567 20.0153 7.80338 20.2913 8.11201C20.5673 8.42063 20.7705 8.78288 20.8869 9.1739C21.0033 9.56493 21.0303 9.97549 20.9658 10.3774L19.6244 18.7385C19.6243 18.7385 19.6244 18.7384 19.6244 18.7385C19.4788 19.6467 18.9991 20.475 18.2722 21.0732C17.5453 21.6715 16.6192 22.0002 15.6616 22C15.6615 22 15.6616 22 15.6616 22H8.33735C7.37986 22 6.45398 21.6711 5.72732 21.0728C5.00069 20.4746 4.52121 19.6466 4.37565 18.7386C4.37565 18.7385 4.37566 18.7386 4.37565 18.7386L3.03416 10.3776C2.96974 9.97561 2.99665 9.56493 3.11308 9.1739C3.22951 8.78288 3.43268 8.42063 3.70868 8.11201C3.98468 7.80338 4.32697 7.55567 4.71208 7.38586C5.09717 7.21606 5.51606 7.12817 5.93986 7.12821" fill="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.64124 3.64124C9.53204 2.75044 10.7402 2.25 12 2.25C13.2598 2.25 14.468 2.75044 15.3588 3.64124C16.2496 4.53204 16.75 5.74022 16.75 7C16.75 8.25978 16.2496 9.46796 15.3588 10.3588C14.468 11.2496 13.2598 11.75 12 11.75C10.7402 11.75 9.53204 11.2496 8.64124 10.3588C7.75044 9.46796 7.25 8.25978 7.25 7C7.25 5.74022 7.75044 4.53204 8.64124 3.64124ZM12 3.75C11.138 3.75 10.3114 4.09241 9.7019 4.7019C9.09241 5.3114 8.75 6.13805 8.75 7C8.75 7.86195 9.09241 8.6886 9.7019 9.2981C10.3114 9.90759 11.138 10.25 12 10.25C12.862 10.25 13.6886 9.90759 14.2981 9.2981C14.9076 8.6886 15.25 7.86195 15.25 7C15.25 6.13805 14.9076 5.3114 14.2981 4.7019C13.6886 4.09241 12.862 3.75 12 3.75Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 15.75C9.13805 15.75 8.3114 16.0924 7.7019 16.7019C7.09241 17.3114 6.75 18.138 6.75 19V21C6.75 21.4142 6.41421 21.75 6 21.75C5.58579 21.75 5.25 21.4142 5.25 21V19C5.25 17.7402 5.75044 16.532 6.64124 15.6412C7.53204 14.7504 8.74022 14.25 10 14.25H14C15.2598 14.25 16.468 14.7504 17.3588 15.6412C18.2496 16.532 18.75 17.7402 18.75 19V21C18.75 21.4142 18.4142 21.75 18 21.75C17.5858 21.75 17.25 21.4142 17.25 21V19C17.25 18.138 16.9076 17.3114 16.2981 16.7019C15.6886 16.0924 14.862 15.75 14 15.75H10Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.64124 3.64124C9.53204 2.75044 10.7402 2.25 12 2.25C13.2598 2.25 14.468 2.75044 15.3588 3.64124C16.2496 4.53204 16.75 5.74022 16.75 7C16.75 8.25978 16.2496 9.46796 15.3588 10.3588C14.468 11.2496 13.2598 11.75 12 11.75C10.7402 11.75 9.53204 11.2496 8.64124 10.3588C7.75044 9.46796 7.25 8.25978 7.25 7C7.25 5.74022 7.75044 4.53204 8.64124 3.64124ZM12 3.75C11.138 3.75 10.3114 4.09241 9.7019 4.7019C9.09241 5.3114 8.75 6.13805 8.75 7C8.75 7.86195 9.09241 8.6886 9.7019 9.2981C10.3114 9.90759 11.138 10.25 12 10.25C12.862 10.25 13.6886 9.90759 14.2981 9.2981C14.9076 8.6886 15.25 7.86195 15.25 7C15.25 6.13805 14.9076 5.3114 14.2981 4.7019C13.6886 4.09241 12.862 3.75 12 3.75Z" fill="#333333"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 15.75C9.13805 15.75 8.3114 16.0924 7.7019 16.7019C7.09241 17.3114 6.75 18.138 6.75 19V21C6.75 21.4142 6.41421 21.75 6 21.75C5.58579 21.75 5.25 21.4142 5.25 21V19C5.25 17.7402 5.75044 16.532 6.64124 15.6412C7.53204 14.7504 8.74022 14.25 10 14.25H14C15.2598 14.25 16.468 14.7504 17.3588 15.6412C18.2496 16.532 18.75 17.7402 18.75 19V21C18.75 21.4142 18.4142 21.75 18 21.75C17.5858 21.75 17.25 21.4142 17.25 21V19C17.25 18.138 16.9076 17.3114 16.2981 16.7019C15.6886 16.0924 14.862 15.75 14 15.75H10Z" fill="#333333"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 0C7.16387 0 0 7.16387 0 16C0 24.8361 7.16387 32 16 32C24.8361 32 32 24.8361 32 16C32 7.16387 24.8361 0 16 0ZM23.8555 10.9626L21.2335 23.3394C21.0374 24.2168 20.5213 24.4335 19.7884 24.0206L15.7832 21.0684L13.8529 22.9265C13.6361 23.1432 13.4606 23.3187 13.0477 23.3187L13.3265 19.2516L20.7381 12.5523C21.0581 12.2735 20.6658 12.1084 20.2426 12.3871L11.0761 18.1574L7.1329 16.929C6.27613 16.6606 6.25548 16.0723 7.31871 15.6594L22.751 9.70323C23.4632 9.44516 24.0929 9.87871 23.8555 10.9626Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 623 B

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.25023 2.25053C0 4.50106 0 8.1189 0 15.3588V16.6369C0 23.8769 0 27.4989 2.25023 29.7495C4.50046 32 8.11782 32 15.361 32H16.639C23.8779 32 27.4995 32 29.7498 29.7495C32 27.4989 32 23.8811 32 16.6369V15.3588C32 8.1189 32 4.49682 29.7498 2.24628C27.4995 0 23.8779 0 16.639 0H15.361C8.11782 0 4.50046 0 2.25023 2.25053ZM5.40056 9.73673C5.57463 18.0552 9.73544 23.0573 17.0253 23.0573H17.4372V18.2972C20.1162 18.5648 22.1414 20.5223 22.9566 23.0573H26.7438C25.7036 19.2696 22.9694 17.1762 21.2626 16.3779C22.9694 15.3928 25.3682 12.9894 25.9414 9.73673H22.5023C21.7551 12.3779 19.5431 14.7771 17.4372 15.0021V9.73673H13.9981V18.9639C11.8668 18.4289 9.17076 15.8429 9.05188 9.73673H5.40056Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 855 B

@ -0,0 +1,6 @@
<svg width="33" height="32" viewBox="0 0 33 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.568 0C15.3825 2.50628 15.3939 5.04672 14.9687 7.51149C14.1605 12.1873 11.5304 14.5683 6.79636 15.1227C4.54453 15.3866 2.2659 15.4261 0 15.5674C0 15.0765 0.160702 13.7889 0.188825 13.6262C1.18518 7.88646 4.32691 3.76713 9.62271 1.37266C11.0322 0.736552 15.0772 0 15.568 0Z" fill="white"/>
<path d="M0 16.4092C1.98668 16.5478 3.98207 16.6134 5.9567 16.8504C7.26575 17.0071 8.59221 17.2817 9.82962 17.7276C12.4651 18.6778 14.1652 20.6477 14.6935 23.3508C15.2399 26.1477 15.4375 29.0136 15.8051 31.9933C13.2814 32.0689 11.2063 31.5179 9.25913 30.5624C4.19768 28.0795 1.14634 24.0512 0.190834 18.4682C0.156685 18.268 0 16.9007 0 16.4092Z" fill="white"/>
<path d="M19.7049 0.420142C26.3895 1.89994 31.7127 8.12046 32.0114 14.8057C32.0207 15.0126 32.0127 15.2201 32.0127 15.5657C28.4491 15.4398 24.8916 15.6045 21.5845 14.0684C18.8217 12.7848 17.514 10.3837 17.0841 7.51381C16.7741 5.44276 16.7259 3.33287 16.5545 1.24039C16.5203 0.825915 16.4587 0.414116 16.4092 0.000977742C16.9 0.00030815 19.0963 0.284885 19.7049 0.420142Z" fill="white"/>
<path d="M16.3945 31.937C16.6202 29.4173 16.7032 26.9653 17.0862 24.5608C17.7719 20.2546 20.1751 17.8106 24.4544 17.1008C26.8897 16.6971 29.3799 16.6221 31.844 16.3984C32.5009 23.4211 25.5157 32.1385 16.3945 31.937Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,300 @@
'use strict';
let widthPhoneCabinet = 1200;
toggleOpenX('.cabinet-card__order', '.cabinet-card-order__open-detail', '.cabinet-card-order__detail', '.cabinet-card-order__block-detail');
// modalFormOpen('.form-open');
// closeModalForm('.modal-form__close');
// closeModalForm('.modal-form__button-close');
controlCabinet('.cabinet-control__button', '.cabinet', widthPhoneCabinet);
function controlCabinet(buttons, main, minWidth){
let thisWidth = window.innerWidth;
let thisMain = document.querySelector(main);
let thisButtons = document.querySelectorAll(buttons);
thisButtons.forEach(e => {
e.onclick = function (element){
let thisContent = document.querySelector(`.cabinet__${e.dataset.cabinet}`);
let newHeight = thisContent.clientHeight + 48;
let thisButton = element.target;
thisMain.style.height = `${newHeight}px`
if (!thisContent.classList.contains('active')) {
thisMain.querySelector('.active').classList.remove('active');
thisContent.classList.add('active');
setTimeout(() => {
thisMain.style.height = 'auto';
if (thisMain.querySelector('.hide')) {
thisMain.querySelector('.hide').classList.remove('hide');
}
thisMain.querySelector('.active').classList.add('hide');
}, 200);
}
thisButtons.forEach(e => {
e.classList.remove('active');
})
thisButton.classList.add('active');
}
})
}
// let modal = document.querySelector('.modal');
// modal.onclick = function (eventModal) {
// let thisTarget = eventModal.target;
// if (thisTarget.classList.contains('modal')) {
// thisTarget.classList.remove('active');
// if (!thisTarget.querySelector('.modal-map.active')) {
// thisTarget.querySelector('.modal-form.active').classList.remove('active');
// }else{
// thisTarget.querySelector('.modal-map.active').classList.remove('active');
// }
// }
// }
// 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 closeModalForm(close){
// let buttons = document.querySelectorAll(close),
// modal = document.querySelector('.modal');
// buttons.forEach(button => {
// button.onclick = function (buttonEvent) {
// modal.classList.remove('active');
// if (!modal.querySelector('.modal-map.active')) {
// modal.querySelector('.modal-form.active').classList.remove('active');
// }else{
// modal.querySelector('.modal-map.active').classList.remove('active');
// }
// }
// })
// }
function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) {
let elements = document.querySelectorAll(mainElement);
elements.forEach(e => {
let thisMainElement = e,
thisButtonElement = e.querySelector(buttonElement),
thisHeightElement = e.querySelector(heightElement),
thisContentElement = e.querySelector(contentElement);
thisButtonElement.onclick = function (e) {
let height = thisHeightElement.clientHeight;
if (close == true && !thisMainElement.classList.contains('active')) {
elements.forEach(e => {
if (e.classList.contains('active')) {
e.classList.remove('active');
e.querySelector(contentElement).style.height = null
}
})
}
if (!thisMainElement.classList.contains('active')) {
thisContentElement.style.height = `${height}px`;
thisMainElement.classList.add('active');
}else{
thisContentElement.style.height = null;
thisMainElement.classList.remove('active');
}
}
});
}
// function toggleHeader(button, content, blockheight, removeBlock, removeClass) {
// let thisButton = document.querySelector(button),
// thisContent = document.querySelector(content),
// thisRemoveBlock = document.querySelector(removeBlock) || '',
// thisBlockheight = document.querySelector(blockheight);
// thisButton.onclick = function () {
// let height = thisBlockheight.clientHeight;
// if (!thisContent.classList .contains('open')) {
// thisContent.style.height = `${height}px`;
// thisContent.classList .add('open');
// if (removeBlock) {
// thisRemoveBlock.classList.remove(removeClass);
// }
// }else{
// thisContent.style.height = null;
// thisContent.classList .remove('open');
// if (removeBlock) {
// if (window.scrollY <= 25) {
// thisRemoveBlock.classList.add(removeClass);
// }
// }
// }
// }
// }
// function modalFormOpen(formOrNotification) {
// let buttons = document.querySelectorAll(formOrNotification),
// modal = document.querySelector('.modal');
// buttons.forEach(button => {
// button.onclick = function (eventButton) {
// let classOpenForm = button.dataset.form,
// form = modal.querySelector(`.${classOpenForm}`);
// form.classList.add('active');
// modal.classList.add('active');
// }
// })
// }
// function
// export 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');
// }
// }
// });
// }
// export function toggleHeader(button, content, blockheight, removeBlock, removeClass) {
// let thisButton = document.querySelector(button),
// thisContent = document.querySelector(content),
// thisRemoveBlock = document.querySelector(removeBlock) || '',
// thisBlockheight = document.querySelector(blockheight);
// thisButton.onclick = function () {
// let height = thisBlockheight.clientHeight;
// if (!thisContent.classList .contains('open')) {
// thisContent.style.height = `${height}px`;
// thisContent.classList .add('open');
// if (removeBlock) {
// thisRemoveBlock.classList.remove(removeClass);
// }
// }else{
// thisContent.style.height = null;
// thisContent.classList .remove('open');
// if (removeBlock) {
// if (window.scrollY <= 25) {
// thisRemoveBlock.classList.add(removeClass);
// }
// }
// }
// }
// }
// export function modalFormOpen(formOrNotification) {
// let buttons = document.querySelectorAll(formOrNotification),
// modal = document.querySelector('.modal');
// buttons.forEach(button => {
// button.onclick = function (eventButton) {
// let classOpenForm = button.dataset.form,
// form = modal.querySelector(`.${classOpenForm}`);
// form.classList.add('active');
// modal.classList.add('active');
// }
// })
// }
// function

@ -0,0 +1,188 @@
<?php
// namespace Cdek\UI;
// use Cdek\UI\Cdek\CdekApi;
// use Cdek\UI\Cdek\Config;
// use Cdek\UI\Cdek\Helpers\WeightCalc;
// use Cdek\UI\Cdek\MetaKeys;
// use Cdek\UI\Exception;
// use Cdek\UI\WC_Order_Item_Shipping;
// $api = new CdekApi();
$context = Timber::get_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['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'),
];
Timber::render('templates/profile/profile.twig', $context);
?>

@ -0,0 +1,133 @@
<?php
// include_module('profile');
// Сохранить значения полей
add_action('wp_ajax_edit_user', 'save_custom_user_profile_fields');
add_action('wp_ajax_nopriv_edit_user', 'save_custom_user_profile_fields'); //
function save_custom_user_profile_fields() {
// Проверка прав пользователя
wp_update_user( array(
'ID' => get_current_user_id(),
'first_name' => $_POST['name'],
'last_name' => $_POST['l_name'],
) );
$phone = update_user_meta( get_current_user_id(), 'billing_phone', $_POST['full'] );
}
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');

@ -0,0 +1,178 @@
<?php
pll_register_string( 'Link email', 'Link email');
pll_register_string( 'Linked accounts', 'Linked accounts');
add_action('template_redirect', 'redirect_non_logged_in_users');
function redirect_non_logged_in_users() {
// URL личного кабинета (замените 'your-account-page-slug' на ваш slug)
$account_page_slug = 'my-account-3';
$account_page_slug__2 = 'my-account';
// Проверяем, находится ли пользователь на странице личного кабинета
if (is_page($account_page_slug) && !is_user_logged_in() || is_page($account_page_slug__2) && !is_user_logged_in() ) {
wp_redirect(home_url()); // Перенаправляем на главную страницу
exit;
}
}
add_action('init', 'register_pets');
function register_pets(){
register_post_type('pets', array(
'labels' => array(
'name' => 'Питомцы', // Основное название типа записи
'singular_name' => 'Питомец', // отдельное название записи типа Book
'add_new' => 'Добавить нового',
'add_new_item' => 'Добавить нового питомца',
'edit_item' => 'Редактировать питомца',
'new_item' => 'Новый питомец',
'view_item' => 'Посмотреть питомца',
'search_items' => 'Найти питомца',
'not_found' => 'Питомцев не найдено',
'not_found_in_trash' => 'В корзине книг не найдено',
'parent_item_colon' => '',
'menu_name' => 'Питомцы'
),
'public' => false,
'show_ui' => true,
'supports' => array('title','editor')
) );
}
function get_pet_card($item){
?>
<?php
switch (get_field('weight')){
case ('below_1_5'):
$w = esc_html__('from 0,5 kg to 1,5 kg', 'woodmart' );
break;
case ('1_5-3'):
$w = esc_html__('from 1.5 to 3 kg', 'woodmart' );
break;
case ('3-5'):
$w = esc_html__('from 3 to 5 kg', 'woodmart' );
break;
case ('5-8'):
$w = esc_html__('from 5 to 8 kg', 'woodmart' );
break;
case ('8-11'):
$w = esc_html__('from 8 to 11 kg', 'woodmart' );
break;
case ('11-15'):
$w = esc_html__('from 11 to 15 kg', 'woodmart' );
break;
case ('15-20'):
$w = esc_html__('from 15 to 20 kg', 'woodmart' );
break;
case ('20-25'):
$w = esc_html__('from 20 to 25 kg', 'woodmart' );
break;
case ('25-35'):
$w = esc_html__('from 25 to 35 kg', 'woodmart' );
break;
case ('more_35'):
$w = esc_html__('More than 35 kg', 'woodmart' );
break;
}
switch (get_field('old')){
case ('normal'):
$old = esc_html__('Adult (from 1 year to 7 years)', 'woodmart' );
break;
case ('old'):
$old = esc_html__('Elderly (from 7 to 12 years)', 'woodmart' );
break;
case ('very_old'):
$old = esc_html__('Aging (12 years and older)', 'woodmart' );
break;
case ('baby'):
$old = esc_html__('Baby (from 0 to 1 year)' );
break;
}
switch (get_field('activity')){
case ('low'):
$act = esc_html__('Low', 'woodmart' );
break;
case ('moderate'):
$act = esc_html__('Moderate', 'woodmart' );
break;
case ('high'):
$act = esc_html__('High', 'woodmart' );
break;
}
?>
<div class="cabinet-card cabinet-card--green">
<div class="cabinet-card__content">
<div class="cabinet-card__pet">
<div class="cabinet-card-pet__icon">
<div class="cabinet-card-pet-icon__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/pet/mini-<?php echo get_field('type', $item) ?>.png" alt="">
</div>
</div>
<p class="cabinet-card-pet__name"><?php echo get_the_title($item) ?></p>
</div>
<div class="cabinet-card__element">
<p class="cabinet-card__label"><?php echo esc_html__('Breed', 'woodmart' ) ?>:</p>
<p class="cabinet-card__text"><?php echo get_field('breed', $item) ?></p>
</div>
<div class="cabinet-card__element">
<p class="cabinet-card__label"><?php echo esc_html__('Weight', 'woodmart' ) ?>:</p>
<p class="cabinet-card__text"><?php echo $w; ?></p>
</div>
<?php if ($old): ?>
<div class="cabinet-card__element">
<p class="cabinet-card__label"><?php echo esc_html__('Age', 'woodmart' ) ?>:</p>
<p class="cabinet-card__text"><?php echo $old; ?></p>
</div>
<?php
else:
?>
<?php
$zero = '';
if (intval(get_field('month', $item)) < 10){
$zero = '0';
}
?>
<div class="cabinet-card__element">
<p class="cabinet-card__label"><?php echo esc_html__('Birhtday', 'woodmart' ) ?>:</p>
<p class="cabinet-card__text"><?php echo get_field('day', $item) . '.' . $zero . get_field('month', $item) . '.' . get_field('year', $item); ?></p>
</div>
<?php
endif;
?>
<div class="cabinet-card__element">
<p class="cabinet-card__label"><?php echo esc_html__('Activity', 'woodmart' ) ?>:</p>
<p class="cabinet-card__text"><?php echo $act; ?></p>
</div>
<?php
if (get_field('type', $item) == 'cat' && get_field('sterilized', $item)):
?>
<div class="cabinet-card__element">
<p class="cabinet-card__label"><?php echo esc_html__('Sterilized', 'woodmart' ) ?></p>
</div>
<?php
endif;
?>
<div class="cabinet-card__element">
<button class="cabinet-card__button" data-edit="<?php echo get_the_ID($item); ?>">
<?php echo esc_html__('Edit', 'woodmart' ) ?>
</button>
</div>
</div>
</div>
<?php
}

@ -5,6 +5,13 @@
* This is the template that renders pages using Timber (Twig). * This is the template that renders pages using Timber (Twig).
*/ */
if (is_account_page()){
include_module('profile');
include_component('profile', 'profile');
}
$context = Timber::context(); $context = Timber::context();
$context['post'] = Timber::get_post(); $context['post'] = Timber::get_post();

@ -467,6 +467,61 @@ document.addEventListener('DOMContentLoaded', function () {
}); });
}); });
<<<<<<< HEAD
// Находим все элементы с классом login-open
document.addEventListener('DOMContentLoaded', function() {
const loginButtons = document.querySelectorAll('.login-open');
// Добавляем обработчик события для каждой кнопки
loginButtons.forEach(button => {
button.addEventListener('click', function(event) {
event.preventDefault(); // Предотвращаем стандартное действие (если это ссылка)
// Находим элементы модального окна
const modal = document.querySelector('.modal');
const modalAside = document.querySelector('.modal__aside');
const modalLogin = document.querySelector('.modal__login');
// Добавляем классы active
modal.classList.add('active');
modalLogin.classList.add('active');
// Устанавливаем ширину для modal__aside
modalAside.style.width = '412px';
});
});
// Опционально: добавляем функцию закрытия модального окна
// Например, при клике на фон или кнопку закрытия
const closeButtons = document.querySelectorAll('.modal-close');
const modal = document.querySelector('.modal');
// Закрытие по клику на кнопку закрытия
closeButtons.forEach(button => {
button.addEventListener('click', closeModal);
});
// Закрытие по клику на фон (если клик не на модальное окно)
modal.addEventListener('click', function(event) {
if (event.target === modal) {
closeModal();
}
});
function closeModal() {
const modal = document.querySelector('.modal');
const modalAside = document.querySelector('.modal__aside');
const modalLogin = document.querySelector('.modal__login');
// Удаляем классы active
modal.classList.remove('active');
modalLogin.classList.remove('active');
// Сбрасываем ширину
modalAside.style.width = '';
}
});
=======
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
// Initialize Swiper // Initialize Swiper
@ -535,4 +590,5 @@ document.addEventListener('DOMContentLoaded', function() {
reviewPopup.style.display = 'none'; reviewPopup.style.display = 'none';
} }
}); });
}); });
>>>>>>> ec84500a88f048324cf2940bad3ba7528694953e

@ -0,0 +1,839 @@
{% extends 'layout.twig' %}
{% block content %}
{% set bodyClass = 'bg-white' %}
<main class="wrapper">
<div class="cabinet-card cabinet-card--green-white cabinet__subscription-mobile">
<div class="cabinet-card__content">
<p class="cabinet-card__title">
<?php echo esc_html__( 'Feed subscription', '_pll_e' ) ?>
</p>
<div class="cabinet-card__element">
<p class="cabinet-card__text"><?php echo esc_html__( 'Weekly food delivery for your pet', '_pll_e' ) ?></p>
</div>
<div class="cabinet-card__element">
<button class="button button--gradient button--high-46 form-sub__btn">
<?php echo esc_html__( 'Get details', '_pll_e' ) ?>
</button>
</div>
</div>
</div>
<div class="cabinet__control">
<button class="cabinet-control__button active start" data-cabinet="orders"> <?php echo esc_html__( 'Orders', '_pll_e' ) ?></button>
<button class="cabinet-control__button" data-cabinet="profile"> <?php echo esc_html__( 'Profile', '_pll_e' ) ?></button>
</div>
<div class="cabinet">
<div class="cabinet__profile cabinet-content">
<div class="cabinet-card cabinet-card--green">
<div class="cabinet-card__content">
<div class="cabinet-card__element">
<?php
$first_name = $current_user->user_firstname;
$last_name = $current_user->user_lastname;?>
<p class="cabinet-card__text <?php if (!$first_name && !$last_name): ?>cabinet-card__text--grey<?php endif; ?>">
<?php
$phone = get_user_meta( $current_user->ID, 'billing_phone', true );
if($first_name || $last_name):
echo $first_name . ' ' . $last_name;
else:
?>
<?php echo esc_html__( 'Name is not set', '_pll_e' ) ?>
<?php endif; ?>
</p>
</div>
<div class="cabinet-card__element">
<p class="cabinet-card__label"> <?php echo esc_html__( 'Phone', '_pll_e' ) ?>:</p>
<p class="cabinet-card__text <?php if (!$phone): ?>cabinet-card__text--grey<?php endif; ?>">
<?php if ($phone):
echo $phone;
else:
?>
<?php echo esc_html__( 'Not filled', '_pll_e' ) ?>
<?php endif ?>
</p>
</div>
<div class="cabinet-card__element">
<p class="cabinet-card__label"> <?php echo esc_html__( 'Email', '_pll_e' ) ?>:</p>
<?php if($current_user->user_email): ?>
<p class="cabinet-card__text"><?php echo $current_user->user_email ?></p>
<?php
if (get_field('activated', 'user_' . get_current_user_id())):
?>
<p class="cabinet-card__status cabinet-card__status--chek"> <?php echo esc_html__( 'Email is verified', '_pll_e' ) ?></p>
<?php
else:
?>
<p class="cabinet-card__status cabinet-card__status--cancelled"> <?php echo esc_html__( 'Email is not verified', '_pll_e' ) ?></p>
<form class="email_approve_form">
<input type="hidden" name="action" value="email_activate">
<button type="submit" class="cabinet-card__confirm">
<?php echo esc_html__( 'Verify', '_pll_e' ) ?>
</button>
</form>
<?php
if (get_field('uuid', 'user_' . get_current_user_id())):
?>
<p class="cabinet-card__status"> <?php echo esc_html__( 'Email width verification link is sent to your email.', '_pll_e' ) ?></p>
<?php
endif;
?>
<?php
endif;
?>
<?php else: ?>
<div class="cabinet-card__label">
<form class="email_link_form">
<input type="hidden" name="action" value="email_link">
<div class="cabinet-card_linked-email">
<input class="form__input" type="text" name="email" placeholder="example@example.com" required>
</div>
<button class="cabinet-card__confirm" type="submit"><?php echo pll__('Link email', '_pll_e'); ?></button>
</form>
</div>
<?php endif; ?>
</div>
<?php
$tg_account = get_user_meta( $current_user->ID, ' Traveling', true );
?>
<div class="cabinet-card__element">
<p class="cabinet-card__label"> <?php echo pll__( 'Linked accounts') ?>:</p>
<p class="cabinet-card__text cabinet-accounts">
<?php if ($tg_account): ?>
<svg width="40px" height="40px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid"><g><path d="M128,0 C57.307,0 0,57.307 0,128 L0,128 C0,198.693 57.307,256 128,256 L128,256 C198.693,256 256,198.693 256,128 L256,128 C256,57.307 198.693,0 128,0 L128,0 Z" fill="#40B3E0"></path><path d="M190.2826,73.6308 L167.4206,188.8978 C167.4206,188.8978 164.2236,196.8918 155.4306,193.0548 L102.6726,152.6068 L83.4886,143.3348 L51.1946,132.4628 C51.1946,132.4628 46.2386,130.7048 45.7586,126.8678 C45.2796,123.0308 51.3546,120.9528 51.3546,120.9528 L179.7306,70.5928 C179.7306,70.5928 190.2826,65.9568 190.2826,73.6308" fill="#FFFFFF"></path><path d="M98.6178,187.6035 C98.6178,187.6035 97.0778,187.4595 95.1588,181.3835 C93.2408,175.3085 83.4888,143.3345 83.4888,143.3345 L161.0258,94.0945 C161.0258,94.0945 165.5028,91.3765 165.3428,94.0945 C165.3428,94.0945 166.1418,94.5735 163.7438,96.8115 C161.3458,99.0505 102.8328,151.6475 102.8328,151.6475" fill="#D2E5F1"></path><path d="M122.9015,168.1154 L102.0335,187.1414 C102.0335,187.1414 100.4025,188.3794 98.6175,187.6034 L102.6135,152.2624" fill="#B5CFE4"></path></g></svg>
<?php else: ?>
<script async src="https://telegram.org/js/telegram-widget.js?2" data-telegram-login="<?= BOT_USERNAME; ?>" data-size="large" data-onauth="linkTelegram(user)"></script>
<?php endif ?>
</p>
</div>
<div class="cabinet-card__element">
<div class="cabinet-card__block-buttons">
<button class="cabinet-card__button user-edit-open">
<?php echo esc_html__( 'Edit', '_pll_e' ) ?>
</button>
<a href="<?php echo wp_logout_url(home_url()) ?>" class="cabinet-card__button">
<?php echo esc_html__( 'Logout', '_pll_e' ) ?>
</a>
</div>
</div>
</div>
</div>
<?php
// Получаем текущего пользователя
$current_user_id = get_current_user_id();
// Проверяем, что пользователь авторизован
if ($current_user_id) {
// Параметры для WP_Query
$args = array(
'post_type' => 'pets', // Тип постов
'meta_query' => array(
array(
'key' => 'user', // Имя метаполя
'value' => $current_user_id, // Значение метаполя (ID текущего пользователя)
'compare' => '=' // Условие сравнения
)
)
);
// Создаем новый объект WP_Query
$query = new \WP_Query($args);
if ($query->have_posts()) {
// Начинаем цикл по постам
while ($query->have_posts()) {
$query->the_post();
get_pet_card($post);
}
// Сбрасываем данные постов
wp_reset_postdata();
}
}
?>
<div class="cabinet-card cabinet-card--green">
<div class="cabinet-card__content">
<button class="cabinet-card__block-add-pets form-open" data-form="form-pet">
<div class="cabinet-card-add-pets__circle">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/plus-grey.svg" alt="">
</div>
<p class="cabinet-card-add-pets__text">
<?php echo esc_html__( 'Add a pet', '_pll_e' ) ?>
</p>
</button>
</div>
</div>
</div>
<div class="cabinet__orders cabinet-content active hide">
<div class="cabinet-card cabinet-card--green-white cabinet__subscription-pc">
<div class="cabinet-card__content">
<p class="cabinet-card__title">
<?php echo esc_html__( 'Feed subscription', '_pll_e' ) ?>
</p>
<div class="cabinet-card__element">
<p class="cabinet-card__text"> <?php echo esc_html__( 'Weekly food delivery for your pet', '_pll_e' ) ?></p>
</div>
<div class="cabinet-card__element">
<button class="button button--gradient button--high-46 form-sub__btn">
<?php echo esc_html__( 'Get details', '_pll_e' ) ?>
</button>
</div>
</div>
</div>
<?php
$customer_orders = wc_get_orders( array(
'customer_id' => $current_user->ID,
) );
if ($customer_orders):
foreach($customer_orders as $order):
$meta_data = get_post_meta($order->get_id(), 'order_data', true);
$shipping_address = $order->get_address( 'shipping' );
?>
<div class="cabinet-card cabinet-card--grey">
<div class="cabinet-card__content">
<div class="cabinet-card__order">
<div class="cabinet-card-order__header">
<div class="cabinet-card-order__main">
<p class="cabinet-card-order-main__date"><?php echo esc_html__( 'Order from', '_pll_e' ) ?> <?php echo $order->get_date_created()->date('Y.m.d') ?></p>
<p class="cabinet-card-order-main__number"><?php echo $order->get_id() ?></p>
</div>
<div class="cabinet-card-order__payment">
<p class="cabinet-card-order-payment__title"><?php echo esc_html__( 'Summary', '_pll_e' ) ?>:</p>
<p class="cabinet-card-order-payment__price"><?php echo $order->get_total() ?></p>
</div>
</div>
<div class="cabinet-card-order__bottom">
<div class="cabinet-card-order__content">
<?php
if ($meta_data){
$order_track = $meta_data['order_number'];
}
else{
$order_track = '';
}
?>
<div class="cabinet-card-order__block-detail">
<div class="cabinet-card-order__detail">
<div class="cabinet-card-order-detail__address">
<p class="cabinet-card-order-detail-address__title"><?php echo esc_html__( 'Delivery address', '_pll_e' ) ?> </p>
<p class="cabinet-card-order-detail-address__text">
<?php
if (isset($meta_data['office_code'])):
echo esc_html__( 'CDEK shipping point', '_pll_e' );
echo '<br>';
echo json_decode($api->getOffices(['code' => $meta_data['office_code']])['body'])[0]->name;
?>
<?php
else:
echo $shipping_address['city'] . ' ' . $shipping_address['address_1'];
?>
<?php
endif;
?>
</p>
</div>
<div class="cabinet-card-order-detail__main">
<div class="cabinet-card-order-detail-main__products">
<?php
foreach ($order->get_items() as $item_id => $item) :
$product_name = $item->get_name();
$product_quantity = $item->get_quantity();
$product_total = $item->get_total();
$product = $item->get_product();
if ($product){
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $product->get_id() ), 'thumbnail' );
}
else{
$thumbnail = '';
}
?>
<div class="cabinet-card-order-detail-main__product">
<img src="<?php echo $thumbnail[0]; ?>" alt="" class="cabinet-card-order-detail-main-product__img">
<div class="cabinet-card-order-detail-main-product__content">
<div class="cabinet-card-order-detail-main-product__description">
<p class="cabinet-card-order-detail-main-product-description__what"><?php echo $product_name ?></p>
<!-- <p class="cabinet-card-order-detail-main-product-description__with-what">Индейка, 2 <?php echo esc_html__('kg', '_pll_e' ); ?></p> -->
</div>
<p class="cabinet-card-order-detail-main-product__count"><?php echo $product_quantity ?></p>
<p class="cabinet-card-order-detail-main-product__price"><?php echo $product_total ?></p>
</div>
</div>
<?php endforeach; ?>
</div>
<div class="cabinet-card-order-detail-main__links">
<?php
if($order_track):
?>
<a href="https://www.cdek.ru/ru/tracking/?order_id=<?php echo $order_track ?>" target="_blank" class="cabinet-card__button cabinet-card-order-detail-main__link">
<?php echo esc_html__( 'Track order', '_pll_e' ) ?>
</a>
<?php endif; ?>
</div>
</div>
</div>
</div>
<button class="cabinet-card-order__open-detail"><?php echo esc_html__( 'Order details', '_pll_e' ) ?></button>
</div>
<div class="cabinet-card-order__detail-short">
<?php
foreach ($order->get_items() as $item_id => $item) :
$product = $item->get_product();
if ($product){
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $product->get_id() ), 'thumbnail' );
}
else{
$thumbnail = '';
}
?>
<?php if ($thumbnail[0]): ?>
<a href="<?php echo get_the_permalink($product->get_id()) ?>"><img src="<?= $thumbnail[0] ?>" alt="" class="cabinet-card-order-detail-short__item"></a>
<?php endif; ?>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
</div>
<?php
endforeach;
else:
?>
<div class="cabinet-card__no-orders">
<div class="cabinet-card-no-orders__element">
<p class="cabinet-card-no-orders__title"><?php echo esc_html__( 'No orders yet', '_pll_e' ) ?></p>
</div>
<div class="cabinet-card-no-orders__element">
<a href="/shop/" class="to-know button--100-perc to-know--background-none">
<p><?php echo esc_html__( 'Catalog', '_pll_e' ) ?></p>
</a>
</div>
</div>
<?php
endif;
?>
</div>
</div>
</main>
<?php
$args = array(
'post_type' => 'pets', // Тип постов
'meta_query' => array(
array(
'key' => 'user', // Имя метаполя
'value' => $current_user_id, // Значение метаполя (ID текущего пользователя)
'compare' => '=' // Условие сравнения
)
)
);
// Создаем новый объект WP_Query
$query = new \WP_Query($args);
if ($query->have_posts()) {
// Начинаем цикл по постам
while ($query->have_posts()) {
$query->the_post();
switch (get_field('weight')){
case ('below_1_5'):
$w = esc_html__('from 0,5 kg to 1,5 kg', '_pll_e' );
break;
case ('1_5-3'):
$w = esc_html__('from 1.5 to 3 kg', '_pll_e' );
break;
case ('3-5'):
$w = esc_html__('from 3 to 5 kg', '_pll_e' );
break;
case ('5-8'):
$w = esc_html__('from 5 to 8 kg', '_pll_e' );
break;
case ('8-11'):
$w = esc_html__('from 8 to 11 kg', '_pll_e' );
break;
case ('11-15'):
$w = esc_html__('from 11 to 15 kg', '_pll_e' );
break;
case ('15-20'):
$w = esc_html__('from 15 to 20 kg', '_pll_e' );
break;
case ('20-25'):
$w = esc_html__('from 20 to 25 kg', '_pll_e' );
break;
case ('25-35'):
$w = esc_html__('from 25 to 35 kg', '_pll_e' );
break;
case ('more_35'):
$w = esc_html__('More than 35 kg', '_pll_e' );
break;
}
switch (get_field('old')){
case ('normal'):
$old = __('Adult (from 1 year to 7 years)', '_pll_e' );
break;
case ('old'):
$old = __('Elderly (from 7 to 12 years)', '_pll_e' );
break;
case ('very_old'):
$old = __('Aging (12 years and older)', '_pll_e' );
break;
case ('baby'):
$old = __('Baby (from 0 to 1 year)', '_pll_e' );
break;
}
switch (get_field('activity')){
case ('low'):
$act = esc_html__('Low', '_pll_e' );
break;
case ('moderate'):
$act = esc_html__('Moderate', '_pll_e' );
break;
case ('high'):
$act = esc_html__('High', '_pll_e' );
break;
}
?>
<?php
$months = array(
esc_html__('january', '_pll_e' ),
esc_html__('february', '_pll_e' ),
esc_html__('march', '_pll_e' ),
esc_html__('april', '_pll_e' ),
esc_html__('may', '_pll_e' ),
esc_html__('june', '_pll_e' ),
esc_html__('july', '_pll_e' ),
esc_html__('august', '_pll_e' ),
esc_html__('september', '_pll_e' ),
esc_html__('october', '_pll_e' ),
esc_html__('november', '_pll_e' ),
esc_html__('december', '_pll_e' ),
);
?>
<div class="modalProfile" id="pet_edit_<?php echo get_the_ID($post); ?>">
<div class="popup-wrap">
<div class="modal-form form__full-mobile modal-form--white modal-form--height-100-phone form-pet active">
<button class="modal-form__close"></button>
<p class="modal-form__title"><?php echo esc_html__('Edit pet', '_pll_e' ); ?> <?php echo get_the_title() ?></p>
<form class="modal-form__content edit-pet-form" method="post" action="">
<input type="hidden" name="action" value="edit_pet">
<div class="modal-form-content__line">
<label class="label-name"><?php echo esc_html__('Pet type', '_pll_e' ); ?></label>
<div class="form-input__tabs">
<label class="form-input-tabs__button <?php if (get_field('type', $post) == 'cat'): ?> active <?php endif; ?>">
<?php echo esc_html__('Dog', '_pll_e' ); ?>
<input type="radio" value="cat" <?php if (get_field('type', $post) == 'cat'): ?> checked <?php endif; ?> name="pet" class="form-input-tabs__input">
</label>
<label class="form-input-tabs__button <?php if (get_field('type', $post) == 'dog'): ?> active <?php endif; ?>">
<?php echo esc_html__('Cat', '_pll_e' ); ?>
<input type="radio" value="dog" <?php if (get_field('type', $post) == 'dog'): ?> checked <?php endif; ?> name="pet" class="form-input-tabs__input">
</label>
</div>
</div>
<div class="modal-form-content__line sterilized" <?php if (get_field('type', $post) == 'dog'): ?> style="display: none;" <?php endif; ?>>
<label for="" class="label-name"><?php echo esc_html__('Sterilized', '_pll_e' ); ?></label>
<div class="form-input__tabs">
<label class="form-input-tabs__button <?php if (get_field('sterilized', $post)): ?> active<?php endif; ?>">
<?php echo esc_html__('Yes', '_pll_e' ); ?>
<input type="radio" value="1" <?php if (get_field('sterilized', $post)): ?> checked <?php endif; ?> name="sterilized" class="form-input-tabs__input">
</label>
<label class="form-input-tabs__button <?php if (!get_field('sterilized', $post)): ?> active<?php endif; ?>">
<?php echo esc_html__('No', '_pll_e' ); ?>
<input type="radio" value="0" <?php if (!get_field('sterilized', $post)): ?> checked <?php endif; ?> name="sterilized" class="form-input-tabs__input">
</label>
</div>
</div>
<div class="modal-form-content__line">
<div class="modal-form-content-line__element">
<label for="firstname" class="label-name"><?php echo esc_html__('Breed', '_pll_e' ); ?></label>
<input id="firstname" class="form__input" type="text" value="<?php echo get_field('breed', $post) ?>" name="breed"
placeholder="Порода вашего питомца" required="">
<!-- <span class="form-input__error form-input__error--absolute">Порода введено неверно</span> -->
</div>
</div>
<div class="modal-form-content__line">
<label for="" class="label-name"><?php echo esc_html__('Gender of your pet', '_pll_e' ); ?></label>
<div class="form-input__tabs">
<label class="form-input-tabs__button <?php if (get_field('sex', $post) == 'male'): ?> active<?php endif; ?>">
<?php echo esc_html__('Boy', '_pll_e' ); ?>
<input type="radio" value="male" <?php if (get_field('sex', $post) == 'male'): ?> checked<?php endif; ?> name="sex" class="form-input-tabs__input">
</label>
<label class="form-input-tabs__button <?php if (get_field('sex', $post) != 'male'): ?> active<?php endif; ?>">
<?php echo esc_html__('Girl', '_pll_e' ); ?>
<input type="radio" value="female" <?php if (get_field('sex', $post) != 'male'): ?> checked<?php endif; ?> name="sex" class="form-input-tabs__input">
</label>
</div>
</div>
<div class="modal-form-content__line modal-form-content__line--two">
<div class="modal-form-content-line__element">
<label class="label-name"><?php echo esc_html__('Type of activity', '_pll_e' ); ?></label>
<div class="form-input__list">
<div class="form-input-list__input"><?php echo $act ?></div>
<div class="form-input-list__block-content" style="height: 0px;">
<div class="form-input-list__content">
<label class="form-input-list__item <?php if (get_field('activity', $post) == 'low'): ?> active<?php endif; ?>">
<p class="form-input-list-item__text"><?php echo esc_html__('Low', '_pll_e' ); ?></p>
<input type="radio" required name="activity" <?php if (get_field('activity', $post) == 'low'): ?> checked<?php endif; ?> value="low" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item <?php if (get_field('activity', $post) == 'moderate'): ?> active<?php endif; ?>">
<p class="form-input-list-item__text"><?php echo esc_html__('Moderate', '_pll_e' ); ?></p>
<input type="radio" required name="activity" <?php if (get_field('activity', $post) == 'moderate'): ?> checked<?php endif; ?> value="moderate" class="v-hidden"
id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item <?php if (get_field('activity', $post) == 'high'): ?> active<?php endif; ?>">
<p class="form-input-list-item__text"><?php echo esc_html__('High', '_pll_e' ); ?></p>
<input type="radio" required name="activity" value="high" <?php if (get_field('activity', $post) == 'high'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
</div>
</div>
</div>
</div>
<div class="modal-form-content-line__element">
<label for="firstname" class="label-name"><?php echo esc_html__('Weight', '_pll_e' ); ?></label>
<div class="form-input__list">
<div class="form-input-list__input"><?php echo $w ?></div>
<div class="form-input-list__block-content" style="height: 0px;">
<div class="form-input-list__content">
<label class="form-input-list__item">
<p class="form-input-list-item__text">1-1.5 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == 'below_1_5'): ?> checked<?php endif; ?> value="below_1_5" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text">1.5-3 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == '1_5-3'): ?> checked<?php endif; ?> value="1_5-3" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text">3-5 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == '3-5'): ?> checked<?php endif; ?> value="3-5" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text">5-8 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == '5-8'): ?> checked<?php endif; ?> value="5-8" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text">8-11 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == '8-11'): ?> checked<?php endif; ?> value="8-11" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text">11-15 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == '11-15'): ?> checked<?php endif; ?> value="11-15" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text">15-20 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == '15-20'): ?> checked<?php endif; ?> value="15-20" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text">20-25 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == '20-25'): ?> checked<?php endif; ?> value="20-25" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text">25-35 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == '25-35'): ?> checked<?php endif; ?> value="25-35" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('More than', '_pll_e' ); ?> 35 <?php echo esc_html__('kg', '_pll_e' ); ?></p>
<input type="radio" required name="weight" <?php if (get_field('weight', $post) == 'more_35'): ?> checked<?php endif; ?> value="more_35" class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="rm">
<div class="modal-form-content__line">
<label for="" class="label-name"><?php echo esc_html__("Pet's age", '_pll_e' ); ?></label>
<div class="form-input__tabs form-input__remote-control" data-content="modal__age">
<label class="form-input-tabs__button active" data-rm="0">
<?php echo esc_html__('Exemplary', '_pll_e' ); ?>
<input type="radio" checked value="ex" name="old_type" required
class="form-input-tabs__input">
</label>
<label class="form-input-tabs__button" data-rm="1">
<?php echo esc_html__('Exact', '_pll_e' ); ?>
<input type="radio" value="acc" name="old_type" required
class="form-input-tabs__input">
</label>
</div>
</div>
<div class="modal__age">
<div class="form-input__radio remote-control__item active" data-rmcont="0">
<label class="form-input-radio__item <?php if (get_field('old', $post) == 'baby'): ?> active<?php endif; ?>" >
<input type="radio" name="old" value="baby" <?php if (get_field('old', $post) == 'baby'): ?> checked<?php endif; ?> class="v-hidden">
<div class="form-input-radio__circle">
<div class="form-input-radio-circle__content"></div>
</div>
<p class="form-input-radio__title"> <?php echo __('Baby <span>(from 0 to 1 year)</span>', '_pll_e' ); ?></p>
</label>
<label class="form-input-radio__item <?php if (get_field('old', $post) == 'normal'): ?> active<?php endif; ?>">
<input type="radio" name="old" value="normal" <?php if (get_field('old', $post) == 'normal'): ?> checked<?php endif; ?> class="v-hidden">
<div class="form-input-radio__circle">
<div class="form-input-radio-circle__content"></div>
</div>
<p class="form-input-radio__title"> <?php echo __('Adult <span>(from 1 year to 7 years)</span>', '_pll_e' ); ?></p>
</label>
<label class="form-input-radio__item <?php if (get_field('old', $post) == 'old'): ?> active<?php endif; ?>">
<input type="radio" name="old" value="old" <?php if (get_field('old', $post) == 'old'): ?> checked<?php endif; ?> class="v-hidden">
<div class="form-input-radio__circle">
<div class="form-input-radio-circle__content"></div>
</div>
<p class="form-input-radio__title"> <?php echo __('Elderly <span>(from 7 to 12 years)</span>', '_pll_e' ); ?></p>
</label>
<label class="form-input-radio__item <?php if (get_field('old', $post) == 'very_old'): ?> active<?php endif; ?>">
<input type="radio" name="old" <?php if (get_field('old', $post) == 'very_old'): ?> checked<?php endif; ?> value="very_old" class="v-hidden">
<div class="form-input-radio__circle">
<div class="form-input-radio-circle__content"></div>
</div>
<p class="form-input-radio__title"> <?php echo __('Aging <span>(12 years and older)</span>', '_pll_e' ); ?></p>
</label>
</div>
<div data-rmcont="1"
class="modal-form-content__line remote-control__item modal-form-content__line--three modal-form-content__line--margin-top-16 ">
<div class="modal-form-content-line__element">
<label for="firstname" class="label-name"><?php echo esc_html__('Day', '_pll_e' ); ?></label>
<input id="firstname" class="form__input form__input--center" maxlength="2" type="text"
name="day" placeholder="<?php echo esc_html__('DD', '_pll_e' ); ?>" value="<?php echo get_field('day', $post) ?>">
</div>
<div class="modal-form-content-line__element">
<label for="firstname" class="label-name"><?php echo esc_html__('Month', '_pll_e' ); ?></label>
<div class="form-input__list">
<?php
if(get_field('month', $post)):
?>
<div class="form-input-list__input"><?php echo $months[intval(get_field('month', $post)) - 1 ]; ?></div>
<?php
else:
?>
<div class="form-input-list__input"><?php echo esc_html__('Month', '_pll_e' ); ?></div>
<?php
endif;
?>
<div class="form-input-list__block-content">
<div class="form-input-list__content">
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('January', '_pll_e' ); ?></p>
<input type="radio" name="month" value="1" <?php if (get_field('month', $post) == '1'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('February', '_pll_e' ); ?></p>
<input type="radio" name="month" value="2" <?php if (get_field('month', $post) == '2'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('March', '_pll_e' ); ?></p>
<input type="radio" name="month" value="3" <?php if (get_field('month', $post) == '3'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('April', '_pll_e' ); ?></p>
<input type="radio" name="month" value="4" <?php if (get_field('month', $post) == '4'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('May', '_pll_e' ); ?></p>
<input type="radio" name="month" value="5" <?php if (get_field('month', $post) == '5'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('June', '_pll_e' ); ?></p>
<input type="radio" name="month" value="6" <?php if (get_field('month', $post) == '6'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('July', '_pll_e' ); ?></p>
<input type="radio" name="month" value="7" <?php if (get_field('month', $post) == '7'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('August', '_pll_e' ); ?></p>
<input type="radio" name="month" value="8" <?php if (get_field('month', $post) == '8'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('September', '_pll_e' ); ?></p>
<input type="radio" name="month" value="9" <?php if (get_field('month', $post) == '9'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg"
alt="">
</div>
</div>
</label>
<label class="form-input-list__item">
<p class="form-input-list-item__text"><?php echo esc_html__('October', '_pll_e' ); ?></p>
<input type="radio" name="month" value="10" <?php if (get_field('month', $post) == '10'): ?> checked<?php endif; ?> class="v-hidden" id="">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="<?= get_template_directory_uri();?>/gp-include/assets/lk/img/svg/main/arrow Progressive Web App (PWA) support
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

@ -1,21 +1,8 @@
{% set current_path = template_path ~ '/modules/blog/components/most-read' %} {% set current_path = template_path ~ '/modules/blog/components/most-read' %}
<div class="anons-best"> <div class="anons-best">
<h2 class="anons-best__title">{{ function('pll_e', 'САМЫЕ ЧИТАЕМЫЕ') }}:</h2> <h2 class="anons-best__title">{{ function('pll_e', 'САМЫЕ ЧИТАЕМЫЕ') }}:</h2>
<!-- Отладочная информация -->
{% if debug_info %}
<div style="display:none;">
<p>Метаполя с просмотрами:</p>
<ul>
{% for item in debug_info %}
<li>ID: {{ item.post_id }}, Ключ: {{ item.meta_key }}, Значение: {{ item.meta_value }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% if most_read and most_read|length > 0 %} {% if most_read and most_read|length > 0 %}
<ul class="anons-best__card-wrap"> <ul class="anons-best__card-wrap">
{% for post in most_read %} {% for post in most_read %}
@ -35,16 +22,15 @@
<div class="anons-best__card-body__datas"> <div class="anons-best__card-body__datas">
<p>{{ post.date|date('d.m.Y') }}</p> <p>{{ post.date|date('d.m.Y') }}</p>
<p>{{ function('pll_e', 'время чтения') }}: {{ post.reading_time|default('5 мин') }}</p> <p>{{ function('pll_e', 'время чтения') }}: {{ post.reading_time|default('5 мин') }}</p>
<ul> <ul class="anons-best__card-meta">
<li> <li>
<img src="{{ current_path }}/assets/img/heart-white.svg" alt=""> <img src="{{ current_path }}/assets/img/heart-white.svg" alt="">
<span>{{ function('get_post_likes_count', post.ID) }}</span> <span>{{ function('get_post_likes_count', post.ID) }}</span>
</li> </li>
<li>
<li> <img src="{{ current_path }}/assets/img/msg-white.svg" alt="">
<img src="{{ current_path }}/assets/img/msg-white.svg" alt=""> <span>{{ post.comment_count }}</span>
<span>{{ post.comment_count }}</span> </li>
</li>
{% if post.get_author_name %} {% if post.get_author_name %}
<li class="logo"> <li class="logo">
<a href="{{ post.get_author_link }}"> <a href="{{ post.get_author_link }}">
@ -53,7 +39,6 @@
</li> </li>
{% endif %} {% endif %}
</ul> </ul>
</div> </div>
</div> </div>
</li> </li>

@ -55,6 +55,74 @@
<!-- Footer end --> <!-- Footer end -->
<div class="modal">
<aside class="modal__aside">
<div class="modal__item modal__login">
<button class="modal__close">
<img src="<?php bloginfo('template_url');?>/gp-include/assets/core/img/svg/main/black-x.svg" alt="">
</button>
<div class="login_wrap login_forms">
<div class="login_inner step active">
<h2 class="login_title">Войти или зарегистрироваться</h2>
<div class="login_subtitle">Подтвердите свой e-mail в письме</div>
<div class="login_input js-input-email">
<input type="text" name="email" placeholder="example@example.com"/>
<div class="login_error"></div>
</div>
<button class="login_btn btn_gradient js-get-code">Получить код</button>
{{ function('tgWidget') }}
</div>
<div class="login_inner step">
<div class="login_back">
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="32" height="32" rx="16" fill="#121212"/><path d="M8.5 16.3633H25" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M8.5 16.3633L14.864 22.7272" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M8.5 16.3633L14.864 9.99932" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div>
<h2 class="login_title">Введите код</h2>
<div class="login_subtitle">Код отправленный на e-mail:<span class="sended_email"></span></div>
<div class="login_input js-input-code">
<input type="text" name="code" placeholder="0000"/>
<div class="login_error"></div>
</div>
<div class="login_timer">Запросить новый код: <span class="seconds">15</span> секунд</div>
<button class="login_btn btn_gradient js-repeat-code">Запросить новый код</button>
</div>
<div class="login_privacy">
Нажимая на кнопку «Получить код», я даю согласие на обработку моих персональных данных в соответствии с <a href="/privacy-policy">политикой обработки персональных данных</a>
</div>
</div>
<div class="login_wrap login_success hide">
<div class="login_inner active">
<h2 class="login_title">Спасибо<br />за авторизацию</h2>
<div class="login_subtitle">Теперь вы можете получать промокоды за покупки.</div>
<img src="<?php bloginfo('template_url');?>/images/people.png" alt=""/>
<a href="/my-account" class="login_btn account_link">Заполнить профиль</a>
</div>
</div>
<div class="login_wrap login_auth hide">
<div class="login_inner active">
<h2 class="login_title --text-center">
Вы вошли в систему</h2>
<img src="<?php bloginfo('template_url');?>/images/people.png" alt=""/>
<a href="/my-account" class="login_btn account_link">Профиль</a>
</div>
</div>
</div>
</aside>
</div>
{% verbatim %}
<div class="modal modal-success" style="display: none;">
<div class="modal-content">
<div class="close-button">&times;</div>
<h2 class="modal-title">ВАША ЗАЯВКА ПРИНЯТА!</h2>
<div class="modal-message">
<p>Спасибо! Сообщение успешно отправлено.</p>
<p>Наш менеджер скоро свяжемся с вами<br>для уточнения деталей.</p>
</div>
<div class="modal-button-container">
<a href="/" class="submit-button">Вернуться на сайт</a>
<div class="mform mform-success" style="display: none;"> <div class="mform mform-success" style="display: none;">
<div class="mform-content"> <div class="mform-content">
<div class="close-button">&times;</div> <div class="close-button">&times;</div>
@ -103,3 +171,122 @@
</div> </div>
</div> </div>
{% endverbatim %}
<script>
function onTelegramAuth(user) {
var data = {
action: 'ontelegramauth',
userid: user.id,
username: user.username,
fname: user.first_name,
lname: user.last_name
}
jQuery.ajax({
type: 'POST',
url: '/wp-admin/admin-ajax.php',
data: data,
success: function(){
location.href = '/my-account';
}
});
}
function linkTelegram(user) {
var data = {
action: 'linktelegram',
userid: user.id,
username: user.username,
fname: user.first_name,
lname: user.last_name
}
jQuery.ajax({
type: 'POST',
url: '/wp-admin/admin-ajax.php',
data: data,
success: function(){
jQuery('.cabinet-accounts').html('<svg width="40px" height="40px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid"><g><path d="M128,0 C57.307,0 0,57.307 0,128 L0,128 C0,198.693 57.307,256 128,256 L128,256 C198.693,256 256,198.693 256,128 L256,128 C256,57.307 198.693,0 128,0 L128,0 Z" fill="#40B3E0"></path><path d="M190.2826,73.6308 L167.4206,188.8978 C167.4206,188.8978 164.2236,196.8918 155.4306,193.0548 L102.6726,152.6068 L83.4886,143.3348 L51.1946,132.4628 C51.1946,132.4628 46.2386,130.7048 45.7586,126.8678 C45.2796,123.0308 51.3546,120.9528 51.3546,120.9528 L179.7306,70.5928 C179.7306,70.5928 190.2826,65.9568 190.2826,73.6308" fill="#FFFFFF"></path><path d="M98.6178,187.6035 C98.6178,187.6035 97.0778,187.4595 95.1588,181.3835 C93.2408,175.3085 83.4888,143.3345 83.4888,143.3345 L161.0258,94.0945 C161.0258,94.0945 165.5028,91.3765 165.3428,94.0945 C165.3428,94.0945 166.1418,94.5735 163.7438,96.8115 C161.3458,99.0505 102.8328,151.6475 102.8328,151.6475" fill="#D2E5F1"></path><path d="M122.9015,168.1154 L102.0335,187.1414 C102.0335,187.1414 100.4025,188.3794 98.6175,187.6034 L102.6135,152.2624" fill="#B5CFE4"></path></g></svg>');
}
});
}
document.addEventListener('DOMContentLoaded', function() {
// Получаем все формы на странице
const forms = document.querySelectorAll('form');
// Текущий URL страницы
const currentUrl = window.location.href;
// Перебираем все формы
forms.forEach(function(form) {
// Проверяем, нет ли уже такого поля в форме
const existingInput = form.querySelector('input[name="url"]');
if (!existingInput) {
// Создаем скрытое поле input
const urlInput = document.createElement('input');
urlInput.type = 'hidden';
urlInput.name = 'url';
urlInput.value = currentUrl;
// Добавляем поле в форму
form.appendChild(urlInput);
}
});
});
// Находим все элементы с классом login-open
document.addEventListener('DOMContentLoaded', function() {
const loginButtons = document.querySelectorAll('.login-open');
// Добавляем обработчик события для каждой кнопки
loginButtons.forEach(button => {
button.addEventListener('click', function(event) {
event.preventDefault(); // Предотвращаем стандартное действие (если это ссылка)
// Находим элементы модального окна
const modal = document.querySelector('.modal');
const modalAside = document.querySelector('.modal__aside');
const modalLogin = document.querySelector('.modal__login');
// Добавляем классы active
modal.classList.add('active');
modalLogin.classList.add('active');
// Устанавливаем ширину для modal__aside
modalAside.style.width = '412px';
});
});
// Опционально: добавляем функцию закрытия модального окна
// Например, при клике на фон или кнопку закрытия
const closeButtons = document.querySelectorAll('.modal-close');
const modal = document.querySelector('.modal');
// Закрытие по клику на кнопку закрытия
closeButtons.forEach(button => {
button.addEventListener('click', closeModal);
});
// Закрытие по клику на фон (если клик не на модальное окно)
modal.addEventListener('click', function(event) {
if (event.target === modal) {
closeModal();
}
});
function closeModal() {
const modal = document.querySelector('.modal');
const modalAside = document.querySelector('.modal__aside');
const modalLogin = document.querySelector('.modal__login');
// Удаляем классы active
modal.classList.remove('active');
modalLogin.classList.remove('active');
// Сбрасываем ширину
modalAside.style.width = '';
}
});
</script>

@ -236,6 +236,19 @@
</div> </div>
</button> </button>
</div> </div>
<div class="mini-profile__item">
{% if fn('is_user_logged_in') %}
<a href="{{ fn('wc_get_page_permalink', 'myaccount') }}" class="mini-profile__button">
<img src="https://cosmopet.shop/wp-content/themes/woodmart/gp-include/assets/core/img/svg/mini-profile/profile.svg" alt="" class="mini-profile__icon black">
<img src="https://cosmopet.shop/wp-content/themes/woodmart/gp-include/assets/core/img/svg/mini-profile/profile-w.svg" alt="" class="mini-profile__icon white">
</a>
{% else %}
<button class="mini-profile__button login-open">
<img src="https://cosmopet.shop/wp-content/themes/woodmart/gp-include/assets/core/img/svg/mini-profile/profile.svg" alt="" class="mini-profile__icon black">
<img src="https://cosmopet.shop/wp-content/themes/woodmart/gp-include/assets/core/img/svg/mini-profile/profile-w.svg" alt="" class="mini-profile__icon white">
</button>
{% endif %}
</div>
</div> </div>
</header> </header>

@ -1,5 +1,6 @@
{% set bodyClass = 'bg-white' %} {% set bodyClass = 'bg-white' %}
{% set mainClass = 'wrapper' %} {% set mainClass = 'wrapper' %}
{% extends 'layout.twig' %} {% extends 'layout.twig' %}
{% block content %} {% block content %}

@ -0,0 +1,537 @@
<main class="wrapper">
<div class="cabinet-card cabinet-card--green-white cabinet__subscription-mobile">
<div class="cabinet-card__content">
<p class="cabinet-card__title">
{{ __('Feed subscription', 'woodmart')|esc_html }}
</p>
<div class="cabinet-card__element">
<p class="cabinet-card__text">{{ __('Weekly food delivery for your pet', 'woodmart')|esc_html }}</p>
</div>
<div class="cabinet-card__element">
<button class="button button--gradient button--high-46 form-sub__btn">
{{ __('Get details', 'woodmart')|esc_html }}
</button>
</div>
</div>
</div>
<div class="cabinet__control">
<button class="cabinet-control__button active start" data-cabinet="orders">{{ __('Orders', 'woodmart')|esc_html }}</button>
<button class="cabinet-control__button" data-cabinet="profile">{{ __('Profile', 'woodmart')|esc_html }}</button>
</div>
<div class="cabinet">
<div class="cabinet__profile cabinet-content">
<div class="cabinet-card cabinet-card--green">
<div class="cabinet-card__content">
<div class="cabinet-card__element">
<p class="cabinet-card__text {% if not first_name and not last_name %}cabinet-card__text--grey{% endif %}">
{% if first_name or last_name %}
{{ first_name }} {{ last_name }}
{% else %}
{{ __('Name is not set', 'woodmart')|esc_html }}
{% endif %}
</p>
</div>
<div class="cabinet-card__element">
<p class="cabinet-card__label">{{ __('Phone', 'woodmart')|esc_html }}:</p>
<p class="cabinet-card__text {% if not phone %}cabinet-card__text--grey{% endif %}">
{% if phone %}
{{ phone }}
{% else %}
{{ __('Not filled', 'woodmart')|esc_html }}
{% endif %}
</p>
</div>
<div class="cabinet-card__element">
<p class="cabinet-card__label">{{ __('Email', 'woodmart')|esc_html }}:</p>
{% if email %}
<p class="cabinet-card__text">{{ email }}</p>
{% if activated %}
<p class="cabinet-card__status cabinet-card__status--chek">{{ __('Email is verified', 'woodmart')|esc_html }}</p>
{% else %}
<p class="cabinet-card__status cabinet-card__status--cancelled">{{ __('Email is not verified', 'woodmart')|esc_html }}</p>
<form class="email_approve_form">
<input type="hidden" name="action" value="email_activate">
<button type="submit" class="cabinet-card__confirm">{{ __('Verify', 'woodmart')|esc_html }}</button>
</form>
{% if uuid %}
<p class="cabinet-card__status">{{ __('Email with verification link is sent to your email.', 'woodmart')|esc_html }}</p>
{% endif %}
{% endif %}
{% else %}
<div class="cabinet-card__label">
<form class="email_link_form">
<input type="hidden" name="action" value="email_link">
<div class="cabinet-card_linked-email">
<input class="form__input" type="text" name="email" placeholder="example@example.com" required>
</div>
<button class="cabinet-card__confirm" type="submit">{{ __('Link email', 'woodmart')|esc_html }}</button>
</form>
</div>
{% endif %}
</div>
<div class="cabinet-card__element">
<p class="cabinet-card__label">{{ __('Linked accounts', 'woodmart')|esc_html }}:</p>
<p class="cabinet-card__text cabinet-accounts">
{% if tg_account %}
<svg width="40px" height="40px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M128,0 C57.307,0 0,57.307 0,128 L0,128 C0,198.693 57.307,256 128,256 L128,256 C198.693,256 256,198.693 256,128 L256,128 C256,57.307 198.693,0 128,0 L128,0 Z" fill="#40B3E0"></path>
<path d="M190.2826,73.6308 L167.4206,188.8978 C167.4206,188.8978 164.2236,196.8918 155.4306,193.0548 L102.6726,152.6068 L83.4886,143.3348 L51.1946,132.4628 C51.1946,132.4628 46.2386,130.7048 45.7586,126.8678 C45.2796,123.0308 51.3546,120.9528 51.3546,120.9528 L179.7306,70.5928 C179.7306,70.5928 190.2826,65.9568 190.2826,73.6308" fill="#FFFFFF"></path>
<path d="M98.6178,187.6035 C98.6178,187.6035 97.0778,187.4595 95.1588,181.3835 C93.2408,175.3085 83.4888,143.3345 83.4888,143.3345 L161.0258,94.0945 C161.0258,94.0945 165.5028,91.3765 165.3428,94.0945 C165.3428,94.0945 166.1418,94.5735 163.7438,96.8115 C161.3458,99.0505 102.8328,151.6475 102.8328,151.6475" fill="#D2E5F1"></path>
<path d="M122.9015,168.1154 L102.0335,187.1414 C102.0335,187.1414 100.4025,188.3794 98.6175,187.6034 L102.6135,152.2624" fill="#B5CFE4"></path>
</g>
</svg>
{% else %}
<script async src="https://telegram.org/js/telegram-widget.js?2" data-telegram-login="{{ bot_username }}" data-size="large" data-onauth="linkTelegram(user)"></script>
{% endif %}
</p>
</div>
<div class="cabinet-card__element">
<div class="cabinet-card__block-buttons">
<button class="cabinet-card__button user-edit-open">{{ __('Edit', 'woodmart')|esc_html }}</button>
<a href="{{ fn('wp_logout_url', fn('home_url')) }}" class="cabinet-card__button">{{ __('Logout', 'woodmart')|esc_html }}</a>
</div>
</div>
</div>
</div>
{% if pets %}
{% for pet in pets %}
{% include 'pet-card.twig' with { 'post': pet } %}
{% endfor %}
{% endif %}
<div class="cabinet-card cabinet-card--green">
<div class="cabinet-card__content">
<button class="cabinet-card__block-add-pets form-open" data-form="form-pet">
<div class="cabinet-card-add-pets__circle">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/plus-grey.svg" alt="">
</div>
<p class="cabinet-card-add-pets__text">{{ __('Add a pet', 'woodmart')|esc_html }}</p>
</button>
</div>
</div>
</div>
<div class="cabinet__orders cabinet-content active hide">
<div class="cabinet-card cabinet-card--green-white cabinet__subscription-pc">
<div class="cabinet-card__content">
<p class="cabinet-card__title">{{ __('Feed subscription', 'woodmart')|esc_html }}</p>
<div class="cabinet-card__element">
<p class="cabinet-card__text">{{ __('Weekly food delivery for your pet', 'woodmart')|esc_html }}</p>
</div>
<div class="cabinet-card__element">
<button class="button button--gradient button--high-46 form-sub__btn">{{ __('Get details', 'woodmart')|esc_html }}</button>
</div>
</div>
</div>
{% if customer_orders %}
{% for order in customer_orders %}
{% set meta_data = order.meta_data.order_data %}
{% set shipping_address = order.get_address('shipping') %}
<div class="cabinet-card cabinet-card--grey">
<div class="cabinet-card__content">
<div class="cabinet-card__order">
<div class="cabinet-card-order__header">
<div class="cabinet-card-order__main">
<p class="cabinet-card-order-main__date">{{ __('Order from', 'woodmart')|esc_html }} {{ order.date_created|date('Y.m.d') }}</p>
<p class="cabinet-card-order-main__number">{{ order.id }}</p>
</div>
<div class="cabinet-card-order__payment">
<p class="cabinet-card-order-payment__title">{{ __('Summary', 'woodmart')|esc_html }}:</p>
<p class="cabinet-card-order-payment__price">{{ order.total }}</p>
</div>
</div>
<div class="cabinet-card-order__bottom">
<div class="cabinet-card-order__content">
{% set order_track = meta_data.order_number|default('') %}
<div class="cabinet-card-order__block-detail">
<div class="cabinet-card-order__detail">
<div class="cabinet-card-order-detail__address">
<p class="cabinet-card-order-detail-address__title">{{ __('Delivery address', 'woodmart')|esc_html }}</p>
<p class="cabinet-card-order-detail-address__text">
{% if meta_data.office_code %}
{{ __('CDEK shipping point', 'woodmart')|esc_html }}<br>
{# Предполагается, что API-запрос обрабатывается в PHP, добавляем в контекст #}
{{ office_name }}
{% else %}
{{ shipping_address.city }} {{ shipping_address.address_1 }}
{% endif %}
</p>
</div>
<div class="cabinet-card-order-detail__main">
<div class="cabinet-card-order-detail-main__products">
{% for item in order.get_items %}
{% set product = item.get_product %}
{% set thumbnail = product ? product.thumbnail.src('thumbnail') : '' %}
<div class="cabinet-card-order-detail-main__product">
<img src="{{ thumbnail }}" alt="" class="cabinet-card-order-detail-main-product__img">
<div class="cabinet-card-order-detail-main-product__content">
<div class="cabinet-card-order-detail-main-product__description">
<p class="cabinet-card-order-detail-main-product-description__what">{{ item.name }}</p>
</div>
<p class="cabinet-card-order-detail-main-product__count">{{ item.quantity }}</p>
<p class="cabinet-card-order-detail-main-product__price">{{ item.total }}</p>
</div>
</div>
{% endfor %}
</div>
<div class="cabinet-card-order-detail-main__links">
{% if order_track %}
<a href="https://www.cdek.ru/ru/tracking/?order_id={{ order_track }}" target="_blank" class="cabinet-card__button cabinet-card-order-detail-main__link">
{{ __('Track order', 'woodmart')|esc_html }}
</a>
{% endif %}
</div>
</div>
</div>
</div>
<button class="cabinet-card-order__open-detail">{{ __('Order details', 'woodmart')|esc_html }}</button>
</div>
<div class="cabinet-card-order__detail-short">
{% for item in order.get_items %}
{% set product = item.get_product %}
{% set thumbnail = product ? product.thumbnail.src('thumbnail') : '' %}
{% if thumbnail %}
<a href="{{ product.permalink }}"><img src="{{ thumbnail }}" alt="" class="cabinet-card-order-detail-short__item"></a>
{% endif %}
{% endfor %}
</div>
</div>
</div>
</div>
</div>
{% endfor %}
{% else %}
<div class="cabinet-card__no-orders">
<div class="cabinet-card-no-orders__element">
<p class="cabinet-card-no-orders__title">{{ __('No orders yet', 'woodmart')|esc_html }}</p>
</div>
<div class="cabinet-card-no-orders__element">
<a href="/shop/" class="to-know button--100-perc to-know--background-none">
<p>{{ __('Catalog', 'woodmart')|esc_html }}</p>
</a>
</div>
</div>
{% endif %}
</div>
</div>
</main>
{% if pet %}
<div class="cabinet-card cabinet-card--green">
<div class="cabinet-card__content">
<div class="cabinet-card__element">
<p class="cabinet-card__label">{{ __('Weight', 'woodmart')|esc_html }}:</p>
<p class="cabinet-card__text">{{ pet.weight_text }}</p>
</div>
<div class="cabinet-card__element">
<p class="cabinet-card__label">{{ __('Age', 'woodmart')|esc_html }}:</p>
<p class="cabinet-card__text">{{ pet.old_text }}</p>
</div>
<div class="cabinet-card__element">
<p class="cabinet-card__label">{{ __('Activity', 'woodmart')|esc_html }}:</p>
<p class="cabinet-card__text">{{ pet.activity_text }}</p>
</div>
</div>
</div>
{% endif %}
<div class="modalProfile" id="pet_edit_{{ pet.ID }}">
<div class="popup-wrap">
<div class="modal-form form__full-mobile modal-form--white modal-form--height-100-phone form-pet active">
<button class="modal-form__close"></button>
<p class="modal-form__title">{{ __('Edit pet', 'woodmart')|esc_html }} {{ pet.title }}</p>
<form class="modal-form__content edit-pet-form" method="post" action="">
<input type="hidden" name="action" value="edit_pet">
<div class="modal-form-content__line">
<label class="label-name">{{ __('Pet type', 'woodmart')|esc_html }}</label>
<div class="form-input__tabs">
<label class="form-input-tabs__button {% if pet.type == 'cat' %}active{% endif %}">
{{ __('Dog', 'woodmart')|esc_html }}
<input come="true" inputtype="radio" value="cat" {% if pet.type == 'cat' %}checked{% endif %} name="pet" class="form-input-tabs__input" />
</label>
<label class="form-input-tabs__button {% if pet.type == 'dog' %}active{% endif %}">
{{ __('Cat', 'woodmart')|esc_html }}
<input type="radio" value="dog" {% if pet.type == 'dog' %}checked{% endif %} name="pet" class="form-input-tabs__input" />
</label>
</div>
</div>
<div class="modal-form-content__line sterilized" {% if pet.type == 'dog' %}style="display: none;"{% endif %}>
<label class="label-name">{{ __('Sterilized', 'woodmart')|esc_html }}</label>
<div class="form-input__tabs">
<label class="form-input-tabs__button {% if pet.sterilized %}active{% endif %}">
{{ __('Yes', 'woodmart')|esc_html }}
<input type="radio" value="1" {% if pet.sterilized %}checked{% endif %} name="sterilized" class="form-input-tabs__input" />
</label>
<label class="form-input-tabs__button {% if not pet.sterilized %}active{% endif %}">
{{ __('No', 'woodmart')|esc_html }}
<input type="radio" value="0" {% if not pet.sterilized %}checked{% endif %} name="sterilized" class="form-input-tabs__input" />
</label>
</div>
</div>
<div class="modal-form-content__line">
<div class="modal-form-content-line__element">
<label for="firstname" class="label-name">{{ __('Breed', 'woodmart')|esc_html }}</label>
<input id="firstname" class="form__input" type="text" value="{{ pet.breed }}" name="breed" placeholder="Порода вашего питомца" required>
</div>
</div>
<div class="modal-form-content__line">
<label class="label-name">{{ __('Gender of your pet', 'woodmart')|esc_html }}</label>
<div class="form-input__tabs">
<label class="form-input-tabs__button {% if pet.sex == 'male' %}active{% endif %}">
{{ __('Boy', 'woodmart')|esc_html }}
<input type="radio" value="male" {% if pet.sex == 'male' %}checked{% endif %} name="sex" class="form-input-tabs__input" />
</label>
<label class="form-input-tabs__button {% if pet.sex != 'male' %}active{% endif %}">
{{ __('Girl', 'woodmart')|esc_html }}
<input type="radio" value="female" {% if pet.sex != 'male' %}checked{% endif %} name="sex" class="form-input-tabs__input" />
</label>
</div>
</div>
<div class="modal-form-content__line modal-form-content__line--two">
<div class="modal-form-content-line__element">
<label class="label-name">{{ __('Type of activity', 'woodmart')|esc_html }}</label>
<div class="form-input__list">
<div class="form-input-list__input">{{ pet.activity_text }}</div>
<div class="form-input-list__block-content" style="height: 0px;">
<div class="form-input-list__content">
<label class="form-input-list__item {% if pet.activity == 'low' %}active{% endif %}">
<p class="form-input-list-item__text">{{ __('Low', 'woodmart')|esc_html }}</p>
<input type="radio" required name="activity" {% if pet.activity == 'low' %}checked{% endif %} value="low" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.activity == 'moderate' %}active{% endif %}">
<p class="form-input-list-item__text">{{ __('Moderate', 'woodmart')|esc_html }}</p>
<input type="radio" required name="activity" {% if pet.activity == 'moderate' %}checked{% endif %} value="moderate" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.activity == 'high' %}active{% endif %}">
<p class="form-input-list-item__text">{{ __('High', 'woodmart')|esc_html }}</p>
<input type="radio" required name="activity" {% if pet.activity == 'high' %}checked{% endif %} value="high" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
</div>
</div>
</div>
</div>
<div class="modal-form-content-line__element">
<label class="label-name">{{ __('Weight', 'woodmart')|esc_html }}</label>
<div class="form-input__list">
<div class="form-input-list__input">{{ pet.weight_text }}</div>
<div class="form-input-list__block-content" style="height: 0px;">
<div class="form-input-list__content">
<label class="form-input-list__item {% if pet.weight == 'below_1_5' %}active{% endif %}">
<p class="form-input-list-item__text">1-1.5 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == 'below_1_5' %}checked{% endif %} value="below_1_5" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.weight == '1_5-3' %}active{% endif %}">
<p class="form-input-list-item__text">1.5-3 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == '1_5-3' %}checked{% endif %} value="1_5-3" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.weight == '3-5' %}active{% endif %}">
<p class="form-input-list-item__text">3-5 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == '3-5' %}checked{% endif %} value="3-5" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.weight == '5-8' %}active{% endif %}">
<p class="form-input-list-item__text">5-8 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == '5-8' %}checked{% endif %} value="5-8" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.weight == '8-11' %}active{% endif %}">
<p class="form-input-list-item__text">8-11 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == '8-11' %}checked{% endif %} value="8-11" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.weight == '11-15' %}active{% endif %}">
<p class="form-input-list-item__text">11-15 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == '11-15' %}checked{% endif %} value="11-15" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.weight == '15-20' %}active{% endif %}">
<p class="form-input-list-item__text">15-20 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == '15-20' %}checked{% endif %} value="15-20" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.weight == '20-25' %}active{% endif %}">
<p class="form-input-list-item__text">20-25 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == '20-25' %}checked{% endif %} value="20-25" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.weight == '25-35' %}active{% endif %}">
<p class="form-input-list-item__text">25-35 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == '25-35' %}checked{% endif %} value="25-35" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
<label class="form-input-list__item {% if pet.weight == 'more_35' %}active{% endif %}">
<p class="form-input-list-item__text">{{ __('More than', 'woodmart')|esc_html }} 35 {{ __('kg', 'woodmart')|esc_html }}</p>
<input type="radio" required name="weight" {% if pet.weight == 'more_35' %}checked{% endif %} value="more_35" class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="modal-form-content__line">
<label class="label-name">{{ __('Pet\'s age', 'woodmart')|esc_html }}</label>
<div class="form-input__tabs form-input__remote-control" data-content="modal__age">
<label class="form-input-tabs__button active" data-rm="0">
{{ __('Exemplary', 'woodmart')|esc_html }}
<input type="radio" checked value="ex" name="old_type" required class="form-input-tabs__input">
</label>
<label class="form-input-tabs__button" data-rm="1">
{{ __('Exact', 'woodmart')|esc_html }}
<input type="radio" value="acc" name="old_type" required class="form-input-tabs__input">
</label>
</div>
</div>
<div class="modal__age">
<div class="form-input__radio remote-control__item active" data-rmcont="0">
<label class="form-input-radio__item {% if pet.old == 'baby' %}active{% endif %}">
<input type="radio" name="old" value="baby" {% if pet.old == 'baby' %}checked{% endif %} class="v-hidden">
<div class="form-input-radio__circle">
<div class="form-input-radio-circle__content"></div>
</div>
<p class="form-input-radio__title">{{ __('Baby <span>(from 0 to 1 year)</span>', 'woodmart')|raw }}</p>
</label>
<label class="form-input-radio__item {% if pet.old == 'normal' %}active{% endif %}">
<input type="radio" name="old" value="normal" {% if pet.old == 'normal' %}checked{% endif %} class="v-hidden">
<div class="form-input-radio__circle">
<div class="form-input-radio-circle__content"></div>
</div>
<p class="form-input-radio__title">{{ __('Adult <span>(from 1 year to 7 years)</span>', 'woodmart')|raw }}</p>
</label>
<label class="form-input-radio__item {% if pet.old == 'old' %}active{% endif %}">
<input type="radio" name="old" value="old" {% if pet.old == 'old' %}checked{% endif %} class="v-hidden">
<div class="form-input-radio__circle">
<div class="form-input-radio-circle__content"></div>
</div>
<p class="form-input-radio__title">{{ __('Elderly <span>(from 7 to 12 years)</span>', 'woodmart')|raw }}</p>
</label>
<label class="form-input-radio__item {% if pet.old == 'veryVvery_old' %}active{% endif %}">
<input type="radio" name="old" value="very_old" {% if pet.old == 'very_old' %}checked{% endif %} class="v-hidden">
<div class="form-input-radio__circle">
<div class="form-input-radio-circle__content"></div>
</div>
<p class="form-input-radio__title">{{ __('Aging <span>(12 years and older)</span>', 'woodmart')|raw }}</p>
</label>
</div>
<div data-rmcont="1" class="modal-form-content__line remote-control__item modal-form-content__line--three modal-form-content__line--margin-top-16">
<div class="modal-form-content-line__element">
<label for="firstname" class="label-name">{{ __('Day', 'woodmart')|esc_html }}</label>
<input id="firstname" class="form__input form__input--center" maxlength="2" type="text" name="day" placeholder="{{ __('DD', 'woodmart')|esc_html }}" value="{{ pet.day }}">
</div>
<div class="modal-form-content-line__element">
<label for="firstname" class="label-name">{{ __('Month', 'woodmart')|esc_html }}</label>
<div class="form-input__list">
{% if pet.month %}
<div class="form-input-list__input">{{ months[pet.month - 1] }}</div>
{% else %}
<div class="form-input-list__input">{{ __('Month', 'woodmart')|esc_html }}</div>
{% endif %}
<div class="form-input-list__block-content">
<div class="form-input-list__content">
{% for month, month_name in months %}
<label class="form-input-list__item {% if pet.month == loop.index %}active{% endif %}">
<p class="form-input-list-item__text">{{ month_name|esc_html }}</p>
<input type="radio" name="month" value="{{ loop.index }}" {% if pet.month == loop.index %}checked{% endif %} class="v-hidden">
<div class="form-input-list-item__box">
<div class="form-input-list-item-box__content">
<img src="{{ theme.link }}/gp-include/assets/lk/img/svg/main/arrow-selected-white.svg" alt="">
</div>
</div>
</label>
{% endfor %}
</div>
</div>
</div>
</div>
<div class="modal-form-content-line__element">
<label for="firstname" class="label-name">{{ __('Year', 'woodmart')|esc_html }}</label>
<input id="firstname" class="form__input form__input--center" maxlength="4" type="text" name="year" placeholder="{{ __('YYYY', 'woodmart')|esc_html }}" value="{{ pet.year }}">
</div>
</div>
</div>
<input type="hidden" name="pet_id" value="{{ pet.ID }}">
<div class="modal-form__buttons">
<button class="button button--gradient button--high button--100-perc" type="submit">{{ __('Save', 'woodmart')|esc_html }}</button>
</div>
</form>
</div>
</div>
</div>

@ -0,0 +1,119 @@
<?php
/**
* Login Form
*
* This template can be overridden by copying it to yourtheme/woocommerce/myaccount/form-login.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 9.7.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
do_action( 'woocommerce_before_customer_login_form' ); ?>
<?php if ( 'yes' === get_option( 'woocommerce_enable_myaccount_registration' ) ) : ?>
<div class="u-columns col2-set" id="customer_login">
<div class="u-column1 col-1">
<?php endif; ?>
<h2><?php esc_html_e( 'Login', 'woocommerce' ); ?></h2>
<form class="woocommerce-form woocommerce-form-login login" method="post" novalidate>
<?php do_action( 'woocommerce_login_form_start' ); ?>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="username"><?php esc_html_e( 'Username or email address', 'woocommerce' ); ?>&nbsp;<span class="required" aria-hidden="true">*</span><span class="screen-reader-text"><?php esc_html_e( 'Required', 'woocommerce' ); ?></span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="username" id="username" autocomplete="username" value="<?php echo ( ! empty( $_POST['username'] ) ) ? esc_attr( wp_unslash( $_POST['username'] ) ) : ''; ?>" required aria-required="true" /><?php // @codingStandardsIgnoreLine ?>
</p>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="password"><?php esc_html_e( 'Password', 'woocommerce' ); ?>&nbsp;<span class="required" aria-hidden="true">*</span><span class="screen-reader-text"><?php esc_html_e( 'Required', 'woocommerce' ); ?></span></label>
<input class="woocommerce-Input woocommerce-Input--text input-text" type="password" name="password" id="password" autocomplete="current-password" required aria-required="true" />
</p>
<?php do_action( 'woocommerce_login_form' ); ?>
<p class="form-row">
<label class="woocommerce-form__label woocommerce-form__label-for-checkbox woocommerce-form-login__rememberme">
<input class="woocommerce-form__input woocommerce-form__input-checkbox" name="rememberme" type="checkbox" id="rememberme" value="forever" /> <span><?php esc_html_e( 'Remember me', 'woocommerce' ); ?></span>
</label>
<?php wp_nonce_field( 'woocommerce-login', 'woocommerce-login-nonce' ); ?>
<button type="submit" class="woocommerce-button button woocommerce-form-login__submit<?php echo esc_attr( wc_wp_theme_get_element_class_name( 'button' ) ? ' ' . wc_wp_theme_get_element_class_name( 'button' ) : '' ); ?>" name="login" value="<?php esc_attr_e( 'Log in', 'woocommerce' ); ?>"><?php esc_html_e( 'Log in', 'woocommerce' ); ?></button>
</p>
<p class="woocommerce-LostPassword lost_password">
<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php esc_html_e( 'Lost your password?', 'woocommerce' ); ?></a>
</p>
<?php do_action( 'woocommerce_login_form_end' ); ?>
</form>
<?php if ( 'yes' === get_option( 'woocommerce_enable_myaccount_registration' ) ) : ?>
</div>
<div class="u-column2 col-2">
<h2><?php esc_html_e( 'Register', 'woocommerce' ); ?></h2>
<form method="post" class="woocommerce-form woocommerce-form-register register" <?php do_action( 'woocommerce_register_form_tag' ); ?> >
<?php do_action( 'woocommerce_register_form_start' ); ?>
<?php if ( 'no' === get_option( 'woocommerce_registration_generate_username' ) ) : ?>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="reg_username"><?php esc_html_e( 'Username', 'woocommerce' ); ?>&nbsp;<span class="required" aria-hidden="true">*</span><span class="screen-reader-text"><?php esc_html_e( 'Required', 'woocommerce' ); ?></span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="username" id="reg_username" autocomplete="username" value="<?php echo ( ! empty( $_POST['username'] ) ) ? esc_attr( wp_unslash( $_POST['username'] ) ) : ''; ?>" required aria-required="true" /><?php // @codingStandardsIgnoreLine ?>
</p>
<?php endif; ?>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="reg_email"><?php esc_html_e( 'Email address', 'woocommerce' ); ?>&nbsp;<span class="required" aria-hidden="true">*</span><span class="screen-reader-text"><?php esc_html_e( 'Required', 'woocommerce' ); ?></span></label>
<input type="email" class="woocommerce-Input woocommerce-Input--text input-text" name="email" id="reg_email" autocomplete="email" value="<?php echo ( ! empty( $_POST['email'] ) ) ? esc_attr( wp_unslash( $_POST['email'] ) ) : ''; ?>" required aria-required="true" /><?php // @codingStandardsIgnoreLine ?>
</p>
<?php if ( 'no' === get_option( 'woocommerce_registration_generate_password' ) ) : ?>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="reg_password"><?php esc_html_e( 'Password', 'woocommerce' ); ?>&nbsp;<span class="required" aria-hidden="true">*</span><span class="screen-reader-text"><?php esc_html_e( 'Required', 'woocommerce' ); ?></span></label>
<input type="password" class="woocommerce-Input woocommerce-Input--text input-text" name="password" id="reg_password" autocomplete="new-password" required aria-required="true" />
</p>
<?php else : ?>
<p><?php esc_html_e( 'A link to set a new password will be sent to your email address.', 'woocommerce' ); ?></p>
<?php endif; ?>
<?php do_action( 'woocommerce_register_form' ); ?>
<p class="woocommerce-form-row form-row">
<?php wp_nonce_field( 'woocommerce-register', 'woocommerce-register-nonce' ); ?>
<button type="submit" class="woocommerce-Button woocommerce-button button<?php echo esc_attr( wc_wp_theme_get_element_class_name( 'button' ) ? ' ' . wc_wp_theme_get_element_class_name( 'button' ) : '' ); ?> woocommerce-form-register__submit" name="register" value="<?php esc_attr_e( 'Register', 'woocommerce' ); ?>"><?php esc_html_e( 'Register', 'woocommerce' ); ?></button>
</p>
<?php do_action( 'woocommerce_register_form_end' ); ?>
</form>
</div>
</div>
<?php endif; ?>
<?php do_action( 'woocommerce_after_customer_login_form' ); ?>

@ -0,0 +1,4 @@
<?php
// include_module('profile');
// include_component('profile', 'profile');
?>

@ -0,0 +1,93 @@
<?php
/**
* My Addresses
*
* This template can be overridden by copying it to yourtheme/woocommerce/myaccount/my-address.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 9.3.0
*/
defined( 'ABSPATH' ) || exit;
$customer_id = get_current_user_id();
if ( ! wc_ship_to_billing_address_only() && wc_shipping_enabled() ) {
$get_addresses = apply_filters(
'woocommerce_my_account_get_addresses',
array(
'billing' => __( '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;
?>
<p>
<?php echo apply_filters( 'woocommerce_my_account_my_address_description', esc_html__( 'The following addresses will be used on the checkout page by default.', 'woocommerce' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</p>
<?php if ( ! wc_ship_to_billing_address_only() && wc_shipping_enabled() ) : ?>
<div class="u-columns woocommerce-Addresses col2-set addresses">
<?php endif; ?>
<?php foreach ( $get_addresses as $name => $address_title ) : ?>
<?php
$address = wc_get_account_formatted_address( $name );
$col = $col * -1;
$oldcol = $oldcol * -1;
?>
<div class="u-column<?php echo $col < 0 ? 1 : 2; ?> col-<?php echo $oldcol < 0 ? 1 : 2; ?> woocommerce-Address">
<header class="woocommerce-Address-title title">
<h2><?php echo esc_html( $address_title ); ?></h2>
<a href="<?php echo esc_url( wc_get_endpoint_url( 'edit-address', $name ) ); ?>" class="edit">
<?php
printf(
/* translators: %s: Address title */
$address ? esc_html__( 'Edit %s', 'woocommerce' ) : esc_html__( 'Add %s', 'woocommerce' ),
esc_html( $address_title )
);
?>
</a>
</header>
<address>
<?php
echo $address ? wp_kses_post( $address ) : esc_html_e( 'You have not set up this type of address yet.', 'woocommerce' );
/**
* Used to output content after core address fields.
*
* @param string $name Address type.
* @since 8.7.0
*/
do_action( 'woocommerce_my_account_after_my_address', $name );
?>
</address>
</div>
<?php endforeach; ?>
<?php if ( ! wc_ship_to_billing_address_only() && wc_shipping_enabled() ) : ?>
</div>
<?php
endif;
Loading…
Cancel
Save