使用jquery获取可变产品价格 - WooCommerce

时间:2016-06-14 21:41:53

标签: jquery wordpress woocommerce variations

我有一些变化,每个产品包含不同的价格,我试图用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.jswp-util.js文件以找到某种方法,但我无法做到。

有没有办法用jQuery动态检索当前的变化价格?

任何帮助都会被认定

3 个答案:

答案 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'));

  });