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();