woocommerce получить список значений атрибутов

Я использую woocommerce на wordpress для создания простого сайта магазина, и я добавил пару атрибутов к продукту. А именно:size и color. Под размером у меня есть множество значений, включая малые, средние и большие. То же самое с цветом ie. Красный, Синий, Зеленый.

то, что я хочу сделать, это показать эти значения в выпадающем списке. В основном просто перечислите их, чтобы я мог использовать значения в качестве фильтров для страницы каталога магазина.

любая помощь будет отличный.

изменить: Я углубился в код woocommerce и документы api и нашел только этот код, чтобы вытащить атрибуты.

global $woocommerce;

$attr_tax = $woocommerce->get_attribute_taxonomy_names();

foreach( $attr_tax as $tax ) {
     echo $woocommerce->attribute_taxonomy_name( $tax->attribute_name );
}

то, что этот фрагмент дает мне, - это только слизни таксономии, т. е. pa_size и pa_color. Я очень новичок в woocommerce, но поиск в документах api ничего не показывает о том, как вытащить значения этих атрибутов.

4 ответов


можно использовать get_terms() http://codex.wordpress.org/Function_Reference/get_terms

Если вы передадите pa_size или pa_color, вы получите список терминов в этой таксономии.


надеясь, что это полезно кому-то:

global $product; 

// Get product attributes
$attributes = $product->get_attributes();

if ( ! $attributes ) {
    echo "No attributes";
}

foreach ( $attributes as $attribute ) {

        echo $attribute['name'] . ": ";
        $product_attributes = array();
        $product_attributes = explode('|',$attribute['value']);

        $attributes_dropdown = '<select>';

        foreach ( $product_attributes as $pa ) {
            $attributes_dropdown .= '<option value="' . $pa . '">' . $pa . '</option>';
        }

        $attributes_dropdown .= '</select>';

        echo $attributes_dropdown;
}

этот пост был написан некоторое время назад, поэтому я не знаю, имел ли Woocommerce этот метод в своих предыдущих воплощениях.
Для тех, кто хочет сделать это, эта линия-все, что вам нужно.

$product->list_attributes();

Это позволяет настроить порядок и переключать, хотите ли вы отображать изменение в бэкэнде,


в дополнение к ответу @user5029040, который выводит html, если вы хотите получить массив, вы можете использовать следующую функцию.

$product->get_variation_attributes();