【问题标题】:Shopify, formatMoney use current currency dynamicallyShopify、formatMoney 动态使用当前货币
【发布时间】:2021-04-06 19:40:30
【问题描述】:

我正在使用 this 脚本在 Shopify 中格式化货币。问题是我需要拥有多种货币的灵活性,而当前的功能似乎不支持它。

我尝试将该脚本包含在 .liquid 文件中,并使用 {{ currency.symbol }} 之类的:Shopify.money_format = "{{ currency.symbol }}" + "{{amount}}";"{{ currency.symbol }}{{amount}}";{{ currency.symbol }} + "{{amount}}"; 但这会导致 placeholderRegex 出现错误,该错误将变为未定义。

谢谢!

编辑: 这是我使用该函数的代码:

Shopify.onItemAdded = function(line_item) {
    jQuery.getJSON('/cart.js', function(cart) {
       // change total price
       $('#popup_total').html(Shopify.formatMoney(cart.total_price))
    });
};

编辑[2]:最后我采用了不同的方法。我在函数外部声明了当前货币变量,然后将原始 $ 符号替换为商店拥有的任何货币符号。它是这样的:

var currentCurrency = '{{ cart.currency.symbol }}'

Shopify.onItemAdded = function(line_item) {
    jQuery.getJSON('/cart.js', function(cart) {
         var total = Shopify.formatMoney(cart.total_price).replace('$', currentCurrency)
         $('#popup_total').html(total)
    })
}

【问题讨论】:

    标签: javascript shopify


    【解决方案1】:

    该功能不会将您限制为单一货币 - 第一个参数是未格式化的金额,第二个参数是所需的格式,可以使用您想要的任何货币 - 例如。 "€ {{amount}}"

    编辑:

    您似乎没有使用第二个格式参数。你可以试试:

    Shopify.formatMoney(cart.total_price, "€{{amount}}")
    

    或者你想要什么货币?感谢您提供额外的代码,但仍然很难理解输入和期望的输出,以及您可以访问的其他变量(您提到了动态货币,但它存储在哪里?哪个变量?)

    【讨论】:

    • 但是当我改变商店的货币时,它不会改变我用这个脚本注入的价格货币。所以我希望货币符号相对于商店的当前货币动态显示。可能我没听懂你的回答?
    • 您正在使用的该功能适用​​于多种货币,因此您应该能够按原样重复使用它 - 这就是我的建议。我怀疑应该有一种方法可以在您的设置中使用它。话虽如此,如果没有看到您引用的任何代码,很难提供额外的指导,因此您可能希望使用更多代码更新您的问题
    • 我在使用函数的地方添加了代码。更改货币时,金额本身会发生变化,只是符号不会。但是,如果我将"${{amount}}" 更改为"€{{amount}}",那么它将像您说的那样显示。我不能像我尝试过的那样在函数中包含一些液体吗?
    • 更新了更多内容,但仍然可以在可用输入和所需输出上更加清晰
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多