在 Shopify 中分配条件全局液体变量

Assigning conditional global liquid variables in Shopify

我正在尝试根据所使用的本地域显示 shopify 内容。为此,我得到了以下效果很好的方法:

{% if request.host contains 'co.nz' %}
  {% assign site_currency = "NZ" %}
{% endif %}

问题是变量似乎只在编译前的一个 snippet/template/layout 文件中起作用,而 Shopify 类 作为全局变量实际上只是主题设置中的一个值因此不能是有条件的。

我试过“{% assign scope = ‘page’ %}”,它在编译后显然可以工作,但我无法让它工作,而且文档很少。

有谁知道我如何只声明一次这个变量然后在整个主题中引用它?

谢谢!

Shopify 全局变量只是这里指定的对象 - https://shopify.dev/docs/themes/liquid/reference/objects

在不通过片段引用的情况下实现全局引用功能的唯一方法是通过 JS 将其存储在 cart.attributes 中,但这需要页面刷新才能生效。

创建代码段或将 {{ content_for_layout }} 上方的代码粘贴到 theme.liquid

{% comment %} /snippets/global-vars.liquid {% endcomment %}

{% if request.host contains 'co.nz' %}
  {% assign site_currency = "NZ" %}
{% endif %}

如果您有几种不同的货币,我建议您考虑使用 case/whenhere are 文档。

{% comment %} /layout/theme.liquid {% endcomment %}

...

{% include 'global-vars' %}
{% comment %} this should print the currency {% endcomment %}
{{ site_currency }} 
{{ content_for_layout }}

...