WooCommerce отображает цену при изменении выбора количества - PullRequest
1 голос
/ 12 февраля 2020

Я хочу отобразить итоговую цену при изменении выбора количества.

Это код, который я недавно нашел.

add_action( 'woocommerce_single_product_summary', 'woocommerce_total_product_price', 15 );
function woocommerce_total_product_price() {
global $woocommerce, $product;
// let's setup our divs
echo sprintf('<div id="product_total_price" style="margin-bottom:20px;">%s %s</div>',__('Product Total:','woocommerce'),'<span class="price">'.$product->get_price().'</span>');
?>
    <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( currency + product_total.toFixed(0));

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

Но я использую шаблон WordPress, который использует построитель шаблонов ( например, конструктор страниц), чтобы создать страницу продукта, и этот код здесь не работает.

как я могу добавить этот код на свою пользовательскую страницу продукта?

1 Ответ

1 голос
/ 12 февраля 2020

Я надеюсь, что вы добавили этот код в функции своей темы. php file.

У вас есть возможность увидеть этот элемент ниже на странице подробного описания продукта?

<div id="product_total_price"></div>

И если это отражается во внешнем интерфейсе, это означает, что хук woocommerce работает нормально. Затем нам нужно проверить, работает ли функция Change или нет. Для этого добавьте оповещение («Тест»); внутри функции Изменить, как показано ниже.

<script>
        jQuery(function($){
            var price = <?php echo $product->get_price(); ?>,
                currency = '<?php echo get_woocommerce_currency_symbol(); ?>';

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

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

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

                }
            });
        });
    </script>

Пожалуйста, поделитесь URL страницы продукта для лучшего понимания.

Обновленный код для замены в функциях. php:

   add_action( 'woocommerce_single_product_summary', 'woocommerce_total_product_price', 20 );
add_action( 'woocommerce_before_add_to_cart_form', 'woocommerce_total_product_price', 20 );

function woocommerce_total_product_price() {
global $woocommerce, $product;
// let's setup our divs

echo '<div id="product_total_price" style="margin-bottom:20px;"></%s %s</div>,Product Total: <span class="price">'.$product->get_price().'</span>';

?>
    <script>
        jQuery(function($){
            var price = <?php echo $product->get_price(); ?>,
                currency = '<?php echo get_woocommerce_currency_symbol(); ?>';

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

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

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

                }
            });
        });
    </script>
<?php
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...