Shopify - 如何 show/hide 购物车 {{ note }} 取决于它是否在电子邮件通知中留空
Shopify - How to show/hide Cart {{ note }} depending on if it is left empty or not in Email Notification
我在购物车页面上添加了一个 {{ cart.note }}
部分,我将其用于内部采购订单。对于客户电子邮件通知,我希望显示此字段而不是默认发票编号,但前提是该字段已填写(如果留空则显示默认发票编号)。
我试过在电子邮件通知部分写这个:
{% if note != '' %}Purchase Order #: {{ note }}
{% else %}Order {{ order_name }}
{% endif %}
我也尝试用 cart.note
替换 if 语句中的 note
并且它没有改变任何东西。
尽管它最终显示第一行,即使它留空(也从不显示第二行)。
如果有帮助,这是来自 购物车-template.liquid
<textarea name="note" class="input-full" id="CartSpecialInstructions">{{ cart.note }}</textarea>
答:在 Liquid 中,''(空字符串)与 null 不同 - 使用 blank
关键字涵盖所有情况
在 Liquid 中,一些比较和 truthy/falsey 值在来自不同语言时的行为并不像人们预期的那样。幸运的是,blank
关键字存在,它将匹配以下所有内容:
null
/nil
false
''
(空字符串)
[]
/{}
(空array/object)
将您的比较更改为 {% if note != blank %}
应该让您的代码完全按照您的预期运行。
干杯!
PS:或者,如果您更喜欢阅读正面比较(或只是想看点),您可以使用等效的 'unless' 语句: {% unless note == blank %} ... {% else %} ... {% endunless %}
我在购物车页面上添加了一个 {{ cart.note }}
部分,我将其用于内部采购订单。对于客户电子邮件通知,我希望显示此字段而不是默认发票编号,但前提是该字段已填写(如果留空则显示默认发票编号)。
我试过在电子邮件通知部分写这个:
{% if note != '' %}Purchase Order #: {{ note }}
{% else %}Order {{ order_name }}
{% endif %}
我也尝试用 cart.note
替换 if 语句中的 note
并且它没有改变任何东西。
尽管它最终显示第一行,即使它留空(也从不显示第二行)。
如果有帮助,这是来自 购物车-template.liquid
<textarea name="note" class="input-full" id="CartSpecialInstructions">{{ cart.note }}</textarea>
答:在 Liquid 中,''(空字符串)与 null 不同 - 使用 blank
关键字涵盖所有情况
在 Liquid 中,一些比较和 truthy/falsey 值在来自不同语言时的行为并不像人们预期的那样。幸运的是,blank
关键字存在,它将匹配以下所有内容:
null
/nil
false
''
(空字符串)[]
/{}
(空array/object)
将您的比较更改为 {% if note != blank %}
应该让您的代码完全按照您的预期运行。
干杯!
PS:或者,如果您更喜欢阅读正面比较(或只是想看点),您可以使用等效的 'unless' 语句: {% unless note == blank %} ... {% else %} ... {% endunless %}