我有以下代码在Elementor的自定义代码中,它被加载在body标签的末尾。
<script>
jQuery(document).ready(function($){
var productPrice;
var finalProductPrice;
var shippingPrice;
var servicePrice;
var result;
var output;
//
$('#ship-price-a').on('click', function(){
if( typeof productPrice === 'undefined' ){
productPrice = $('#original-price').find('.woocommerce-Price-amount').text();
}
//
shippingPrice = $(this).attr('data-price');
if( typeof finalProductPrice === 'undefined' ){
//var vat = ( shipPrice * 22 / 100 );
finalProductPrice = ( parseFloat(productPrice) + parseFloat(shippingPrice) );
result = finalProductPrice + '€';
} else {
var p = ( parseFloat(finalProductPrice) + parseFloat(shippingPrice) );
result = p + '€';
}
output = result.replace('.', ',');
$('#final-price').text(output);
console.log('service price a click event - finalProductPrice',finalProductPrice);
});
//
$('#ship-price-b').on('click', function(){
if( typeof productPrice === 'undefined' ){
productPrice = $('#original-price').find('.woocommerce-Price-amount').text();
}
shippingPrice = $(this).attr('data-price');
//var vat = ( shipPrice * 22 / 100 );
if( typeof finalProductPrice === 'undefined' ){
finalProductPrice = ( parseInt(productPrice) + parseFloat(shippingPrice) );
result = finalProductPrice + '€';
} else {
var p = ( parseInt(finalProductPrice) + parseFloat(shippingPrice) );
result = p + '€';
}
output = result.replace('.', ',');
$('#final-price').text(output);
console.log('ship price b click event - finalProductPrice',finalProductPrice);
});
//
$('#service-price-a').on('click', function(){
servicePrice = $(this).attr('data-price');
if( typeof productPrice === 'undefined' ){
productPrice = $('#original-price').find('.woocommerce-Price-amount').text();
}
if( typeof finalProductPrice === 'undefined' ){
finalProductPrice = ( parseFloat(productPrice) + parseFloat(servicePrice) );
result = finalProductPrice + '€';
} else {
var p = ( parseFloat(finalProductPrice) + parseFloat(servicePrice) );
result = p + '€';
}
output = result.replace('.', ',');
$('#final-price').text(output);
console.log('service price a click event - finalProductPrice',finalProductPrice);
});
//
$('#service-price-b').on('click', function(){
servicePrice = $(this).attr('data-price');
if( typeof productPrice === 'undefined' ){
productPrice = $('#original-price').find('.woocommerce-Price-amount').text();
}
if( typeof finalProductPrice === 'undefined' ){
finalProductPrice = ( parseFloat(productPrice) + parseFloat(servicePrice) );
result = finalProductPrice + '€';
} else {
var p = ( parseFloat(finalProductPrice) + parseFloat(servicePrice) );
result = p + '€';
}
output = result.replace('.', ',');
$('#final-price').text(output);
console.log('service price b click event - finalProductPrice',finalProductPrice);
});
});
</script>
我遇到了一个问题,这段代码应该在用户点击购买某些附加服务时计算产品的最终价格。
对于#ship-price-a
和#ship-price-b
,计算是正确的。但当用户尝试添加#service-price-a
和#service-price-b
时,计算结果会出错,只会将其中一个服务的价格计入总金额。请问代码中存在什么问题,我需要在哪里进行修改以修复这个问题?