RussianWool: single-product.php (woocommerce/single-product.php)
<?php
/**
* The Template for displaying all single products
*
* This template can be overridden by copying it to yourtheme/woocommerce/single-product.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://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 1.6.4
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
get_header(); ?>
<div class="container-main">
<div class="container-main-content">
<div class="container-main__menu">
<p class="container-main__menu-maintext">КАТЕГОРИИ</p>
<div class="accordion accordion-flush" id="accordionFlushExample">
<?php
$taxonomy = 'product_cat';
//$orderby = 'name';
$show_count = 0; // 1 for yes, 0 for no
$pad_counts = 0; // 1 for yes, 0 for no
$hierarchical = 1; // 1 for yes, 0 for no
$title = '';
$empty = 0;
$args = array(
'taxonomy' => $taxonomy,
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'title_li' => $title,
'hide_empty' => $empty
);
$all_categories = get_categories( $args );
foreach ($all_categories as $cat) {
if(($cat->category_parent == 0) && ($cat->term_id <> 15)) {
$category_id = $cat->term_id;
?>
<div class="accordion-item">
<div class="accordion-header" id="flush-heading<? echo $cat->term_id; ?>">
<a class="container-main__menu-mainitem" href="<? echo get_term_link($cat->slug, 'product_cat'); ?>"><? echo $cat->name; ?></a>
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapse<? echo $cat->term_id; ?>" aria-expanded="false" aria-controls="flush-collapseOne">
</button>
</div>
<div id="flush-collapse<? echo $cat->term_id; ?>" class="accordion-collapse collapse" aria-labelledby="flush-heading<? echo $cat->term_id; ?>" data-bs-parent="#accordionFlushExample">
<div class="accordion-body">
<?php
$args2 = array(
'taxonomy' => $taxonomy,
'child_of' => 0,
'parent' => $category_id,
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'title_li' => $title,
'hide_empty' => $empty
);
$sub_cats = get_categories( $args2 );
if($sub_cats) {
foreach($sub_cats as $sub_category) {
?>
<a class="container-main__menu-item" href="<? echo get_term_link($sub_category->slug, 'product_cat'); ?>"><i class="fa-solid fa-chevron-right"></i> <? echo $sub_category->name; ?></a>
<?
}
}
?>
</div>
</div>
</div>
<?
}
}
?>
</div>
<div class="container-main__banner">
<a class="container-main__banner-link" href="">
<img class="container-main__banner-link-img" src="/wp-content/themes/russianwool/assets/images/banner.jpg" alt="">
</a>
</div>
</div>
<div class="container-main__basicblock">
<div class="container-001">
<div class="container-001-content">
<div class="container-001__breadcrumbs-group">
<?php if( function_exists('kama_breadcrumbs') ) kama_breadcrumbs(' » '); ?>
</div>
<p class="container-001__maintext" style="text-transform: uppercase;"><?php single_post_title(); ?></p>
<div class="container-001__product">
<div class="container-001__product-gallery">
<div id="slider" class="flexslider">
<ul class="slides">
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<?php $attachment_ids = $product->get_gallery_image_ids(); ?>
<?php foreach ( $attachment_ids as $attachment_id ) { ?>
<li>
<a class="magnifier-thumb-wrapper" href="<?php echo wp_get_attachment_url( $attachment_id ); ?>" data-fancybox="gallery">
<img class="container-001__product-gallery-mainimg thumb" src="<?php echo wp_get_attachment_url( $attachment_id ); ?>" alt="" data-large-img-url="<?php echo wp_get_attachment_url( $attachment_id ); ?>">
</a>
</li>
<?php } ?>
<?php endwhile; ?>
</ul>
</div>
<div id="carousel" class="flexslider navigation">
<ul class="slides">
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<?php $attachment_ids = $product->get_gallery_image_ids(); ?>
<?php foreach ( $attachment_ids as $attachment_id ) { ?>
<li class="minislide">
<img class="miniimg" src="<?php echo wp_get_attachment_url( $attachment_id ); ?>" />
</li>
<?php } ?>
<?php endwhile; ?>
</ul>
</div>
<div class="magnifier-preview" id="preview" style="width: 270px; height: 270px"></div>
</div>
<script src="/wp-content/themes/russianwool/assets/js/EventMagnifier.js"></script>
<script src="/wp-content/themes/russianwool/assets/js/Magnifier.js"></script>
<script type="text/javascript">
var evt = new EventMagnifier(),
m = new Magnifier(evt);
m.attach({
thumb: '.thumb',
largeWrapper: 'preview',
zoom: 3
});
</script>
<div class="container-001__product-gallery-mobile">
<div id="slider-mobile" class="flexslider">
<ul class="slides">
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<?php $attachment_ids = $product->get_gallery_image_ids(); ?>
<?php foreach ( $attachment_ids as $attachment_id ) { ?>
<li>
<a class="magnifier-thumb-wrapper" href="<?php echo wp_get_attachment_url( $attachment_id ); ?>" data-fancybox="gallery-mobile">
<img class="container-001__product-gallery-mainimg" src="<?php echo wp_get_attachment_url( $attachment_id ); ?>" alt="">
</a>
</li>
<?php } ?>
<?php endwhile; ?>
</ul>
</div>
<div id="carousel-mobile" class="flexslider navigation">
<ul class="slides">
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<?php $attachment_ids = $product->get_gallery_image_ids(); ?>
<?php foreach ( $attachment_ids as $attachment_id ) { ?>
<li class="minislide">
<img class="miniimg" src="<?php echo wp_get_attachment_url( $attachment_id ); ?>" />
</li>
<?php } ?>
<?php endwhile; ?>
</ul>
</div>
</div>
<div class="container-001__product-info">
<div class="container-001__product-info-rating">
<?$rating = get_field('rating');?>
<p class="container-001__product-info-rating-text"><?=$rating;?></p>
<?php $review_count = $product->get_review_count(); ?>
<a class="container-001__product-info-rating-link" href="#nav-tab" onclick="onfeedback();"><?php echo $review_count; ?> отзыв(ов,а)</a>
<p class="container-001__product-info-rating-text-sep">/</p>
<a class="container-001__product-info-rating-link" href="#nav-tab" onclick="onfeedback();">написать отзыв</a>
</div>
<hr>
<div class="container-001__product-info-param">
<?php
if (get_post_meta(get_the_ID(), '_stock_status', true) == 'outofstock') {
echo '<p class="container-001__product-info-param-text">Доступность: <span style="color: red;">Нет в наличии</span></p>';
} else {
echo '<p class="container-001__product-info-param-text">Доступность: <span style="color: green;">В наличии</span></p>';
}
?>
<p class="container-001__product-info-param-text">Код товара: <?php echo $product->sku; ?></p>
<p class="container-001__product-info-param-text">Вес: <?php echo $product->get_weight(); ?> г.</p>
<!--Выводим все атрибуты и определенный атрибут-->
<? //echo $product->list_attributes();?>
<? //echo $product->get_attribute("material");?>
<p class="container-001__product-info-param-text">Материал: <? echo $product->get_attribute("material");?></p>
</div>
<hr>
<div class="container-001__product-info-price">
<p class="container-001__product-info-price-text"><? echo $product->get_variation_price();?> р.</p>
</div>
<hr>
<div class="container-001__product-info-options">
<p class="container-001__product-info-options-maintext">ДОСТУПНЫЕ ОПЦИИ</p>
<p class="container-001__product-info-options-text">размер*</p>
<?php
global $product;
if ($product->is_type( 'variable' ))
{
$args = array(
'post_type' => 'product_variation',
'post_status' => array( 'private', 'publish' ),
'numberposts' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
'post_parent' => get_the_ID() // get parent post-ID
);
$variations = get_posts( $args );
$select_ID = $product->get_id();
//echo $select_ID;
//echo '<pre>';
//print_r($variations);
//echo '</pre>';
?>
<select name="size_select">
<?php
foreach ( $variations as $variation ) {
// get variation ID
$variation_ID = $variation->ID;
// get variations meta
$product_variation = new WC_Product_Variation( $variation_ID );
// get variation price
$variation_price = $product_variation->get_price_html();
//get variation name
$variation_name = $product_variation->get_variation_attributes();
if ( $variation_name [ 'attribute_pa_razmer' ] ) {
?>
<option value="<? echo $variation_ID; ?>"><? echo $variation_name [ 'attribute_pa_razmer' ]; ?></option>
<?php
}}}
?>
</select>
<div class="container-001__product-info-options-button">
<input type="number" name="count" id="product_count" class="form-control" value="1">
<a class="container-001__product-info-options-linkbtn" href="" title="в закладки">
<i class="fa-solid fa-heart"></i>
</a>
<a class="container-001__product-info-options-linkbtn" href="" title="в сравнение">
<i class="fa-solid fa-clone"></i>
</a>
</div>
<div class="container-001__product-info-options-button">
<a class="container-001__product-info-options-linkcart" href="">
<i class="fa-solid fa-cart-shopping"></i> В КОРЗИНУ
</a>
</div>
</div>
</div>
</div>
<div class="container-001__product-tab">
<nav>
<div class="nav nav-tabs" id="nav-tab" role="tablist">
<button class="nav-link active" id="nav-description-tab" data-bs-toggle="tab" data-bs-target="#nav-description" type="button" role="tab" aria-controls="nav-description" aria-selected="true">Описание</button>
<button class="nav-link" id="nav-feedback-tab" data-bs-toggle="tab" data-bs-target="#nav-feedback" type="button" role="tab" aria-controls="nav-feedback" aria-selected="false">Отзывы</button>
</div>
</nav>
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade show active" id="nav-description" role="tabpanel" aria-labelledby="nav-description-tab">
<?php the_content();?>
</div>
<div class="tab-pane fade" id="nav-feedback" role="tabpanel" aria-labelledby="nav-feedback-tab">
<?php comments_template();?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
get_footer();
/* Omit closing PHP tag at the end of PHP files to avoid "headers already sent" issues. */