WooCommerce як вивести новинки на картці товару
Є ще одне завдання для просування інтернет-магазину на WooCommerce корисна для ваших клієнтів. Дуже часто мені приходять замовлення на виведення нових товарів усередині картки товару поряд із схожими товарами. Думаю це завдання часто не тільки в мене, а ось у стандартних темах для WooCommerce цього не передбачено. Тому я вирішив сьогодні трохи відкрити завісу та описати процес створення блоку з новими товарами у картці товару.
Також вам буде цікава моя попередня стаття із серії уроків WooCommerce “WooCommerce як вивести аукціонний товар зі знижкою у картці товару“.
Як і в попередньому уроці для розробки цього блоку, ми візьмемо існуючий блок з висновком схожих статей.. Все робитимемо по порядку.
- Знаходимо файл шаблону для картки товару, зазвичай він знаходиться в папці /wp-content/themes/{ім'я вашої теми}/woocommerce/content-single-product.php.
- У нижній частині ви знайдете підключення файлу схожих товарів виглядає він так:
1<?php if(etheme_get_option('show_related')) woocommerce_output_related_products(); ?>
1<?php require_once( trailingslashit( get_template_directory() ). 'woocommerce/single-product/product-new.php' ); ?> - Тепер, коли шлях для підключення файлу ми прописали, необхідно створити сам файл. Створюємо файл на шляху /wp-content/themes/{ім'я вашої теми}/woocommerce/single-product/product-new.php
- У створений файл product-new.php копіюємо вміст файлу related.php який знаходиться на шляху /wp-content/themes/{ім'я вашої теми}/woocommerce/single-product/related.php.
- Перевірте, як виводяться товари в картці товару. Якщо все зроблено правильно, то у вас буде 2 блоку схожих товарів.
- У файлі product-new.php змініть назву блоку на “Новинки в інтернет магазині”.
- Далі для виведення нових товарів нам необхідно змінити масив з параметрами для функції apply_filters( ‘woocommerce_related_products_args’, array( … ).
- Нижче я наведу приклад як це зроблено у мене.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php /** * Related Products * * @author WooThemes * @package WooCommerce/Templates * @version 3.0.0 */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly global $product, $woocommerce_loop; $posts_per_page = 8; // updated for woocommerce v3.0 $related = array_map( 'absint', array_values( wc_get_related_products( $product->get_id(), $posts_per_page ) ) ); if ( sizeof( $related ) == 0 ) return; echo '<h2 class="products-title"><span>Новинки в интернет магазине</span></h2>'; $args = apply_filters( 'woocommerce_related_products_args', array( 'post_type' => 'product', 'ignore_sticky_posts' => 1, 'no_found_rows' => 1, 'posts_per_page' => $posts_per_page, 'orderby' => array('meta_value' => 'ASC', 'date' => 'DESC'), //'post__in' => $related, 'post__not_in' => array( $product->id ) ) ); $slider_args = array( //'title' => esc_html__( 'Related Products', 'xstore' ) ); etheme_create_slider( $args, $slider_args ); wp_reset_postdata(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$args = apply_filters( 'woocommerce_related_products_args', array( 'post_type' => 'product', 'ignore_sticky_posts' => 1, 'no_found_rows' => 1, 'posts_per_page' => $posts_per_page, 'orderby' => array('meta_value' => 'ASC', 'date' => 'DESC'), //'post__in' => $related, 'post__not_in' => array( $product->id ), 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'product_cat', 'field' => 'id', 'terms' => array($term_cat_id) ) ) ) ); |
Цей код для виведення аукціонних товарів був протестований з версією WooCommerc 3.0, у меншій або старшій версії код може трохи змінюватися.
/*
- Базовий курс з веб-дизайну;
- Верстка сайтів;
- Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
- Розробка сайтів на PHP.