2016-06-14 3 views
2

J'ai une certaine variation par produit qui contient des prix différents, j'essaie d'obtenir le prix variable du produit avec jQuery et je l'obtiens mais ce code ci-dessous obtient seulement le prix de variation min et je aimerait obtenir le prix actuel pour la variation actuelle. Puis quand je change une autre valeur de sélection, la variation change dans le début avec le prix correct, mais dans le journal de console le prix minimum est montré encore et encore et pas le prix correspondant pour la variation correspondante.Obtenir le prix variable du produit avec 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); 
    }); 
}); 

J'ai essayé de regarder dans le add-to-cart-variation.js et le fichier wp-util.js trouver un moyen, mais je ne suis pas capable de le faire.

Existe-t-il un moyen de récupérer dynamiquement le prix de variation actuel avec jQuery?

Toute aide serait appretiated

Répondre

2

J'ai trouvé une solution, mais il récupère le prix du texte .single_variation_wrap -> .price -> .amount qui est outputed à partir du fichier 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>'); 
     }); 
    }); 

Ce n'est pas une bonne solution, mais cela fonctionne.

Existe-t-il d'autres solutions proffesionnelles comment puis-je le faire?