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