跳到內容
免費試用 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。

這對您有幫助嗎?