WooCommerce як вивести новинки на картці товару
Є ще одне завдання для просування інтернет-магазину на WooCommerce корисна для ваших клієнтів. Дуже часто мені приходять замовлення на виведення нових товарів усередині картки товару поряд із схожими товарами. Думаю це завдання часто не тільки в мене, а ось у стандартних темах для WooCommerce цього не передбачено. Тому я вирішив сьогодні трохи відкрити завісу та описати процес створення блоку з новими товарами у картці товару.
Також вам буде цікава моя попередня стаття із серії уроків WooCommerce “WooCommerce як вивести аукціонний товар зі знижкою у картці товару“.
Як і в попередньому уроці для розробки цього блоку, ми візьмемо існуючий блок з висновком схожих статей.. Все робитимемо по порядку.
- Знаходимо файл шаблону для картки товару, зазвичай він знаходиться в папці /wp-content/themes/{ім'я вашої теми}/woocommerce/content-single-product.php.
- У нижній частині ви знайдете підключення файлу схожих товарів виглядає він так:
<?php if(etheme_get_option('show_related')) woocommerce_output_related_products(); ?>прямо під цим рядком прописуємо підключення нового файлу, в якому ми додамо код для виведення нових товарів (новинок).
<?php require_once( завершальний слеш( 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( … ).
- Нижче я наведу приклад як це зроблено у мене.
<?php /** * Related Products * * @author WooThemes * @package WooCommerce/Templates * @version 3.0.0 */ if ( ! Визначені( 'ABSPATH' ) ) вийти; // Exit if accessed directly global $product, $woocommerce_loop; $posts_per_page = 8; // updated for woocommerce v3.0 $related = array_map( 'absint', значення_масиву( wc_get_related_products( $продукт->get_id(), $posts_per_page ) ) ); if ( sizeof( $пов'язані ) == 0 ) повернення; луна '<h2 клас="продукти-назва"><проліт>Новинки в інтернет магазині</проліт></h2>'; $args = apply_filters( 'woocommerce_related_products_args', array( 'post_type' => "продукт", 'ignore_sticky_posts' => 1, 'no_found_rows' => 1, 'posts_per_page' => $posts_per_page, 'orderby' => array('meta_value' => "ASC", 'дата' => "DESC"), //'post__in' => $пов'язані, 'post__not_in' => array( $продукт->id ) ) ); $slider_args = array( //'title' => esc_html__( 'Related Products', 'xstore' ) ); etheme_create_slider( $args, $slider_args ); wp_reset_postdata();
Код можна доопрацювати та вивести нові товари саме з батьківської для товару категорії, для цього необхідно доопрацювати код небагато.
$args = apply_filters( 'woocommerce_related_products_args', array(
'post_type' => "продукт",
'ignore_sticky_posts' => 1,
'no_found_rows' => 1,
'posts_per_page' => $posts_per_page,
'orderby' => array('meta_value' => "ASC", 'дата' => "DESC"),
//'post__in' => $пов'язані,
'post__not_in' => array( $продукт->id ),
'tax_query' => array(
'відношення' => "АБО",
array(
'таксономія' => 'product_cat',
'поле' => 'id',
'терміни' => array($term_cat_id)
)
)
) );Якщо у вас не вийшло, пишіть у коментарях питання, постараюся на них відповісти.
Цей код для виведення аукціонних товарів був протестований з версією WooCommerc 3.0, у меншій або старшій версії код може трохи змінюватися.
/*

- Базовий курс з веб-дизайну;
- Верстка сайтів;
- Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
- Розробка сайтів на PHP.




