2016-07-13 18 views
1

1つの商品ページに合計金額を加算したいと考えていました。残念ながら私はプログラマーではありません。つまり、実際にはJavaScriptやコードについてよく知らないということです。WooCommerceの商品ページに合計1,000円のセパレータを追加

Googleでいくつかのコードを検索し、function.phpファイルに追加しました。

これはコードです:

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 
} 

私の問題は、コードが千単位の区切りを示していないです。どうやってやるの?

そして、数量とカートに追加ボタンの合計金額を加算したいと思います。今すぐ合計金額は数量の前です。

ありがとうございました。

+1

チェックこれはそれをhttp://stackoverflow.com/questions/149055/how-can-i-format-numbers-as-money-in-javascriptが手伝う。 – Deep

+0

@LoicTheAztecそれは動作しませんが、あなたの優しさのためにありがとう – user6585401

答えて

1

更新:私はこのコードをテストしていますが、今は完全に動作しています。

説明。コードには2つの部分があります:

  1. 最初の製品価格を表示しています。私はここにPHPの機能number_format()を使用して、1000コーマセパレータで価格を書式設定しています。
  2. jQueryを使用して数量で合計価格を更新しています。私はjavacript replace()の機能をカスタムと一緒に使用しています。だからここ

は、作業のコードは次のとおりです。

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 
} 

右の場所に価格を置く:

ここでは示していcontent-single-product.phpテンプレートからの抜粋ですページ上の異なる要素のフックを使用した順序(配置):

あなたの関数のための位置を補正するためにあなたが見ることができるよう
/** 
* 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'); 

は、優先2030の間にあります。だから私は優先度を選択した25

参考:

+0

ありがとう:)それは良い作品! – user6585401

関連する問題