2016-07-13 8 views
1

Ich wollte den Gesamtpreis in einzelne Produktseite hinzufügen. Leider bin ich kein Programmierer. Es bedeutet, dass ich über JavaScript oder Code nicht gut weiß.Add Tausende seperator mit Gesamtpreis in WooCommerce-Produktseiten

Also suchte ich einige Codes auf Google und fügte sie in function.php Datei.

Dies ist der Code:

add_action('woocommerce_single_product_summary', 'woocommerce_total_product_price', 29); 
function woocommerce_total_product_price() { 
    global $woocommerce, $product; 
    echo sprintf('<div id="product_total_price" style="margin-bottom:20px;">%s %s</div>',__('price total','woocommerce'),'<span class="price">'.$product->get_price().'</span>'.'KRW'); 
    ?> 
     <script> 
      jQuery(function($){ 
       var price = <?php echo $product->get_price(); ?>, 
        currency = '<?php echo get_woocommerce_currency_symbol(); ?>'; 

       $('[name=quantity]').change(function(){ 
        if (!(this.value < 1)) { 

         var product_total = parseFloat(price * this.value); 

         $('#product_total_price .price').html(product_total.toFixed(0)); 

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

Mein Problem ist der Code zeigen Tausendertrenn nicht. Wie kann ich das machen?

Und ich möchte den Gesamtpreis zwischen Menge und Warenkorb hinzufügen Schaltfläche hinzufügen. Jetzt ist der Gesamtpreis vor der Menge.

Danke.

+1

diese Prüfung http://stackoverflow.com/questions/149055/how-can-i-format-numbers-as-money-in-javascript Es wird dir helfen. – Deep

+0

@LoicTheAztec Obwohl es nicht funktioniert, danke für Ihre Freundlichkeit – user6585401

Antwort

1

Update: Ich habe diesen Code getestet und es funktioniert jetzt perfekt.

Erläuterungen. Es gibt 2 Teile in Ihrem Code:

  1. Anzeige des ursprünglichen Produktpreises mit php. Ich habe hier PHP-Funktion number_format() zu formatieren Preis mit einem tausend Koma Separator.
  2. Aktualisierung des Gesamtpreises nach der Menge mit jQuery. Ich benutze Javascript replace() Funktion mit einem benutzerdefinierten drin.

So, hier ist Ihr Arbeitscode:

add_action('woocommerce_single_product_summary', 'woocommerce_total_product_price', 25); 
function woocommerce_total_product_price() { 
    global $woocommerce, $product; 
    $product_price = number_format($product->get_price()); 


    echo sprintf('<div id="product_total_price" style="margin-bottom:20px;">%s %s</div>',__('price total','woocommerce'),'<span class="price">'.$product_price.'</span>'.' KRW'); 
    ?> 
     <script> 
      jQuery(function($){ 
       var price = <?php echo $product->get_price(); ?>, 
        currency = '<?php echo get_woocommerce_currency_symbol(); ?>'; 

       $('[name=quantity]').change(function(){ 
        if (!(this.value < 1)) { 

         var product_total = parseFloat(price * this.value); 
         var product_total_formated = product_total.toFixed(0).replace(/(\d)(?=(\d{3})+$)/g, "$1,"); 

         $('#product_total_price .price').html(product_total_formated); 

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

Ihren Preis in der richtigen Stelle platzieren:

Hier ist ein Auszug aus content-single-product.php Vorlage, zeigt die Reihenfolge (Platzierung) von verschiedenen Elementen auf der Seite, durch Haken:

/** 
* woocommerce_single_product_summary hook. 
* 
* @hooked woocommerce_template_single_title - 5 
* @hooked woocommerce_template_single_rating - 10 
* @hooked woocommerce_template_single_price - 10 
* @hooked woocommerce_template_single_excerpt - 20 
* @hooked woocommerce_template_single_add_to_cart - 30 
* @hooked woocommerce_template_single_meta - 40 
* @hooked woocommerce_template_single_sharing - 50 
*/ 
do_action('woocommerce_single_product_summary'); 

Wie Sie sehen können, die Position zu korrigieren, um Ihre Funktion zwischen Priorität 20 und 30 ist. Also habe ich Priorität 25 gewählt.

Referenz:

+0

Vielen Dank :) es funktioniert gut !!!! – user6585401