【问题标题】:Shopify : Hide checkout button by product tag in cartShopify:在购物车中按产品标签隐藏结帐按钮
【发布时间】:2020-08-06 10:56:04
【问题描述】:

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

这段代码,我们可以得到购物车中所有产品的标签。

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

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

【问题讨论】:

    标签: shopify shopify-template


    【解决方案1】:

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

    1. 您正在覆盖每个产品的购物车标签值。因此,您始终拥有购物车中最后一个产品的产品标签。
    2. 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

    【讨论】:

    • 您好,谢谢您的建议。它按预期工作。我会继续学习代码
    猜你喜欢
    • 1970-01-01
    • 2016-04-05
    • 2017-12-08
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多