Я использую woocommerce в wordpress для создания простого магазина, и я добавил пару атрибутов к продукту. Это, а именно, size
и color
. В разделе «Размер» у меня есть множество значений, включая «Малый», «Средний» и «Большой». То же самое с цветом, т.е. Красный, Синий, Зеленый.
Я хочу показать эти значения в раскрывающемся списке. В основном просто перечислите их, чтобы я мог использовать значения в качестве фильтров для страницы каталога магазина.
Любая помощь будет большой.
EDIT: Я углубился в код woocommerce и api docs и только нашел этот код, чтобы вытащить атрибуты.
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 docs ничего не показывает о том, как вытащить значения этих атрибутов.
Вы можете использовать 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 этот метод в своих предыдущих воплощениях. Для всех, кто хочет это сделать, эта строка – это все, что вам нужно.
$ Продукт-> list_attributes ();
Это позволяет вам настроить заказ и переключить, хотите ли вы отображать изменения в бэкэнд,
В дополнение к ответу @ user5029040, который выводит html, если вы хотите получить массив, вы можете использовать следующую функцию.
$product->get_variation_attributes();