Woocommerce. Изменение цен в зависимости от количества

Всем привет. Мне удалось реализовать решение для вариативного товара. Все работает. Цена изменяется в зависимости от вариации и от количества. Ниже рабочий код. Но не могу добиться такого же эффекта для обычного товара.

Код для вариативного товара:

add_action('wp_footer', 'custom_variation_price_script');
function custom_variation_price_script() {
    if ( is_product() ) {
        ?>
        <script>
            jQuery(function($) {
                function updatePrice() {
                    var variation_id = $('input.variation_id').val();
                    var quantity = $('input[name="quantity"]').val();
                    $.ajax({
                        type: 'POST',
                        url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
                        data: {
                            action: 'get_variation_price',
                            variation_id: variation_id,
                            quantity: quantity
                        },
                        success: function(response) {
                            $('.wpr-product-price').html(response);
                        }
                    });
                }

                $('input.variation_id').change(updatePrice);

                $('input[name="quantity"]').on('input', updatePrice);

                $('.fa-plus, .fa-minus').click(function() {
                    setTimeout(updatePrice, 1);
                });
            });
        </script>
        <?php
    }
}

add_action('wp_ajax_get_variation_price', 'get_variation_price');
add_action('wp_ajax_nopriv_get_variation_price', 'get_variation_price');

function get_variation_price() {
    if ( isset($_POST['variation_id'], $_POST['quantity']) ) {
        $variation_id = $_POST['variation_id'];
        $quantity = $_POST['quantity'];
        $variation = wc_get_product($variation_id);
        $price = $variation->get_price() * $quantity;
        echo wc_price($price);
    }
    wp_die();
}

А вот для обычного товара:

add_action('wp_footer', 'custom_product_price_script');
function custom_product_price_script() {
    if ( is_product() ) {
        ?>
        <script>
            jQuery(function($) {
                function updatePrice() {
                    var quantity = $('input[name="quantity"]').val();
                    $.ajax({
                        type: 'POST',
                        url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
                        data: {
                            action: 'get_product_price',
                            quantity: quantity
                        },
                        success: function(response) {
                            $('.wpr-product-price').html(response);
                        }
                    });
                }

                // Оновлення ціни при зміні кількості
                $('input[name="quantity"]').on('input', updatePrice);

                $('.fa-plus, .fa-minus').click(function() {
                    setTimeout(updatePrice, 1);
                });
            });
        </script>
        <?php
    }
}

add_action('wp_ajax_get_product_price', 'get_product_price');
add_action('wp_ajax_nopriv_get_product_price', 'get_product_price');

function get_product_price() {
    if ( isset($_POST['quantity']) ) {
        $quantity = $_POST['quantity'];
        $product_id = get_the_ID();
        $product = wc_get_product($product_id);
        $price = $product->get_price() * $quantity;
        echo wc_price($price);
    }
    wp_die();
}


Ответы (0 шт):