商品価格を自動的に更新するには、opencart ショップ システムを少し変更する必要があるため、少し変更したスクリプトを見つけましたが、現在問題が発生しています。
元の価格は div から取得され、選択されたラジオまたは選択オプションからの値で更新されます。しかし、製品に複数のオプション (複数の選択またはラジオ) がある場合、それに応じて価格が更新されません: 常に元の価格を (スクリプトから) 取得し、別のオプションを変更すると、前に更新された価格で更新されません。 . それに加えて、あるオプションを選択してから別のオプションを選択し、最初のオプションを再度変更しても、何も変更されません。
Jquery スクリプト:
$(document).ready(function() {
$('.option').change(function() {
var OriginalPrice = $('#thisIsOriginal').text();
OriginalPrice = OriginalPrice.replace( /,/,"." );
var OriginalCurrency = OriginalPrice.substring(OriginalPrice.length - 1, OriginalPrice.length);
OriginalPrice = OriginalPrice.substring(0,OriginalPrice.length - 1);
if($('.option :checked').val()) {
var newPriceValue = $('.option :checked').attr("id");
newPriceValue = $("label[for='" + newPriceValue + "']").text();
}
if($('.option :selected').val()) {
var newPriceValue = $('.option :selected').text();
}
newPriceValue = newPriceValue.replace( /,/,"." );
var position1 = newPriceValue.indexOf("(");
var position2 = newPriceValue.indexOf(")");
position1 = position1+2;
var finalPriceValue = newPriceValue.substring(position1, position2);
if(newPriceValue.indexOf('.') == -1)
{
finalPriceValue = "0";
}
else
{
finalPriceValue = finalPriceValue.substring(0,finalPriceValue.length - 1);
}
console.log(finalPriceValue);
finalPriceValue = parseFloat(finalPriceValue) + parseFloat(OriginalPrice);
finalPriceValue = finalPriceValue.toFixed(2);
finalPriceValue = finalPriceValue.replace( ".","," );
$('#priceUpdate').text(finalPriceValue + OriginalCurrency);
});
});
価格はユーロなので、正しい 10 進数値に変換して元に戻しています。
それが明確で、誰かが助けてくれることを願っています!
乾杯!