Shopify - 如何显示/隐藏购物车{{note}},具体取决于是否在电子邮件通知中保留为空

时间:2017-08-28 21:06:09

标签: shopify liquid

我的购物车页面上添加了{{ cart.note }}部分,我将其用于内部采购订单。对于客户电子邮件通知,我希望显示此字段而不是默认的发票编号,但仅当填写该字段时(如果留空,则显示默认发票#)。

我已尝试在电子邮件通知部分中写这个:

{% if note != '' %}Purchase Order #: {{ note }} 
{% else %}Order {{ order_name }} 
{% endif %}

我还尝试用note替换if语句中的cart.note,但它没有改变任何内容。

虽然它最终显示第一行,即使它是空的(也从不显示第二行)。

如果有帮助,则来自 cart-template.liquid

<textarea name="note" class="input-full" id="CartSpecialInstructions">{{ cart.note }}</textarea>

1 个答案:

答案 0 :(得分:1)

答:在Liquid中,''(空字符串)与null不同 - 使用blank关键字来涵盖所有情况

在Liquid中,一些比较和truthy / falsey值的行为与来自不同语言时的预期不同。幸运的是,blank关键字存在,它将匹配以下所有内容:

  • null / nil
  • false
  • ''(空字符串)
  • [] / {}(空数组/对象)

将您的比较更改为{% if note != blank %}会使您的代码完全符合您的预期。

干杯!

PS:或者,如果您更喜欢阅读正面比较(或者只是想要花哨),您可以使用等效的“除非”声明: {% unless note == blank %} ... {% else %} ... {% endunless %}