parent
8a26495373
commit
d6ae2ec32f
@ -0,0 +1,13 @@ |
||||
<?php |
||||
use Timber\Timber; |
||||
global $post; |
||||
|
||||
$context = Timber::get_context(); |
||||
|
||||
include_module('shop'); |
||||
include_component('shop', 'reviews'); |
||||
include_component('shop', 'product-card'); |
||||
|
||||
?> |
||||
<?php |
||||
Timber::render('shop/single-product.twig', $context); |
@ -0,0 +1,22 @@ |
||||
<?php |
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) { |
||||
exit; |
||||
} |
||||
|
||||
if (is_product()) { |
||||
|
||||
include_module('shop'); |
||||
global $product; |
||||
// Get the product ID |
||||
$product_id = get_the_ID(); |
||||
if ($product_id == 1105){ |
||||
include_component('shop', 'single-product_new'); |
||||
} |
||||
else{ |
||||
// include_component('shop', 'single-product'); |
||||
include_component('shop', 'single-product_new'); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,86 @@ |
||||
{% set bodyClass = 'bg-white' %} |
||||
{% set mainClass = 'wrapper' %} |
||||
{% extends 'layout.twig' %} |
||||
|
||||
{% block content %} |
||||
|
||||
<div class="breadcrumbs"> |
||||
<a href="/" class="breadcrumbs__item"> |
||||
{{ function('pll_e', 'Главная') }} |
||||
</a> |
||||
<a href="/shop" class="breadcrumbs__item"> |
||||
{{ function('pll_e', 'Продукция') }} |
||||
</a> |
||||
{% if category %} |
||||
<a href="{{ category_link }}" class="breadcrumbs__item"> |
||||
{{ category_title }} |
||||
</a> |
||||
{% endif %} |
||||
</div> |
||||
|
||||
<div class="product"> |
||||
<div class="product__header"> |
||||
<h1 class="product__title"> |
||||
{% if category %} |
||||
{{ category.name }} |
||||
{% else %} |
||||
{{ function('pll_e', 'Продукция') }} |
||||
{% endif %} |
||||
</h1> |
||||
|
||||
<button class="button button--gradient button--high button--icon button--filter"> |
||||
{{ function('pll_e', 'Фильтры') }} |
||||
</button> |
||||
</div> |
||||
|
||||
{% if active_filters|length > 0 %} |
||||
<div class="active-filters"> |
||||
{% if active_filters is not empty %} |
||||
<div class="active-filters"> |
||||
{% for filter in active_filters %} |
||||
<span class="active-filter-tag" data-filter-id="{{ filter.id }}" data-filter-slug="{{ filter.slug }}" data-filter-taxonomy="{{ filter.taxonomy }}"> |
||||
{{ filter.name }} × |
||||
</span> |
||||
{% endfor %} |
||||
</div> |
||||
{% endif %} |
||||
|
||||
<button class="active-filters__clear button button--white"> |
||||
{% if current_lang == 'ru' %}{{ function('pll_e', 'Очистить все') }}{% elseif current_lang == 'en' %}{{ function('pll_e', 'Clear all') }}{% endif %} |
||||
</button> |
||||
</div> |
||||
{% endif %} |
||||
|
||||
<div class="product__main"> |
||||
|
||||
{% if posts|length > 0 %} |
||||
{% for post in posts %} |
||||
|
||||
|
||||
{% set class = post.getTasteClass %} |
||||
{% set section = class ~ ' product-archive-card' %} |
||||
|
||||
<!-- TO_DO (избавиться от wc_get_product) --> |
||||
{% include 'shop/product-card.twig' with {_product : fn('wc_get_product', post.id), section: section} %} |
||||
|
||||
|
||||
{% endfor %} |
||||
{% else %} |
||||
<div class="not-found"> |
||||
<img src="{{ fn('get_template_directory_uri') }}/static/img/sv.svg" alt=""> |
||||
<div class="not-found-title">{{ fn('pll_e', 'coming soon') }}</div> |
||||
<div class="not-found-text">{{ fn('pll_e', 'This item is not on our website yet, but it will be here very soon') }}</div> |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
|
||||
<div class="product__footer product__footer--error"> |
||||
{% if posts_per_page < count %} |
||||
<button class="button button--white" id="load-more-products" data-category_id="{{ category_id }}" data-category_type="{{ category_type }}"> |
||||
{{ function('pll_e', 'Загрузить еще') }} |
||||
</button> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
|
||||
{% endblock %} |
@ -0,0 +1,321 @@ |
||||
{% set bodyClass = 'bg-white' %} |
||||
{% set mainClass = '' %} |
||||
{% extends 'layout.twig' %} |
||||
|
||||
{% block content %} |
||||
<div class="product-single"> |
||||
<div class="wrapper"> |
||||
<div class="breadcrumbs"> |
||||
<a href="{{ fn('home_url') }}" class="breadcrumbs__item"> |
||||
{{ fn('pll_e', 'Главная') }} |
||||
</a> |
||||
{% set product_categories = post.get_terms('product_cat') %} |
||||
{% if product_categories %} |
||||
{% set category = product_categories[0] %} |
||||
<a href="{{ category.link }}" class="breadcrumbs__item"> |
||||
{{ category.name }} |
||||
</a> |
||||
{% endif %} |
||||
<a href="{{post.link}}" class="breadcrumbs__item"> |
||||
{{post.title}} |
||||
</a> |
||||
</div> |
||||
<div class="product_main {{ post.getTasteClass() }}"> |
||||
<div class="product-info"> |
||||
<h1 class="product-title --pc"> |
||||
{{post.title}} |
||||
</h1> |
||||
<div class="product-contains"> |
||||
<h2 class="product-block-title">{{ fn('pll_e', 'СОСТАВ') }}</h2> |
||||
<div class="product-contains-text">{{ post.getComposition }}</div> |
||||
</div> |
||||
<div class="product-values"> |
||||
<h2 class="product-values-title">{{ fn('pll_e', 'ПИЩЕВАЯ ЦЕННОСТЬ') }}</h2> |
||||
<div class="product-values-list"> |
||||
|
||||
{% set nutritional_value = post.nutritional_value %} |
||||
{% if nutritional_value.protein %} |
||||
<div class="product-values-item"> |
||||
<div class="product-values-item__name">{{ fn('pll_e', 'Сырой белок') }}</div> |
||||
<div class="product-values-item-val">{{nutritional_value.protein}}</div> |
||||
</div> |
||||
{% endif %} |
||||
{% if nutritional_value.fat %} |
||||
<div class="product-values-item"> |
||||
<div class="product-values-item__name">{{ fn('pll_e', 'Сырой жир') }}</div> |
||||
<div class="product-values-item-val">{{nutritional_value.fat}}</div> |
||||
</div> |
||||
{% endif %} |
||||
{% if nutritional_value.fiber %} |
||||
<div class="product-values-item"> |
||||
<div class="product-values-item__name">{{ fn('pll_e', 'Сырая клетчатка') }}</div> |
||||
<div class="product-values-item-val">{{nutritional_value.fiber}}</div> |
||||
</div> |
||||
{% endif %} |
||||
{% if nutritional_value.ash %} |
||||
<div class="product-values-item"> |
||||
<div class="product-values-item__name">{{ fn('pll_e', 'Сырая зола') }}</div> |
||||
<div class="product-values-item-val">{{nutritional_value.ash}}</div> |
||||
</div> |
||||
{% endif %} |
||||
{% if nutritional_value.wat %} |
||||
<div class="product-values-item"> |
||||
<div class="product-values-item__name">{{ fn('pll_e', 'Влажность') }}</div> |
||||
<div class="product-values-item-val">{{nutritional_value.wat}}</div> |
||||
</div> |
||||
{% endif %} |
||||
{% if nutritional_value.calcium %} |
||||
<div class="product-values-item"> |
||||
<div class="product-values-item__name">{{ fn('pll_e', 'Кальций') }}</div> |
||||
<div class="product-values-item-val">{{nutritional_value.calcium}}</div> |
||||
</div> |
||||
{% endif %} |
||||
{% if nutritional_value.phosphorus %} |
||||
<div class="product-values-item"> |
||||
<div class="product-values-item__name">{{ fn('pll_e', 'Фосфор') }}</div> |
||||
<div class="product-values-item-val">{{nutritional_value.phosphorus}}</div> |
||||
</div> |
||||
{% endif %} |
||||
{% if nutritional_value.omega_6 %} |
||||
<div class="product-values-item"> |
||||
<div class="product-values-item__name">{{ fn('pll_e', 'Омега 6') }}</div> |
||||
<div class="product-values-item-val">{{nutritional_value.omega_6}}</div> |
||||
</div> |
||||
{% endif %} |
||||
{% if nutritional_value.omega_3 %} |
||||
<div class="product-values-item"> |
||||
<div class="product-values-item__name">{{ fn('pll_e', 'Омега 3') }}</div> |
||||
<div class="product-values-item-val">{{nutritional_value.omega_3}}</div> |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
{% set vitamins = post.vitamins %} |
||||
{% if vitamins %} |
||||
<div class="product-vitamins"> |
||||
<div class="product-vitamins-title"> |
||||
{{ fn('pll_e', 'Витамины на кг') }} |
||||
</div> |
||||
<div class="product-vitamins-list"> |
||||
|
||||
{% if vitamins.vitamin_a_me %} |
||||
<div class="product-vitamins-item">A, ME — {{vitamins.vitamin_a_me}}</div> |
||||
{% endif %} |
||||
{% if vitamins.vitamin_d3_me %} |
||||
<div class="product-vitamins-item">D3, ME — {{vitamins.vitamin_d3_me}}</div> |
||||
{% endif %} |
||||
{% if vitamins.vitamin_e %} |
||||
<div class="product-vitamins-item">E — {{vitamins.vitamin_e}}</div> |
||||
{% endif %} |
||||
{% if vitamins.tiamin %} |
||||
<div class="product-vitamins-item">{{ fn('pll_e', 'Тиамин') }} — {{vitamins.tiamin}}</div> |
||||
{% endif %} |
||||
{% if vitamins.riboflavin %} |
||||
<div class="product-vitamins-item">{{ fn('pll_e', 'Рибофлавин') }} — {{vitamins.riboflavin}}</div> |
||||
{% endif %} |
||||
{% if vitamins.pantothenic_acid %} |
||||
<div class="product-vitamins-item">{{ fn('pll_e', 'Пантотеновая кислота') }} — {{vitamins.pantothenic_acid}}</div> |
||||
{% endif %} |
||||
{% if vitamins.niaczin %} |
||||
<div class="product-vitamins-item">{{ fn('pll_e', 'Ниацин') }} — {{vitamins.niaczin}}</div> |
||||
{% endif %} |
||||
{% if vitamins.piridoksin %} |
||||
<div class="product-vitamins-item">{{ fn('pll_e', 'Пиридоксин') }} — {{vitamins.piridoksin}}</div> |
||||
{% endif %} |
||||
{% if vitamins.folic_acid %} |
||||
<div class="product-vitamins-item">{{ fn('pll_e', 'Фолиевая кислота') }} — {{vitamins.folic_acid}}</div> |
||||
{% endif %} |
||||
{% if vitamins.vitamin_b12 %} |
||||
<div class="product-vitamins-item">{{ fn('pll_e', 'Витамин B12') }} — {{vitamins.vitamin_b12}}</div> |
||||
{% endif %} |
||||
{% if vitamins.holin %} |
||||
<div class="product-vitamins-item">{{ fn('pll_e', 'Холин') }} — {{vitamins.holin}}</div> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
<div class="product-show"> |
||||
<div class="product-gallery"> |
||||
<div class="swiper product-gallery__mainSlider"> |
||||
<div class="swiper-wrapper"> |
||||
{% set image_list = post.getImageGallery('full') %} |
||||
{% for image in image_list %} |
||||
<div class="swiper-slide"> |
||||
<img src="{{ image.url }}" alt="{{image.alt}}"> |
||||
</div> |
||||
{% endfor %} |
||||
</div> |
||||
</div> |
||||
<div thumbsSlider="" class="swiper product-gallery__thumbsSlider"> |
||||
<div class="swiper-wrapper"> |
||||
{% set image_list = post.getImageGallery('medium') %} |
||||
{% for image in image_list %} |
||||
<div class="swiper-slide"> |
||||
<img src="{{ image.url }}" alt="{{image.alt}}"> |
||||
</div> |
||||
{% endfor %} |
||||
</div> |
||||
<div class="product-gallery-arrows"> |
||||
<button class="product-gallery-arrow product-gallery-prev"></button> |
||||
<button class="product-gallery-arrow product-gallery-next"></button> |
||||
</div> |
||||
</div> |
||||
<div class="product-gallery-bullets"></div> |
||||
</div> |
||||
<h1 class="product-title --m"> |
||||
{{post.title}} |
||||
</h1> |
||||
</div> |
||||
<div class="product-constructor"> |
||||
{% set constructor = post.getProductConstructor %} |
||||
{% for taxonomy, attribute_data in constructor %} |
||||
<div class="product-constructor__block"> |
||||
<div class="product-constructor__block-title">{{attribute_data.label}}</div> |
||||
<div class="product-constructor__block-list"> |
||||
{% for option_id, option in attribute_data.options %} |
||||
{% set first_product = option.products[0] %} |
||||
<a href="{{first_product.link}}" class="product-constructor__block-item{% if attribute_data.current_value == option.term_id %} active{% endif %}"> |
||||
{% if taxonomy == 'pa_compound' %} |
||||
{% set icon_map = { |
||||
'govyadina': 'beef', |
||||
'indejka': 'turkey', |
||||
'krolik': 'rabbit', |
||||
'losos': 'salmon', |
||||
'ryba': 'fish', |
||||
'utka': 'duck', |
||||
'yagnenok': 'lamb' |
||||
} %} |
||||
{% set icon_class = icon_map[option.slug] ?? 'default' %} |
||||
<img src="/wp-content/themes/cosmopet/modules/shop/components/single-product_new/assets/img/{{icon_class}}.svg" alt="" class="product-constructor__block-item-icon{% if attribute_data.current_value == option.term_id %} active{% endif %} svg"> |
||||
{% elseif taxonomy == 'pa_age-of-the-dog' %} |
||||
<img src="/wp-content/themes/cosmopet/modules/shop/components/single-product_new/assets/img/dog-face.svg" alt="" class="product-constructor__block-item-icon{% if attribute_data.current_value == option.term_id %} active{% endif %} svg"> |
||||
{% elseif taxonomy == 'pa_age-of-the-cat' %} |
||||
<img src="/wp-content/themes/cosmopet/modules/shop/components/single-product_new/assets/img/cat-face.svg" alt="" class="product-constructor__block-item-icon{% if attribute_data.current_value == option.term_id %} active{% endif %} svg"> |
||||
{% elseif taxonomy == 'pa_reproductive-status' %} |
||||
<img src="/wp-content/themes/cosmopet/modules/shop/components/single-product_new/assets/img/heart.svg" alt="" class="product-constructor__block-item-icon{% if attribute_data.current_value == option.term_id %} active{% endif %} svg"> |
||||
{% elseif taxonomy == 'pa_series' %} |
||||
<img src="/wp-content/themes/cosmopet/modules/shop/components/single-product_new/assets/img/star.svg" alt="" class="product-constructor__block-item-icon{% if attribute_data.current_value == option.term_id %} active{% endif %} svg"> |
||||
{% endif %} |
||||
<div class="product-constructor__block-item-name">{{option.name}}</div> |
||||
</a> |
||||
{% endfor %} |
||||
</div> |
||||
</div> |
||||
{% endfor %} |
||||
|
||||
{% set size_siblings = post.getSizeSiblings %} |
||||
{% if size_siblings %} |
||||
<div class="product-constructor__block"> |
||||
<div class="product-constructor__block-title">{{fn('pll_e', 'ВЕС УПАКОВКИ')}}</div> |
||||
<div class="product-constructor__block-list"> |
||||
{% for sibling in size_siblings %} |
||||
<a href="{{sibling.link}}" class="product-constructor__block-item{% if post.get_weight == sibling.get_weight %} active{% endif %}"> |
||||
<div class="product-constructor__block-item-name">{{sibling.get_weight}}</div> |
||||
</a> |
||||
{% endfor %} |
||||
</div> |
||||
</div> |
||||
{% endif %} |
||||
|
||||
<div class="product-price"> |
||||
<div class="product-price-main"> |
||||
{{post.getPrice}} |
||||
</div> |
||||
{% if post.getRegularPrice %} |
||||
<div class="product-price-disc"> |
||||
<div class="product-price-old">{{post.getRegularPrice}}</div> |
||||
<div class="product-price-percent"> |
||||
{{ post.getPriceDifferenceInPercent }} |
||||
</div> |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
{% set in_stock = post.meta('_stock_status') == 'instock' %} |
||||
{% if in_stock %} |
||||
{{ function('do_action', 'woocommerce_' ~ product.get_type() ~ '_add_to_cart') }} |
||||
{% else %} |
||||
<div class="detail-block-form__item detail-block-form__item--tn"> |
||||
<button type="button" data-pname="{{ product.title }}" class="to-know open-to-know" > |
||||
<p>{{ function('pll_e', 'Узнать о поступлении') }}</p> |
||||
</button> |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="product-desc"> |
||||
<div class="product-block-title"> |
||||
{{ fn('pll_e', 'ОПИСАНИЕ') }} |
||||
</div> |
||||
<div class="product-desc-text"> |
||||
{{post.content}} |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="product-reviews"> |
||||
<div class="product-reviews__head wrapper"> |
||||
<div class="product-block-title"> |
||||
{{ fn('pll_e', 'Отзывы Специалистов') }} |
||||
</div> |
||||
<div class="product-block-arrows"> |
||||
<button class="slider-button-prev slider-button product-reviews-prev"></button> |
||||
<button class="slider-button-next slider-button product-reviews-next"></button> |
||||
</div> |
||||
</div> |
||||
<div class="product-reviews-slider swiper"> |
||||
<div class="swiper-wrapper"> |
||||
{% for slide in post.getReviews %} |
||||
{% include "shop/reviews-slide_element.twig" with {slide: slide} %} |
||||
{% endfor %} |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="product-block-arrows--m"> |
||||
<button class="slider-button-prev slider-button product-reviews-prev"></button> |
||||
<button class="slider-button-next slider-button product-reviews-next"></button> |
||||
</div> |
||||
</div> |
||||
|
||||
{% if post.getRelatedProducts %} |
||||
<div class="product-similar "> |
||||
<div class="product-similar__head wrapper"> |
||||
<div class="product-block-title"> |
||||
{{ fn('pll_e', 'вашему питомцу может понравиться') }} |
||||
</div> |
||||
<div class="product-block-arrows"> |
||||
<button class="slider-button-prev slider-button product-similar-prev"></button> |
||||
<button class="slider-button-next slider-button product-similar-next"></button> |
||||
</div> |
||||
|
||||
</div> |
||||
<div class="product-similar-slider wrapper"> |
||||
<div class="swiper-wrapper"> |
||||
{% for related_product in post.getRelatedProducts %} |
||||
|
||||
{% set class = related_product.getTasteClass %} |
||||
{% set section = class ~ ' swiper-slide' %} |
||||
|
||||
<!-- TO_DO (избавиться от wc_get_product) --> |
||||
{% include 'shop/product-card.twig' with {_product : fn('wc_get_product', related_product.id), section: section} %} |
||||
|
||||
|
||||
{% endfor %} |
||||
</div> |
||||
</div> |
||||
<div class="product-block-arrows--m"> |
||||
<button class="slider-button-prev slider-button product-similar-prev"></button> |
||||
<button class="slider-button-next slider-button product-similar-next"></button> |
||||
</div> |
||||
</div> |
||||
{% endif %} |
||||
|
||||
</div> |
||||
{% for slide in reviews %} |
||||
|
||||
{% include 'modal/rewiew_modal.twig' with {slide : slide} %} |
||||
|
||||
{% endfor %} |
||||
{% endblock %} |
Loading…
Reference in new issue