我的购物车页面上添加了{{ 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>
答案 0 :(得分:1)
blank
关键字来涵盖所有情况在Liquid中,一些比较和truthy / falsey值的行为与来自不同语言时的预期不同。幸运的是,blank
关键字存在,它将匹配以下所有内容:
null
/ nil
false
''
(空字符串)[]
/ {}
(空数组/对象)将您的比较更改为{% if note != blank %}
会使您的代码完全符合您的预期。
干杯!
PS:或者,如果您更喜欢阅读正面比较(或者只是想要花哨),您可以使用等效的“除非”声明: {% unless note == blank %} ... {% else %} ... {% endunless %}