问题
I'm using woocommerce on wordpress to create a simple shop site and I've added a couple attributes to a product. These are namely, size
and color
. Under size I have a variety of values including Small, Medium and Large. Same with color ie. Red, Blue, Green.
What I want to do is show these values in a dropdown. Basically just list them out so I can use the values as filters for the shop catalog page.
Any help would be great.
EDIT: I've delved into the woocommerce code and api docs and only found this code to pull the attributes.
global $woocommerce;
$attr_tax = $woocommerce->get_attribute_taxonomy_names();
foreach( $attr_tax as $tax ) {
echo $woocommerce->attribute_taxonomy_name( $tax->attribute_name );
}
What this snippet gives me are the taxonomy slugs only, ie. pa_size and pa_color. I'm very new to woocommerce, but a search in there api docs reveals nothing about how to pull the values of these attributes.
回答1:
You can use get_terms()
http://codex.wordpress.org/Function_Reference/get_terms
If you pass in pa_size or pa_color you will get back a list of terms in that taxonomy.
回答2:
Hoping this is helpful to someone:
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;
}
回答3:
This post was written some time ago so I don't know if Woocommerce had this method in its previous incarnations.
For anyone else looking to do this, this line is all you need.
$product->list_attributes();
This allows you to customize the order and toggle whether or not you want to display the variation in the backend,
回答4:
In addition to @user5029040 answer, which outputs html, if you want to get an array you can use the following function.
$product->get_variation_attributes();
来源:https://stackoverflow.com/questions/20500286/woocommerce-get-list-of-attribute-values