J'utilise woocommerce sur wordpress pour créer un site de boutique simple et j'ai ajouté quelques attributs à un produit. Il s'agit notamment de size
et color
. Sous la taille, j'ai une variété de valeurs, y compris Small, Medium et Large.Même avec la couleur, c'est-à-dire rouge, bleu, vert.
Ce que je veux faire, c'est afficher ces valeurs dans une liste déroulante. En gros, il suffit de les énumérer pour que je puisse utiliser les valeurs comme filtres pour la page du catalogue de la boutique.
Toute aide est la bienvenue.
EDIT: J'ai fouillé dans le code woocommerce et les documents api et je n'ai trouvé que ce code pour extraire les attributs.
global $woocommerce;
$attr_tax = $woocommerce->get_attribute_taxonomy_names();
foreach( $attr_tax as $tax ) {
echo $woocommerce->attribute_taxonomy_name( $tax->attribute_name );
}
Ce que cet extrait me donne, ce sont uniquement les limaces de taxonomie, c'est-à-dire. pa_size et pa_color. Je suis très nouveau sur woocommerce, mais une recherche dans les documents api ne révèle rien sur la façon d'extraire les valeurs de ces attributs.
Vous pouvez utiliser get_terms()
http://codex.wordpress.org/Function_Reference/get_terms
Si vous passez pa_size ou pa_color, vous obtiendrez une liste de termes dans cette taxonomie.
En espérant que cela soit utile à quelqu'un:
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;
}
Ce message a été écrit il y a quelque temps, donc je ne sais pas si Woocommerce avait cette méthode dans ses incarnations précédentes.
Pour toute autre personne souhaitant faire cela, cette ligne est tout ce dont vous avez besoin.
$product->list_attributes();
Cela vous permet de personnaliser la commande et de basculer selon que vous souhaitez ou non afficher la variation dans le backend,
En plus de la réponse @ user5029040, qui génère du HTML, si vous voulez obtenir un tableau, vous pouvez utiliser la fonction suivante.
$product->get_variation_attributes();