Probleme code Liquid else / if pourtant simple

Bonjour, je ne comprend pas pourquoi mon code marche à moitié…


{% for tag in order.tags %}
{% if tag contains ' Départ atelier' %}
Luigi a pris connaissance de votre commande et s'en occupe. Veuillez patienter...
{% else %}
{{ order.fulfillment_status_label }}
{% endif %}
{% endfor %}

Si ma commande possède le tag " :hourglass_not_done: Départ atelier" je ne souhaite pas afficher {{ order.fulfillment_status_label }} mais mon message personnel uniquement à la place.

Or la avec mon code si ma commande possède le tag " :hourglass_not_done: Départ atelier" j’ai a la fois mon message personnel qui s’affiche bien mais aussi {{ order.fulfillment_status_label }}

Je ne comprend pas pourquoi… et ce que j’écris mal dans le code…

A noter : Si ma commande n’a pas le tag " :hourglass_not_done: Départ atelier" j’ai bien uniquement {{ order.fulfillment_status_label }} qui s’affiche ça, ça marche.

Si vous pouviez m’aider.

Merci

Hello!
Tu as mis un smiley dans ton code ? Step 1 : Je te conseille de tester sans.
Step 2 : Combien de tags ta commande contient-elle ? Combien de tours fait la boucle for ? Peut-être créer une condition plus précise.

Bonjour !

Merci pour la réponse.

J’ai testé sans le smiley avec un autre tag j’ai le même problème…

Ma commande dans mon exemple n’a que 2 tags

La boucle ne semble que compter “1”

Si elle a 2 tags elle tournera 2 fois.

Quelques pistes :

  • Tu as un espace dans ’ Départ atelier’
  • Peut être aussi faire gaffe aux accents
  • Tu utilises un contains donc techniquement tu pourrais juste regarder si ça contain “atelier”.
  • Essaies de limiter à un tour de boucle {% for tag in order.tags limit:1 %}
1 Like

Yes merci beaucoup !!

J’ai mis juste “atelier” et limité la boucle a 1.

Edit : En fait ça marche aussi avec " :hourglass_not_done: Départ atelier" c’était le fait que ça tournait 2 fois du coup !

1 Like