You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopify checkout.liquid中window.location.hostname判断脚本失效问题

Shopify结账页面特定区域脚本触发问题解决

问题根源

你的window.location.hostname判断逻辑在checkout.liquid失效,是因为Shopify结账页面的域名并非你店铺的ca/au子域名——实际结账页面使用的是Shopify官方结账域名(如checkout.shopify.com)或自定义结账域名,不会包含你店铺的区域子域名标识,导致判断条件永远不成立,脚本完全不执行。

可行解决方案

方案1:用Shopify全局JS变量判断地域

结账页面会自动暴露Shopify.country全局对象,直接通过国家代码判断:

if (Shopify.country.isoCode === 'CA' || Shopify.country.isoCode === 'AU') {
  // 执行你的脚本逻辑
}

方案2:用Liquid模板变量提前控制脚本渲染(更可靠)

既然是在checkout.liquid中,直接用Shopify的服务器端Liquid变量判断,只在目标区域输出脚本:

{% if shop.country_code == 'CA' or shop.country_code == 'AU' %}
  <script>
    // 这里直接编写你的脚本,无需前端判断
    // run script
  </script>
{% endif %}

验证方式

  • 方案1:在结账页面打开浏览器控制台,输入Shopify.country.isoCode,可查看当前生效的国家代码,确认逻辑正确性。
  • 方案2:Liquid是服务器端渲染,会根据当前店铺的区域配置直接决定是否渲染脚本,彻底规避前端域名判断的问题。

内容的提问来源于stack exchange,提问作者Adam Casper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:31:17