Задача. Необходимо на странице каталога Woocommerce вывести под названием товаров первые несколько их атрибутов.
Решение 1. Можно использовать Код №1 в functions.php
, но он выводит атрибуты таблицей. Такой вариант больше подходит для вывода на странице товара.
1
2
3
4
5
6
7
8
9
10
11
|
// Функция вывода атрибутов
function atrb_productShoes() {
global $product;
$product–>list_attributes();
}
// Хук для вывода после заголовка товаров в категории
add_action( ‘woocommerce_after_shop_loop_item_title’, ‘atrb_productShoes’ );
|
Решение 2. Код №2 в functions.php
выведет названия атрибутов с значениями просто обернув в div
с class="attributes"
:
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
|
function atrb_productShoes2() {
global $product;
global $post;
$attributes = $product–>get_attributes();
if ( ! $attributes ) {
return;
}
foreach ( $attributes as $attribute ) {
// Получение таксаномии
$terms = wp_get_post_terms( $product–>id, $attribute[ ‘name’ ], ‘all’ );
$taxonomy = $terms[ 0 ]–>taxonomy;
// Получение объекта таксаномии
$taxonomy_object = get_taxonomy( $taxonomy );
// Получение меток атрибутов
$attribute_label = $taxonomy_object–>labels–>name;
$attribute_label = str_replace(‘Товар’, ”, $attribute_label);
// Отображение метки с кликабельным списком терминов
echo get_the_term_list( $post–>ID, $attribute[ ‘name’ ] , ‘<div class=”attributes”>’ . $attribute_label . ‘: ‘ , ‘, ‘, ‘</div>’ );
}
}
// Хук для вывода после заголовка товаров в категории
add_action( ‘woocommerce_after_shop_loop_item_title’, ‘atrb_productShoes2’ );
|
Решение 3. Код №3 в functions.php
аналогичен Коду №2, но здесь мы выводим не все атрибуты, а только первые два:
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
|
function atrb_productShoes2() {
global $product;
global $post;
$attributes = $product–>get_attributes();
if ( ! $attributes ) {
return;
}
$counter = 0; // задаем счетчик
foreach ( $attributes as $attribute ) {
$counter++; // Считаем количество итераций и выходим из цикла при условии
if($counter > 2) {
break;
};
// Получение таксаномии
$terms = wp_get_post_terms( $product–>id, $attribute[ ‘name’ ], ‘all’ );
$taxonomy = $terms[ 0 ]–>taxonomy;
// Получение объекта таксаномии
$taxonomy_object = get_taxonomy( $taxonomy );
// Получение меток атрибутов
$attribute_label = $taxonomy_object–>labels–>name;
$attribute_label = str_replace(‘Товар’, ”, $attribute_label);
// Отображение метки с кликабельным списком терминов
echo get_the_term_list( $post–>ID, $attribute[ ‘name’ ] , ‘<div class=”attributes”>’ . $attribute_label . ‘: ‘ , ‘, ‘, ‘</div>’ );
}
}
// Хук для вывода после заголовка товаров в категории
add_action( ‘woocommerce_after_shop_loop_item_title’, ‘atrb_productShoes2’ );
|