2016-09-20 2 views
0

Ich arbeite an etwas Code, um die ausgewählte Variation Preis * Menge zum Gesamtpreis zu erhalten.Get Qty * Variation Preis

Irgendwie schaffe ich nicht, um es arbeiten:

add_action('woocommerce_single_product_summary', 'woocommerce_total_product_price', 31); 
function woocommerce_total_product_price() { 
global $woocommerce, $product; 
// let's setup our divs 
echo sprintf('<div id="product_total_price" style="margin-bottom:20px; display: block;">%s %s</div>',__('Totaal Prijs:','woocommerce'),'<span class="price">'.$product->get_price().'</span>'); 
?> 
    <script> 
     jQuery(function($){ 
      var price = <?php get_post_meta(get_the_ID(), '_regular_price', true);?> 
      console.log(price); 
      var currency = '<?php echo get_woocommerce_currency_symbol(); ?>'; 

      $('[name=quantity]').change(function(){ 
        var product_total = parseFloat(price * this.value); 
        $('#product_total_price .price').html(currency + product_total.toFixed(2)); 


      }); 
     }); 
    </script> 
<?php } 

Irgendwelche Vorschläge auf diesem?

+0

Dont sollten Sie '$ this.val()' statt 'this.value' benutzen? –

+0

Sie haben Recht, haben dies getan, aber es scheint, dass es das falsche Objekt braucht. Wenn ich Parseint hinzufüge, ist es keine Zahl. – Pjelp

+0

'$ (this) .text();' oder '$ (this) .attr (" value ")' hängt vielleicht von Ihrer jquery-Version ab –

Antwort

0

Gelöst nach etwas Trail und Fehler .. Könnte netter sein, aber es arbeitet an meiner Seite. Hinweis Ich bin in den Niederlanden, wir verwenden die, statt. (Woocommerce ist auch als dezimal konfiguriert.).

Gesamtpreis auf Variation @ Thema/functions.php based

// hook this on priority 31, display below add to cart button. 
add_action('woocommerce_single_product_summary', 'woocommerce_total_product_variation_price', 31); 
function woocommerce_total_product_variation_price() { 
global $woocommerce, $product; 
// setup base html... We are going to rewrite this with the standard selected variation 
echo sprintf('<div id="product_total_price" style="margin-bottom:20px; display: block;">%s %s</div>',__('Totaal Prijs:','woocommerce'),'<span class="price">'.$product->get_price().'</span>'); 
?> 
    <script> 
     jQuery(function($){ 

     var currency = currency = ' <?php echo get_woocommerce_currency_symbol(); ?>'; 

      function priceformat() { 
       var product_total = parseFloat(jQuery('.woocommerce-variation-price .amount').text().replace(/ /g ,'').replace(/€/g ,'').replace(/,/g ,'.')) * parseFloat(jQuery('.qty').val()); 
       var product_total2 = product_total.toFixed(2); 
       var product_total3 = product_total2.toString().replace(/\./g, ','); 

       jQuery('#product_total_price .price').html(currency + ' ' + product_total3); 
      } 

      jQuery('[name=quantity]').change(function(){ 
       priceformat(); 
      }); 

      jQuery('body').on('change','.variations select',function(){ 
       priceformat();    
      }); 

      priceformat(); 

     }); 
    </script> 
<?php }