@Valery23

Как заставить скрипт работать только один раз для одного товара?

Сайт на Wordpress. Использую Woocommerce. У меня в functions.php находиться вот такой код:

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="font-size: 18px;color: #ff0e0e;margin-bottom:20px;">%s %s</div>',__('Product Total:','woocommerce'),'<span style="color: #ff0e0e;" class="price"> $'.$product->get_price().' - for one unit!</span>');
     //  echo sprintf('<div id="cart_total_price" style="margin-bottom:20px;">%s %s</div>',__('Cart Total:','woocommerce'),'<span class="price"> $'.$product->get_price().'</span>');
    ?>
        <script>
jQuery(document).ready(function($){

  // grab the price
  var initial_price = $('[itemprop="price"]').attr('content');

  $('.qty').on('change',function(){
     var total_price = initial_price * this.value;
     console.log(initial_price, this.value, total_price);
  });

})       	
            jQuery(function($){
                var price = <?php echo $product->get_price(); ?>,
                    current_cart_total = <?php echo $woocommerce->cart->cart_contents_total; ?>,
                    currency = '<?php echo get_woocommerce_currency_symbol(); ?>';
 
                $('[name=quantity]').change(function(){
                    if (!(this.value < 1)) {
                        var product_total = parseFloat(price * this.value),
                        cart_total = parseFloat(product_total + current_cart_total);
 
                        $('#product_total_price .price').html( currency + product_total.toFixed(2));
                        $('#cart_total_price .price').html( currency + cart_total.toFixed(2));
                    }
                    $('#product_total_price,#cart_total_price').toggle(!(this.value <= 1));
 
                });
            });
        </script>
    <?php
}


Он отвечает за вывод общей суммы цены (при выборе количества) товаров. Он отлично работает, когда на странице находиться один товар. Но когда их два, то при смене количества на одном, на втором показывается цена первого. Как остановить скрипт в рамках одного товара?
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ответы на вопрос 1
vova87
@vova87
Разработка сайтов на wordpress
Нужно сделать привязку к id товаров. Чтобы для каждого был отдельный подсчет цены.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы