当购物车中有带有预购产品标签和常规产品标签的产品时,我想隐藏购物车按钮。
此代码,我们能够获得购物车中所有产品的标签。
{% for item in cart.items %}
{% assign carttag = item.product.tags %}
<p>{{ carttag }}</p>
{% endfor %}
但是,以下代码不起作用。
{% if carttag contains 'Preorder' and carttag contains 'Regular' %}
<p>Stop!</p>
{% else %}
<input type="submit" name="checkout">
{% endif %}
如何将所有循环值作为一个值处理?
答案 0 :(得分:0)
您走在正确的道路上,但是您的代码有两个问题。
解决这些问题后,您的代码将变得如此
{% assign cartTags = "" %}
{% for item in cart.items %}
{% assign joinedTags = item.product.tags | join: " " %}
{% assign cartTags = cartTags | append:" " | append:joinedTags %}
{% endfor %}
{% if cartTags contains 'string1' and cartTags contains 'string2' %}
{{cartTags}}
{% endif %}
我在这里所做的是,初始化了一个名为cartTags的空变量。然后,对于购物车中的每个产品,我都使用联接过滤器将标签数组转换为字符串,并使用附加过滤器将其添加到所有标签中。