2016-09-20 5 views
0

Я работаю над кодом, чтобы получить выбранную вариацию цена * количество штук в цене.Получить qty * цена вариации

Как-то мне не удается получить его работу:

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 } 

Все предложения на этом?

+0

Dont вы должны использовать '$ this.val()' вместо 'this.value'? –

+0

Вы правы, сделал это, но кажется, что он принимает неправильный объект. Когда я добавляю parseint к нему, это не номер. – Pjelp

+0

'$ (this) .text();' или '$ (this) .attr (" value ")' возможно, зависит от вашей версии jquery –

ответ

0

Решено после некоторого следа и ошибки .. Может быть приятнее, но он работает на моей стороне. Примечание. Я в Нидерландах использую вместо него. (woocommerce также настроена на, как десятичная ..).

Общая цена, основанная на вариации @ темы/functions.php

// 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 } 
Смежные вопросы