Shopify:按购物车中的商品标签隐藏结帐按钮

时间:2020-08-06 10:56:04

标签: shopify shopify-template

当购物车中有带有预购产品标签和常规产品标签的产品时,我想隐藏购物车按钮。

此代码,我们能够获得购物车中所有产品的标签。

{% 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 %}

如何将所有循环值作为一个值处理?

1 个答案:

答案 0 :(得分:0)

您走在正确的道路上,但是您的代码有两个问题。

  1. 您正在覆盖每个产品的“购物车标签”值。因此,您的购物车中总是有最后一个产品的产品标签。
  2. 当您将其视为字符串时,
  3. product.tags 返回Array。

解决这些问题后,您的代码将变得如此

{% 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的空变量。然后,对于购物车中的每个产品,我都使用联接过滤器将标签数组转换为字符串,并使用附加过滤器将其添加到所有标签中。

Product Tags

Join Filter

Append Filter