2016-06-14 8 views
2

Ich habe einige Variation pro Produkte, die unterschiedlichen Preis enthalten, ich versuche, das Produkt variabler Preis mit jQuery zu bekommen und ich bekomme es aber diesen Code unten nur erhalten die minimale Variation Preis und ich möchte den aktuellen Preis für die aktuelle Variante erhalten. Wenn ich dann einen anderen Auswahlwert ändere, ändert sich die Variation im Frontend mit dem korrekten Preis, aber im Konsolenprotokoll wird immer wieder der Min-Preis angezeigt und nicht der entsprechende Preis für die entsprechende Variation.Erhalten Sie variable Produktpreis mit 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); 
    }); 
}); 

Ich habe versucht, in die add-to-cart-variation.js und der wp-util.js Datei suchen einen Weg zu finden, aber ich bin nicht in der Lage, es zu tun.

Gibt es eine Möglichkeit, den aktuellen Variationspreis dynamisch mit jQuery abzurufen?

Jede Hilfe wäre appretiated

Antwort

2

werden fand ich eine Lösung, aber es den Preis aus dem .single_variation_wrap -> .price -> .amount Text abrufen, die von variation.php Datei outputed wird.

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>'); 
     }); 
    }); 

Es ist nicht eine ziemlich gute Lösung, aber es funktioniert.

Gibt es eine andere professionelle Lösung, wie kann ich es machen?

Verwandte Themen