1. Главная
  2. Блог
  3. Woocommerce
  4. Вывод характеристик в каталоге Woocommerce

Вывод характеристик в каталоге Woocommerce

В этой статье рассмотрим варианты вывода отдельных характеристик товаров на страницах списков, категорий, тегов. В карточке товара будет выводиться блок с атрибутами товаров, если хотя бы один из атрибутов у товара указан. Также в блоке с атрибутами будет показываться кнопка ПОДРОБНЕЕ.

Приведенные ниже коды размещаются в файле function.php активной темы. В кодах используется хук для вывода блока с атрибутами woocommerce_before_shop_loop_item, он влияет на порядок блока в коде. Ознакомиться со списком хуков можно здесь. Несмотря на расположение хуков сверху вниз, из-за стилей и скриптов темы визуально «верхние хуки» могут находится внизу карточки товара и наоборот.

Рассмотрим несколько вариантов вывода характеристик:

атрибуты товаров в списке

для всех товаров


add_action( 'woocommerce_before_shop_loop_item', 'show_attributes', 20 );
function show_attributes(){
global $product;
$color = $product->get_attribute( 'pa_color' );
$dlina = $product->get_attribute( 'pa_dlina' );
if ( $color || $dlina ) {
echo '<div class="product-attributes">';
if ( $color ) {
echo '<span class="product-label"><strong>Цвет: </strong><br>' . $color . '</span><br>';
}
if ( $dlina ) {
echo '<span class="product-label"><strong>Длина: </strong><br>' . $dlina . '</span><br>';
}
echo '<span class="button-more"><a id="links" href="'. get_the_permalink() .'" >ПОДРОБНЕЕ</a></span></div>';
}
}

Ярлык для характеристики (атрибута) берем из списка атрибутов (Товары / Атрибуты)

ярлык атрибута woocommerce

для товаров из указанной категории


add_action( 'woocommerce_before_shop_loop_item', 'show_attributes', 20 );
function show_attributes(){
global $product;
$color = $product->get_attribute( 'pa_color' );
$dlina = $product->get_attribute( 'pa_dlina' );
if ( $color || $dlina ) {
echo '<div class="product-attributes">';
if( has_term( 'ярлык категории', 'product_cat' ) ) {
if ( $color ) {
echo '<span class="product-label"><strong>Цвет: </strong><br>' . $color . '</span><br>';
}
if ( $dlina ) {
echo '<span class="product-label"><strong>Длина: </strong><br>' . $dlina . '</span><br>';
}
}
echo '<span class="button-more"><a id="links" href="'. get_the_permalink() .'" >ПОДРОБНЕЕ</a></span></div>';
}
}

Ярлык категории – берем со страницы редактирования категории (Товары / Категории)

ярлык категории woocommerce

для простых товаров


add_action( 'woocommerce_before_shop_loop_item', 'show_attributes', 20 );
function show_attributes(){
global $product;
$color = $product->get_attribute( 'pa_color' );
$dlina = $product->get_attribute( 'pa_dlina' );
if ( $color || $dlina ) {
echo '<div class="product-attributes">';
if( $product->is_type( 'simple' ) ) {
if ( $color ) {
echo '<span class="product-label"><strong>Цвет: </strong><br>' . $color . '</span><br>';
}
if ( $dlina ) {
echo '<span class="product-label"><strong>Длина: </strong><br>' . $dlina . '</span><br>';
}
}
echo '<span class="button-more"><a id="links" href="'. get_the_permalink() .'" >ПОДРОБНЕЕ</a></span></div>';
}
}

для вариативных товаров


add_action( 'woocommerce_before_shop_loop_item', 'show_attributes', 20 );
function show_attributes(){
global $product;
$color = $product->get_attribute( 'pa_color' );
$dlina = $product->get_attribute( 'pa_dlina' );
if ( $color || $dlina ) {
echo '<div class="product-attributes">';
if( $product->is_type( 'variable' ) ) {
if ( $color ) {
echo '<span class="product-label"><strong>Цвет: </strong><br>' . $color . '</span><br>';
}
if ( $dlina ) {
echo '<span class="product-label"><strong>Длина: </strong><br>' . $dlina . '</span><br>';
}
}
echo '<span class="button-more"><a id="links" href="'. get_the_permalink() .'" >ПОДРОБНЕЕ</a></span></div>';
}
}

Понравилась статья?

Поддержать нас рублями:

Нужна помощь? Обращайтесь!

Комментарии
Name
Email
Phone
Ваше имя
Ваш email
Оставить комментарий
Нажмите для звонка
Хотите заказать сайт?
Обращайтесь любым удобным способом и мы поможем подобрать интересный вариант для Вас!