jquery - 我收到一个错误“Snipcart.api.setCurrency 不是函数”,我认为它可能来自 Accept: application/json
问题描述
我正在帮助某人将 Snipcart 集成到他们的 Squarespace 商店中,并且他们想要使用多币种功能。对于我拥有的每个 Snipcart.api... 函数,我都收到一个错误“Snipcart.api.setCurrency 不是函数”。
我认为这可能与我的代码中没有包含“接受:应用程序/json”有关,但我不知道在哪里以及如何使用它。
<script>
document.addEventListener('snipcart.ready', function(){
console.log('ready!');
Snipcart.subscribe('cart.ready', function() {
$('#currency').val(Snipcart.api.getCurrentCurrency());
});
Snipcart.subscribe('currency.changed', function (currency) {
$('#currency').val(currency);
});
$(function() {
$('#currency').change(function () {
Snipcart.api.setCurrency($(this).val());
});
});
});
</script>
解决方案
旧线程,但对于仍然卡住的线程,这里是代码(在 snipcart v3.0.31 上使用)。请注意,当您更改货币时,购物车不会自动更新。
<script>
document.addEventListener('snipcart.ready', function() {
const select = document.getElementById('currencies');
select.addEventListener('change', () => {
Snipcart.api.session.setCurrency(select.value);
});
Snipcart.store.subscribe(updateSelectedCurrency);
function updateSelectedCurrency() {
const state = Snipcart.store.getState();
const currency = state.cart.currency;
document.getElementById('currencies').value = currency;
}
});
</script>
推荐阅读
- java - MD5 TripleDES Ecryption in Java NoPadding Issue
- scala - CSV format is not loading in spark-shell
- flutter - How to provide data with provider using nested data models [List > Item > Sublist > SubItem]
- matlab - If I have 4 coordinates making a rectangle, how can I color in that area?
- flutter - 在 Flutter 的网页中显示对话框提示
- bash - 查明我列表中的文件夹是否真的存在于我的文件夹中
- javascript - 如何将 HTML 输入中的文件加载到 Emscripten 的 MEMFS 文件系统中?
- javascript - 将对象转换为数组对象,但按键名字符数减少
- karate - 使用 mvn test -Dcucumber.options="--tags @golden" 执行项目的空手道跑步者类示例
- javascript - mongodb、nodejs中User.register和User.create的区别