无法在 Liquid 代码、Shopify 中找到访问者的位置
Posted
技术标签:
【中文标题】无法在 Liquid 代码、Shopify 中找到访问者的位置【英文标题】:Unable to find visitor's location in Liquid code, Shopify 【发布时间】:2019-06-27 12:14:36 【问题描述】:我一直在尝试通过调整我的 Shopify 主题的液体代码来根据国家/地区过滤我的产品。但是,我遇到了一个问题,我想在我的 Liquid 代码中访问访问者所在的国家/地区,但无法做到。
我可以使用 AJAX/JQuery 来获取位置,但它在客户端运行,直到那时,液体已经在服务器端处理,这使得过滤变得不可能。
我已成功尝试使用 AJAX 获取位置,但不知道如何在 Liquid 代码中使用它。
$.getJSON("https://ipinfo.io", function(data)
console.log(data.country);
);
【问题讨论】:
【参考方案1】:您需要使用customer object 和customer_address object。
您还需要先检查客户是否已登录:
% if customer and customer.default_address %
Country: customer.default_address.country
% endif %
【讨论】:
这是不可能的。我迫不及待地等待客户登录,以便根据客户所在的国家/地区过滤产品。 如果您等不及客户,那么检查用户所在国家/地区的唯一方法是使用他们的 IP 通过地理定位,这不是 Shopify 的问题。您可能会使用第三方地理定位服务。【参考方案2】:您不能使用 Liquid 来确定国家/地区。首先,在这个 *** 时代,它不可靠,其次 Shopify 将记录限制为分配给订单的客户 IP 地址。
使用客户的建议是您最好的选择。如果他们没有登录,太糟糕了,你会显示通用的东西。如果他们已登录,则您可以根据地址决定向他们展示什么。请注意,即使这样也可能会给您带来一些痛苦。
【讨论】:
以上是关于无法在 Liquid 代码、Shopify 中找到访问者的位置的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 代码中格式化液体(Shopify)代码
用于 Shopify 主题开发的 LESS CSS 和转义 Liquid 语法