web-dev-qa-db-fra.com

woocommerce obtenir la liste des valeurs d'attribut

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.

12
clueless

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.

16
Steven Jones

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;
}
14
runningonplants

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,

7
user5029040

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