Arhn - архитектура программирования

Отображение атрибутов продукта на определенной странице архивов категорий продуктов Woocommerce

Я хочу показать два атрибута на страницах категорий, с именем и значением атрибута только для определенных категорий.

Этот код, который я нашел, отображает метки атрибутов, но дублирует значение, и я действительно борюсь с отображением переменной категорий. Любая помощь приветствуется.

скриншот

Код:

add_action('woocommerce_after_shop_loop_item','add_attribute');
function add_attribute() {
    global $product;

    $product_attributes = array( 'pa_set', 'pa_team');
    $attr_output = array();

    // Loop through the array of product attributes
    foreach( $product_attributes as $taxonomy ){
        if( taxonomy_exists($taxonomy) ){
            $label_name = get_taxonomy( $taxonomy )->labels->singular_name;
            $value = $product->get_attribute('pa_set');

               if( ! empty($value) ){
                // Storing attributes for output
                $attr_output[] = '<span class="'.$taxonomy.'">'.$label_name.': 
    '.$value.'</span>';
            }
        }
    }

    // Output attribute name / value pairs separate by a "<br>"
    echo '<div class="product-attributes">'.implode( '<br>', $attr_output 
    ).'</div>'; 
}

Ответы:


1

Обновлено. Проблема возникает в следующей строке, где значение атрибута товара всегда соответствует одному и тому же атрибуту товара:

$value = $product->get_attribute( 'pa_set' );

и вместо этого должно быть так:

$value = $product->get_attribute( $taxonomy );

Полный обновленный код будет:

add_action('woocommerce_after_shop_loop_item','display_loop_product_attribute' );
function display_loop_product_attribute() {
    global $product;

    $product_attributes = array('pa_set', 'pa_team'); // Defined product attribute taxonomies.
    $attr_output = array(); // Initializing

    // Loop through the array of product attributes
    foreach( $product_attributes as $taxonomy ){
        if( taxonomy_exists($taxonomy) ){
            if( $value = $product->get_attribute($taxonomy) ){
            // The product attribute label name
            $label_name = wc_attribute_label($taxonomy);
                // Storing attributes for output
                $attr_output[] = '<span class="'.$taxonomy.'">'.$label_name.': '.$value.'</span>';
            }
        }
    }
    // Output attribute name / value pairs separate by a "<br>"
    echo '<div class="product-attributes">'.implode('<br>', $attr_output).'</div>';
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

введите описание изображения здесь


Таргетинг на страницы архива категорий товаров:

Вы будете использовать условный тег is_product_category() внутри функции на IF утверждение…

Для страниц архива определенных категорий продуктов вы можете настроить их , как описано здесь внутри функции в массиве, например:

if( is_product_category( array('chairs', 'beds') ) {
    // Here go the code to be displayed
}

Вам просто нужно установить правильные ярлыки категорий продуктов в массиве…


Связано: Показать атрибуты продукта WooCommerce в архивах персонализированного дома и категории продуктов

28.11.2018
  • Спасибо, LoicTheAztec! Код работал отлично, но где бы я ни размещал оператор if, он меня просто взрывает. Где именно мне нужно его разместить? 28.11.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..