跳转到内容
免费试用 15 天
简体中文
在 Claude 中打开 就此页面提问在 ChatGPT 中打开 就此页面提问

自定义 Liquid

编写您自己的 Liquid 代码片段来决定访问权限,可使用客户、购物车、产品和店面变量。

Custom liquid 规则允许您编写自己的 Liquid 代码片段,来决定访客是否获得访问权限。这是应用中最灵活的规则:凡是能针对客户、购物车、当前产品或产品系列、或店面本身写成 Liquid 条件的内容,都可以用来限制访问。但它也是唯一一个代码片段出错会带来实际后果的规则,详见下文。

Custom liquid 是基于操作的规则,因此没有 If/Unless 开关。应用会为每位访客运行您的代码片段,并读取其最终结果。结果必须恰好是 true 或 false(忽略前后空白):true 表示通过规则,false 表示未通过。其他输出(例如 true - customer is eligible)不是有效结果。您的代码片段可以访问与 Shopify 模板中关于当前访客和页面的同类数据。

打开锁定,点击 Unlock rules 标签页,然后从 Condition type 下拉菜单中选择 Custom liquid。

Condition type 下拉菜单,已选择 Custom liquid

在 Unlock rules 标签页的 Condition type 下拉菜单中选择 Custom liquid。

选择该规则的条件类型后,会打开专用的 Liquid 代码编辑器,支持语法高亮、自动补全和实时语法验证,Liquid 中的错误会在您输入时直接在编辑器中标出,无需等到保存。

Custom liquid 代码编辑器,显示一段代码片段和语法验证指示

在代码编辑器中编写并验证 Liquid 代码片段。

编辑器提供了一个可插入的变量库,按描述对象分组:

分组 变量
客户 customer, customer.tags, customer.orders_count, customer.total_spent, customer.b2b?
购物车 cart.item_count, cart.total_price, cart.items
产品和产品系列 product.tags, product.vendor, product.metafields, collection.handle
店面 request.path, request.page_type, localization.country.iso_code, localization.language.iso_code

Variables and templates 面板,显示按类别分组的可用 Liquid 变量

在 Variables and templates 面板中浏览可用变量。

如果您希望从可用的内容开始,而不是面对空白编辑器,同一面板中包含现成的模板,您可以直接使用并调整,包括已登录客户检查、客户标签检查、购物车数量或购物车总额下限、产品标签检查、访客国家/地区检查、URL 路径检查,以及直接检查 customer.b2b? 的现成 Shopify B2B customer 模板。

Example templates 面板,列出可作为起点的现成 Liquid 代码片段

选择入门模板,包括现成的 Shopify B2B 模板。

  1. 打开要保护的锁定,然后点击 Unlock rules 标签页。
  2. 添加访问规则,并将条件类型设置为 Custom liquid。
  3. 直接在编辑器中编写代码片段,或打开 Variables and templates 复制变量,或从现成的模板开始。
  4. 确保代码片段的最终输出对应通过的访客恰好为 true,对其他所有人恰好为 false。不要在该值前后添加说明文字、HTML 或其他输出。编辑器会标出基本的语法问题,但您仍需确认逻辑符合您的预期。
  5. (可选)为该规则设置 Redirect URL,仅在此特定规则拒绝访客时使用。
  6. 保存锁定。

示例:允许带有 VIP 标签的已登录客户

Section titled “示例:允许带有 VIP 标签的已登录客户”

假设一个私密页面只应对账户带有 vip 标签的已登录客户开放。

  1. 选择 VIP collection preview 页面作为要保护的内容。

Lock setup 标签页,内容类型为 Specific Page,Restricted pages 下列出 VIP collection preview 页面。

选择要留给 VIP 客户的页面。

  1. 添加 Custom liquid,并将入门代码片段替换为:
{% if customer and customer.tags contains 'vip' %}true{% else %}false{% endif %}

输入时,编辑器会在下方确认 Liquid syntax is valid。

Custom liquid 条件,Liquid condition 编辑器中是 VIP 标签代码片段,下方显示 Liquid syntax is valid 确认信息。

编辑器会高亮 Liquid,并在保存前验证语法。

  1. 将规则的 Redirect URL 留空。
  2. 将 Access denied message 设置为:

This page is available to VIP customers only.

Messages 卡片,Access denied message 已设置为仅限 VIP 客户的提示文字,Preview 面板显示了该文字。

Custom liquid 只有一个提示信息字段,会显示给所有被代码片段拒绝的人。

  1. 点击 Save。

对于带有 vip 标签的已登录客户,代码片段恰好输出 true,因此页面正常打开。对于访客和没有该标签的客户,代码片段恰好输出 false,因此他们会看到上述提示信息。请不要在代码片段输出的 true 或 false 前后添加文字。

VIP collection preview 页面显示已配置的仅限 VIP 客户的提示信息。

当 Liquid 代码片段返回 false 时,访客会看到本示例中的 Access denied message。

这对您有帮助吗?