Пример страницы товара сайта RussianWool

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. */

 

Так же с моим портфолио можно ознакомиться на любой из представленной социальной сети, на своих страницах я публикую посты о своих работах, заданиях и целях.

Для связи со мной можно воспользоваться любой социальной сетью,
или написать на почту:

С моим резюме можно ознакомиться по ссылке:

© 2020-2024 Портфолио Юдина Александра г.Пенза. Все права защищены