我有一些变化,每个产品包含不同的价格,我试图用jQuery获得产品变价,我得到它但这个代码只是得到最小的变化价格,我想得到当前的价格为目前的变化。然后,当我更改另一个选择值时,前端的变化会以正确的价格变化,但在控制台日志中,最终价格会一次又一次地显示,而不是相应变化的相应价格。
jQuery( '.variations_form' ).each( function() {
// when variation is found, do something
jQuery(this).on( 'found_variation', function( event, variation ) {
var product = '<?php echo wc_get_product($variation_id) ?>',
price = <?php echo $product->get_price() ?>;
console.log(price);
});
});
我试着查看add-to-cart-variation.js
和wp-util.js
文件以找到某种方法,但我无法做到。
有没有办法用jQuery动态检索当前的变化价格?
任何帮助都会被认定
答案 0 :(得分:2)
我找到了一个解决方案,但它从.single_variation_wrap -> .price -> .amount
文本中检索了价格,该文本是从variation.php文件中输出的。
jQuery( '.variations_form' ).each( function() {
jQuery(this).on( 'change', '.variations select', function() {
var currency = currency = ' <?php echo get_woocommerce_currency_symbol(); ?>',
price = jQuery('.woocommerce-variation-price .amount').text().replace(/ /g,''),
parsePrice = parseFloat(price),
totalPrice = parsePrice.toFixed(2) + currency;
if ( jQuery('.single_variation_wrap .test').length ) {
jQuery('.single_variation_wrap .test').html('');
}
console.log(totalPrice);
jQuery('.single_variation_wrap').append('<span class="test">' + totalPrice + '</span>');
});
});
这不是一个很好的解决方案,但它确实有效。
还有其他专业解决方案我该如何制作?
答案 1 :(得分:1)
您的代码已步入正轨,只需使用 variation 获取价格,图片等
jQuery(document).ready(function() {
jQuery( '.variations_form' ).each( function() {
jQuery(this).on( 'found_variation', function( event, variation ) {
console.log(variation);//all details here
var price = variation.display_price;//selectedprice
console.log(price);
});
});
});
答案 2 :(得分:0)
这是简单的方法:
jQuery(".m-card.product-card").click(function () {
console.log(jQuery(this).attr('id'));
});