8768 sujets

Développement web côté serveur, CMS

Bonjour,

je suis entrain d'afficher dans une fonction des attributs sur une liste de produits Woocommerce. Ça marche super, pour avoir des images je place en classe les nom des attributs sauf que j'ai un hic.
Par exemple j'ai dans un attributs parfois 3 valeurs : AB, Nature, Biodynamie
Impossible de mettre en place un implode pour obtenir :

<span class="AB"></span>
<span class="Nature"></span>
<span class="Biodynamie"></span>


Pour l'heure j'obtiens
<span class="AB, Nature, Biodynamie"></span> 

ce qui ne me permet pas d'avoir les 3 logos (sauf si je fais 4 images suivant que tout est là ou non mais c'est tordu).

Voici le bout de code pour mon affiche :
if( $values = $product->get_attribute($taxonomy) ){
                    $output[] = '<span class="'.$values.'"></span>';
       }


Et un morceau de code pour avoir la valeur encadrée pour chaque balise span trouvé sur un forum concurrent en anglais
$values = explode(', ', $values);
$values = '<span>' . implode('</span> <span>', $values) . '</span>';


J'ai décortiqué pour avoir mon résultat ci-dessus mais rien à faire, cela me met des <span> dans la classe, un vrai foutoir. Une idée ?

Merci pour votre aide Smiley biggrin
Modifié par Lettynoo (26 May 2022 - 22:09)
Voici ce que finalement j'ai trouvé et qui marche Smiley smile

$values = explode(', ', $values);

$values = '<span class="pictos '. implode('"></span> <span class="pictos ', $values) .'">' . implode('</span> <span>', '') . '</span>';

$output[] = $values;
Meilleure solution