如何在 Shopify Liquid 中创建变量并在满足条件时更新

How to create variable and update when condition is met in Shopify Liquid

我正在尝试创建一个全局布尔变量并使用它来检查是否满足条件。如果满足条件则执行某个动作并设置为true以便下次不执行该动作。

这是我尝试使用的代码,目前看起来全局变量没有受到影响,它始终设置为 true 并且操作始终发生。

提前致谢!任何关于如何干燥的建议都将不胜感激。

{% assign firstFound = false %}

{% if product.metafields.pdm.product-details %}
    {% if firstFound == false %} {% assign firstFound = true %} {% endif %}
    <li><button type="button" class="reset {% if firstFound == true %}active{% endif %}" data-target="details">Product Details</button></li>
{% endif %}

{% if settings.about_diamonds %}
    {% if firstFound == false %} {% assign firstFound = true %} {% endif %}
    <li><button type="button" class="reset {% if firstFound == true %}active{% endif %}" data-target="diamonds">About Our Diamonds</button></li>
{% endif %}

{% if settings.shipping_returns %}
    {% if firstFound == false %} {% assign firstFound = true %} {% endif %}
    <li><button type="button" class="reset {% if firstFound == true %}active{% endif %}" data-target="shipping">Shipping and Returns</button></li>
{% endif %}

我相信您的代码可以正常工作。您将 firstFound 变量设置为 true,因此 active class 已分配给所有按钮。如果您只想将 class 分配给第一个显示的按钮,您需要将代码更改为类似的内容:

{% assign firstFound = false %}

{% if product.metafields.pdm.product-details %}
    <li><button type="button" class="reset{% unless firstFound %}{% assign firstFound = true %} active{% endunless %}" data-target="details">Product Details</button></li>
{% endif %}

{% if settings.about_diamonds %}
    <li><button type="button" class="reset{% unless firstFound %}{% assign firstFound = true %} active{% endunless %}" data-target="diamonds">About Our Diamonds</button></li>
{% endif %}

{% if settings.shipping_returns %}
    <li><button type="button" class="reset{% unless firstFound %}{% assign firstFound = true %} active{% endunless %}" data-target="shipping">Shipping and Returns</button></li>
{% endif %}