diff --git a/wp-content/themes/cosmopet/functions.php b/wp-content/themes/cosmopet/functions.php index 575606e..6013f71 100644 --- a/wp-content/themes/cosmopet/functions.php +++ b/wp-content/themes/cosmopet/functions.php @@ -32,6 +32,7 @@ add_filter('timber/post/classmap', function ($classmap) { return $classmap; }, 100); +<<<<<<< HEAD <<<<<<< HEAD add_filter('timber/post/classmap', function ($classmap) { $classmap['product'] = CosmopetProduct::class; @@ -40,13 +41,21 @@ add_filter('timber/post/classmap', function ($classmap) { ======= >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) function allow_svg_upload($mimes) { $mimes['svg'] = 'image/svg+xml'; return $mimes; } <<<<<<< HEAD +<<<<<<< HEAD add_filter('upload_mimes', 'allow_svg_upload'); ======= add_filter('upload_mimes', 'allow_svg_upload'); >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +add_filter('upload_mimes', 'allow_svg_upload'); +======= +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) diff --git a/wp-content/themes/cosmopet/modules/shop/CosmopetProduct.php b/wp-content/themes/cosmopet/modules/shop/CosmopetProduct.php index 841a530..9f2d8f5 100644 --- a/wp-content/themes/cosmopet/modules/shop/CosmopetProduct.php +++ b/wp-content/themes/cosmopet/modules/shop/CosmopetProduct.php @@ -9,6 +9,9 @@ class CosmopetProduct extends TimberProduct { protected $sibling_categories = [ <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) 'pa_compound', 'pa_dog-size', 'pa_reproductive-status', @@ -19,6 +22,7 @@ class CosmopetProduct extends TimberProduct { 'pa_age-of-the-dog', 'pa_compound', 'pa_reproductive-status', +<<<<<<< HEAD >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= 'pa_compound', @@ -27,6 +31,9 @@ class CosmopetProduct extends TimberProduct { 'pa_age-of-the-cat', 'pa_age-of-the-dog', >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) 'pa_series', ]; @@ -62,6 +69,7 @@ class CosmopetProduct extends TimberProduct { // Получаем галерею изображений if ($this->product && method_exists($this->product, 'get_gallery_image_ids')) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD $gallery_image_ids = $this->product->get_gallery_image_ids(); ======= @@ -70,6 +78,12 @@ class CosmopetProduct extends TimberProduct { ======= $gallery_image_ids = $this->product->get_gallery_image_ids(); >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= + $gallery_image_ids = $this->product->get_gallery_image_ids(); +======= + $gallery_image_ids = $this->product->get_gallery_image_ids(); +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) } else { $gallery_image_ids = []; } @@ -101,6 +115,7 @@ class CosmopetProduct extends TimberProduct { else{ if ($this->product && method_exists($this->product, 'get_weight')) { <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; ======= @@ -109,6 +124,12 @@ class CosmopetProduct extends TimberProduct { ======= return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= + return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; +======= + return $this->product->get_weight() ? $this->product->get_weight() . ' ' . $custom_measurement : ''; +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) } return ''; } @@ -157,7 +178,11 @@ class CosmopetProduct extends TimberProduct { if ($cat == 365) { $is_food = true; } elseif ($cat == 367) { +<<<<<<< HEAD >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) +======= +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) $is_treats = true; } } @@ -267,6 +292,7 @@ class CosmopetProduct extends TimberProduct { $sorted_siblings = array_map(function($item) { return $item['post']; <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD }, $siblings_with_weights); ======= @@ -275,6 +301,12 @@ class CosmopetProduct extends TimberProduct { ======= }, $siblings_with_weights); >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= + }, $siblings_with_weights); +======= + }, $siblings_with_weights); +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) return $sorted_siblings; } @@ -324,6 +356,9 @@ class CosmopetProduct extends TimberProduct { <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) // Получаем упорядоченные таксономии @@ -368,6 +403,7 @@ class CosmopetProduct extends TimberProduct { error_log("Текущий вес (числовой): " . $current_weight); error_log("Всего товаров в коллекции: " . count($all_products)); error_log("Атрибуты текущего товара: " . print_r($current_product_attributes, true)); +<<<<<<< HEAD ======= >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) @@ -403,6 +439,17 @@ class CosmopetProduct extends TimberProduct { } <<<<<<< HEAD +======= + + // Группируем товары по атрибутам + foreach ($this->sibling_categories as $taxonomy) { + // Проверяем, есть ли у текущего товара значение для этой категории + if (!isset($current_product_attributes[$taxonomy])) { + error_log("Пропускаем $taxonomy - нет значения у текущего товара"); + continue; // Пропускаем, если у товара нет значения для этой категории + } + +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) $constructor[$taxonomy] = [ 'taxonomy' => $taxonomy, 'label' => $this->getAttributeLabel($taxonomy), @@ -423,6 +470,7 @@ class CosmopetProduct extends TimberProduct { return $term->term_id; }, $terms); } +<<<<<<< HEAD >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= // Проверяем, подходит ли товар для каждой таксономии @@ -431,23 +479,33 @@ class CosmopetProduct extends TimberProduct { if (!isset($current_product_attributes[$taxonomy])) { continue; >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) } // Проверяем, совпадают ли все остальные атрибуты и вес $attributes_match = true; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) // Проверяем все атрибуты кроме текущей таксономии ======= $differences = []; // Проверяем только атрибуты из sibling_categories +<<<<<<< HEAD >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= // Проверяем все атрибуты кроме текущей таксономии >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) foreach ($this->sibling_categories as $compare_taxonomy) { if ($compare_taxonomy === $taxonomy) { continue; // Пропускаем проверяемую категорию @@ -460,11 +518,17 @@ class CosmopetProduct extends TimberProduct { $attributes_match = false; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= $differences[] = "Нет атрибута $compare_taxonomy у сравниваемого товара"; >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +======= + $differences[] = "Нет атрибута $compare_taxonomy у сравниваемого товара"; +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) break; } @@ -477,11 +541,17 @@ class CosmopetProduct extends TimberProduct { $attributes_match = false; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= $differences[] = "Не совпадают значения для $compare_taxonomy"; >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +======= + $differences[] = "Не совпадают значения для $compare_taxonomy"; +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) break; } } @@ -492,11 +562,17 @@ class CosmopetProduct extends TimberProduct { $attributes_match = false; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= $differences[] = "У сравниваемого товара есть атрибут $compare_taxonomy, а у текущего нет"; >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +======= + $differences[] = "У сравниваемого товара есть атрибут $compare_taxonomy, а у текущего нет"; +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) break; } } @@ -505,6 +581,9 @@ class CosmopetProduct extends TimberProduct { // Проверяем вес (числовое сравнение) <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) if (abs($current_weight - $compare_weight) > 0.01) { $attributes_match = false; ======= @@ -512,22 +591,32 @@ class CosmopetProduct extends TimberProduct { if (abs($current_weight - $compare_weight) > 0.01) { // Используем небольшой допуск для float $attributes_match = false; $differences[] = "Не совпадает вес: текущий '$current_weight' vs сравниваемый '$compare_weight'"; +<<<<<<< HEAD >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= if (abs($current_weight - $compare_weight) > 0.01) { $attributes_match = false; >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) } // Если все атрибуты и вес совпадают, добавляем товар в группу if ($attributes_match) { <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= error_log("Товар {$product->id} подходит для атрибута $taxonomy"); >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +======= + error_log("Товар {$product->id} подходит для атрибута $taxonomy"); +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) $product_terms = get_the_terms($product->id, $taxonomy); if ($product_terms && !is_wp_error($product_terms)) { foreach ($product_terms as $term) { @@ -537,18 +626,25 @@ class CosmopetProduct extends TimberProduct { 'term_id' => $term->term_id, <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) 'name' => $this->getTermName($term->term_id, $taxonomy), 'slug' => $term->slug, 'icon' => $this->getTermIcon($term->term_id, $taxonomy), ======= 'name' => $term->name, 'slug' => $term->slug, +<<<<<<< HEAD >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= 'name' => $this->getTermName($term->term_id, $taxonomy), 'slug' => $term->slug, 'icon' => $this->getTermIcon($term->term_id, $taxonomy), >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) 'products' => [] ]; } @@ -557,6 +653,9 @@ class CosmopetProduct extends TimberProduct { } <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) } } } @@ -608,12 +707,16 @@ class CosmopetProduct extends TimberProduct { error_log("Опция $option_id ({$option['name']}): " . count($option['products']) . " товаров"); foreach ($option['products'] as $product) { error_log(" - Товар {$product->id}: {$product->title}"); +<<<<<<< HEAD ======= >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) } } } +<<<<<<< HEAD // Сортируем опции по порядку терминов для каждой таксономии foreach ($constructor as $taxonomy => $taxonomy_data) { if (isset($ordered_taxonomies[$taxonomy])) { @@ -643,11 +746,20 @@ class CosmopetProduct extends TimberProduct { // Fallback на старые метки $labels = [ <<<<<<< HEAD +======= + error_log("Итоговый конструктор: " . print_r($constructor, true)); + return $constructor; + } + + protected function getAttributeLabel($taxonomy) { + $labels = [ +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) 'pa_age-of-the-cat' => 'ВОЗРАСТ КОШКИ', 'pa_age-of-the-dog' => 'ВОЗРАСТ СОБАКИ', 'pa_compound' => 'ВКУС КОРМА', 'pa_reproductive-status' => 'РЕПРОДУКТИВНЫЙ СТАТУС', 'pa_series' => 'СЕРИЯ', +<<<<<<< HEAD >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= 'pa_age-of-the-cat' => pll__('ВОЗРАСТ КОШКИ'), @@ -657,6 +769,9 @@ class CosmopetProduct extends TimberProduct { 'pa_reproductive-status' => pll__('ВИД КОШКИ'), 'pa_series' => pll__('СЕРИЯ'), >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) ]; return $labels[$taxonomy] ?? wc_attribute_label($taxonomy); @@ -670,10 +785,13 @@ class CosmopetProduct extends TimberProduct { return null; } +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD ======= >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) /** * Получает таксономии в правильном порядке с учетом сортировки * @return array Массив таксономий с их порядком @@ -839,11 +957,16 @@ class CosmopetProduct extends TimberProduct { +<<<<<<< HEAD <<<<<<< HEAD ======= >>>>>>> 909cd3ca (Task 7719 | натяжка верстки single страницы товара) ======= >>>>>>> 51869ae1 (Task 7719 | натяжка верстки single товара.) +======= +======= +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) public function getAllAttributes() { $attributes = []; foreach ($this->sibling_categories as $taxonomy) { diff --git a/wp-content/themes/cosmopet/modules/shop/components/product-single--new/assets/css/product-style.css b/wp-content/themes/cosmopet/modules/shop/components/product-single--new/assets/css/product-style.css index 04a0666..aeeb1e2 100644 --- a/wp-content/themes/cosmopet/modules/shop/components/product-single--new/assets/css/product-style.css +++ b/wp-content/themes/cosmopet/modules/shop/components/product-single--new/assets/css/product-style.css @@ -756,7 +756,11 @@ line-height: 143%; .stock, .quantity{ display: none; +<<<<<<< HEAD +======= +<<<<<<< HEAD:wp-content/themes/cosmopet/modules/shop/components/product-single--new/assets/css/product-style.css +>>>>>>> 4db62697 (Task 7719 | натяжка верстки single страницы товара) } @@ -900,3 +904,6 @@ line-height: 143%; .product-incart__wrap.loading .product-incart__count { opacity: 0.5; } +======= +} +>>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара):wp-content/themes/cosmopet/modules/shop/components/single-product_new/assets/css/product-style.css diff --git a/wp-content/themes/cosmopet/modules/shop/components/single-product_new/component-controller.php b/wp-content/themes/cosmopet/modules/shop/components/single-product_new/component-controller.php new file mode 100644 index 0000000..9e903c1 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/shop/components/single-product_new/component-controller.php @@ -0,0 +1,13 @@ + +>>>>>> 7da02c80 (Task 7719 | натяжка верстки single страницы товара) diff --git a/wp-content/themes/cosmopet/views/_pages/new-front-page.twig b/wp-content/themes/cosmopet/views/_pages/new-front-page.twig index c9aed40..307241f 100644 --- a/wp-content/themes/cosmopet/views/_pages/new-front-page.twig +++ b/wp-content/themes/cosmopet/views/_pages/new-front-page.twig @@ -21,7 +21,6 @@ {% include '_pages/new-front-page/main-cosmopetx.twig' %} {% include '_pages/new-front-page/main-gallery.twig' %} - diff --git a/wp-content/themes/cosmopet/views/_pages/shop/archive-product.twig b/wp-content/themes/cosmopet/views/_pages/shop/archive-product.twig new file mode 100644 index 0000000..a10d96c --- /dev/null +++ b/wp-content/themes/cosmopet/views/_pages/shop/archive-product.twig @@ -0,0 +1,86 @@ +{% set bodyClass = 'bg-white' %} +{% set mainClass = 'wrapper' %} +{% extends 'layout.twig' %} + +{% block content %} + + + +
+
+

+ {% if category %} + {{ category.name }} + {% else %} + {{ function('pll_e', 'Продукция') }} + {% endif %} +

+ + +
+ + {% if active_filters|length > 0 %} +
+ {% if active_filters is not empty %} +
+ {% for filter in active_filters %} + + {{ filter.name }} × + + {% endfor %} +
+ {% endif %} + + +
+ {% endif %} + +
+ + {% if posts|length > 0 %} + {% for post in posts %} + + + {% set class = post.getTasteClass %} + {% set section = class ~ ' product-archive-card' %} + + + {% include 'shop/product-card.twig' with {_product : fn('wc_get_product', post.id), section: section} %} + + + {% endfor %} + {% else %} +
+ +
{{ fn('pll_e', 'coming soon') }}
+
{{ fn('pll_e', 'This item is not on our website yet, but it will be here very soon') }}
+
+ {% endif %} +
+ + +
+ +{% endblock %} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/views/shop/single-product.twig b/wp-content/themes/cosmopet/views/shop/single-product.twig new file mode 100644 index 0000000..c47eab8 --- /dev/null +++ b/wp-content/themes/cosmopet/views/shop/single-product.twig @@ -0,0 +1,321 @@ +{% set bodyClass = 'bg-white' %} +{% set mainClass = '' %} +{% extends 'layout.twig' %} + +{% block content %} +
+
+ +
+
+

+ {{post.title}} +

+
+

{{ fn('pll_e', 'СОСТАВ') }}

+
{{ post.getComposition }}
+
+
+

{{ fn('pll_e', 'ПИЩЕВАЯ ЦЕННОСТЬ') }}

+
+ + {% set nutritional_value = post.nutritional_value %} + {% if nutritional_value.protein %} +
+
{{ fn('pll_e', 'Сырой белок') }}
+
{{nutritional_value.protein}}
+
+ {% endif %} + {% if nutritional_value.fat %} +
+
{{ fn('pll_e', 'Сырой жир') }}
+
{{nutritional_value.fat}}
+
+ {% endif %} + {% if nutritional_value.fiber %} +
+
{{ fn('pll_e', 'Сырая клетчатка') }}
+
{{nutritional_value.fiber}}
+
+ {% endif %} + {% if nutritional_value.ash %} +
+
{{ fn('pll_e', 'Сырая зола') }}
+
{{nutritional_value.ash}}
+
+ {% endif %} + {% if nutritional_value.wat %} +
+
{{ fn('pll_e', 'Влажность') }}
+
{{nutritional_value.wat}}
+
+ {% endif %} + {% if nutritional_value.calcium %} +
+
{{ fn('pll_e', 'Кальций') }}
+
{{nutritional_value.calcium}}
+
+ {% endif %} + {% if nutritional_value.phosphorus %} +
+
{{ fn('pll_e', 'Фосфор') }}
+
{{nutritional_value.phosphorus}}
+
+ {% endif %} + {% if nutritional_value.omega_6 %} +
+
{{ fn('pll_e', 'Омега 6') }}
+
{{nutritional_value.omega_6}}
+
+ {% endif %} + {% if nutritional_value.omega_3 %} +
+
{{ fn('pll_e', 'Омега 3') }}
+
{{nutritional_value.omega_3}}
+
+ {% endif %} +
+ {% set vitamins = post.vitamins %} + {% if vitamins %} +
+
+ {{ fn('pll_e', 'Витамины на кг') }} +
+
+ + {% if vitamins.vitamin_a_me %} +
A, ME — {{vitamins.vitamin_a_me}}
+ {% endif %} + {% if vitamins.vitamin_d3_me %} +
D3, ME — {{vitamins.vitamin_d3_me}}
+ {% endif %} + {% if vitamins.vitamin_e %} +
E — {{vitamins.vitamin_e}}
+ {% endif %} + {% if vitamins.tiamin %} +
{{ fn('pll_e', 'Тиамин') }} — {{vitamins.tiamin}}
+ {% endif %} + {% if vitamins.riboflavin %} +
{{ fn('pll_e', 'Рибофлавин') }} — {{vitamins.riboflavin}}
+ {% endif %} + {% if vitamins.pantothenic_acid %} +
{{ fn('pll_e', 'Пантотеновая кислота') }} — {{vitamins.pantothenic_acid}}
+ {% endif %} + {% if vitamins.niaczin %} +
{{ fn('pll_e', 'Ниацин') }} — {{vitamins.niaczin}}
+ {% endif %} + {% if vitamins.piridoksin %} +
{{ fn('pll_e', 'Пиридоксин') }} — {{vitamins.piridoksin}}
+ {% endif %} + {% if vitamins.folic_acid %} +
{{ fn('pll_e', 'Фолиевая кислота') }} — {{vitamins.folic_acid}}
+ {% endif %} + {% if vitamins.vitamin_b12 %} +
{{ fn('pll_e', 'Витамин B12') }} — {{vitamins.vitamin_b12}}
+ {% endif %} + {% if vitamins.holin %} +
{{ fn('pll_e', 'Холин') }} — {{vitamins.holin}}
+ {% endif %} +
+
+ {% endif %} +
+
+
+ +

+ {{post.title}} +

+
+
+ {% set constructor = post.getProductConstructor %} + {% for taxonomy, attribute_data in constructor %} + + {% endfor %} + + {% set size_siblings = post.getSizeSiblings %} + {% if size_siblings %} +
+
{{fn('pll_e', 'ВЕС УПАКОВКИ')}}
+
+ {% for sibling in size_siblings %} + +
{{sibling.get_weight}}
+
+ {% endfor %} +
+
+ {% endif %} + +
+
+ {{post.getPrice}} +
+ {% if post.getRegularPrice %} +
+
{{post.getRegularPrice}}
+
+ {{ post.getPriceDifferenceInPercent }} +
+
+ {% endif %} +
+ {% set in_stock = post.meta('_stock_status') == 'instock' %} + {% if in_stock %} + {{ function('do_action', 'woocommerce_' ~ product.get_type() ~ '_add_to_cart') }} + {% else %} +
+ +
+ {% endif %} +
+
+ +
+
+ {{ fn('pll_e', 'ОПИСАНИЕ') }} +
+
+ {{post.content}} + +
+
+
+ +
+
+
+ {{ fn('pll_e', 'Отзывы Специалистов') }} +
+
+ + +
+
+
+
+ {% for slide in post.getReviews %} + {% include "shop/reviews-slide_element.twig" with {slide: slide} %} + {% endfor %} +
+
+ +
+ + +
+
+ + {% if post.getRelatedProducts %} +
+
+
+ {{ fn('pll_e', 'вашему питомцу может понравиться') }} +
+
+ + +
+ +
+
+
+ {% for related_product in post.getRelatedProducts %} + + {% set class = related_product.getTasteClass %} + {% set section = class ~ ' swiper-slide' %} + + + {% include 'shop/product-card.twig' with {_product : fn('wc_get_product', related_product.id), section: section} %} + + + {% endfor %} +
+
+
+ + +
+
+ {% endif %} + +
+ {% for slide in reviews %} + + {% include 'modal/rewiew_modal.twig' with {slide : slide} %} + + {% endfor %} +{% endblock %} \ No newline at end of file