shopify - Shopify:在购物车中按产品标签隐藏结帐按钮
问题描述
当购物车中有带有预购产品标签和常规产品标签的产品时,我想隐藏购物车按钮。
这段代码,我们能够获取购物车中所有产品的标签。
{% 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 %}
如何将所有循环值作为一个处理?
解决方案
您走在正确的道路上,但您的代码有 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 的空变量。然后对于购物车中的每个产品,我使用连接过滤器将标签数组转换为字符串,并使用附加过滤器将它们添加到所有标签中。
推荐阅读
- android - CMAKE_CURRENT_BINARY_DIR 的 Gradle 模拟是什么?
- python - 通过服务器读取数据时,python f.read() 和 f.seek() 很慢
- java - 如何从 Java URLConnection getContent 获取数据到字符串
- asp.net-mvc - Azure API 网关和 Web 应用程序 - 如何提供 CSS、JS 和图像?
- python - 单击 - 基于其他选项的提示的动态默认值
- android - Activity 与 AppCompatActivity:UI 的区别
- visual-studio - 使用生成的符号在反编译源中的断点处发出“未加载符号”通知
- bash - 使用 gnu-parallel 处理文件内容
- r - 如何制作 UDF,用于对数据框中的所有变量进行描述性分析
- javascript - 如何通过制作命令从浏览器控制台获取脚本