2016-06-14 9 views
2

У меня есть несколько вариантов для каждого продукта, который содержит разную цену. Я пытаюсь получить переменную цены продукта с помощью jQuery, и я получаю ее, но этот код ниже дает минимальную цену изменения, а я хотел бы получить текущую цену за текущий вариант. Затем, когда я меняю другое значение выбора, изменение изменяется на переднем конце с правильной ценой, но в журнале консоли минимальная цена отображается снова и снова, а не соответствующая цена для соответствующего варианта.Получите переменную цену продукта с помощью jquery - WooCommerce

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?

Любая помощь будет appretiated

ответ

2

Я нашел решение, но получить цену от .single_variation_wrap -> .price -> .amount текст, который outputed из 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>'); 
     }); 
    }); 

Это не очень хорошее решение, но оно работает.

Есть ли какое-либо другое профессиональное решение, как я могу это сделать?