问题描述
我正在尝试使用对 IPstack 的 API 调用,以便为来自日本 (JP) 的客户隐藏快速付款选项。通过浏览器堆栈进行测试时它工作了几次,但现在我的 api 调用收到以下 consolve 日志错误,因为它违反了以下内容安全策略指令:“script-src 'self' 'unsafe-inline' 'unsafe-eval ' blob: cdn.shopify.com cdn.shopifycdn.net cdn.shopifycloud.com app.shopify.com'。有谁知道在shopify checkout.liquid 页面上通过地理位置隐藏元素的其他方法吗?
<div class ="alt-payments">{{ alternative_payment_methods }}</div>
<script>
jQuery.ajax({
url: 'https://api.ipstack.com/check?access_key=API_ACCESS_KEY&fields=country_code',dataType: 'jsonp',success: function(location) {
// If the visitor is browsing from JP.
if (location.country_code === 'JP') {
// display none express payments.
jQuery('.alt-payments').css('display','none');
}
}
} );
</script>
解决方法
我会使用 Shopify Scripts,因为您使用的是 Plus。无论如何,发货后付款。所以你有付款前的地址。除非你真的在做一些奇怪的事情。普通的 Plus 结账只会检查地址,然后使用脚本隐藏您不喜欢的付款方式。这就是 Plus 的全部意义所在。