Столкнулся с такой проблемой, что созданные атрибуты в Woocommerce не выводятся в карточке товаров которая сверстана в Oxygen. Вернее если применен стандартный вывод информации товара. Так же атрибуты не выводятся в модальном окне через плагин yith-woocommerce-quick-view.
С помощью хуков вывел атрибуты и в большой карточке товаров и в модальном окне. Так же можно выводить в мини-карточках на странице архивов.
1 2 3 4 5 6 7 8 9 |
// Функция вывода атрибутов function atrb_productShoes() { global $product; $product->list_attributes(); } // Хук для вывода в большой карточке товара add_action( 'woocommerce_single_product_summary', 'atrb_productShoes' ); // Хук для вывода в карточке товара в YITH окне add_action( 'yith_wcqv_product_summary', 'atrb_productShoes', 16 ); |
Чтобы посмотреть порядок вывода для модального окна YITH, можно заглянуть в файл:
/wp-content/plugins/yith-woocommerce-quick-view/includes/class.yith-wcqv-frontend.php
Сам код я взял на сайте https://wpcraft.top/woocommerce-kak-vyvesti-atributy-tovarov-v-kataloge/ Там есть еще пару вариантов, я их не проверял. Но размещу тут, вдруг пригодятся.
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 |
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' ); |
И вывод не всех атрибутов, а только первых двух:
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 |
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' ); |