Кастомное количество WooCommerce с вариациями

Я пытался использовать JS-код для кастомного количества с вариациями для WC. При изменении вариаций - количество работает неправильно Ошибка шага или значение Возможно причина в событии "show_variation"

Ссылка на тестовую страницу

Пожалуйста, помогите мне найти и исправить ошибки в этом коде

PHP

 <div class="quantity-button quantity-down">&minus;</div>
<input
    type="number"
    id="<?php echo esc_attr( $input_id ); ?>"
    class="<?php echo esc_attr( join( ' ', (array) $classes ) ); ?>"
    step="<?php echo esc_attr( $step ); ?>"
    min="<?php echo esc_attr( $min_value ); ?>"
    max="<?php echo esc_attr( 0 < $max_value ? $max_value : 1 ); ?>"
    name="<?php echo esc_attr( $input_name ); ?>"
    value="<?php echo esc_attr( $input_value ); ?>"
    title="<?php _e( 'Кількість', AGDS_THEME_TD ) ?>"
    size="4"
    placeholder="<?php echo esc_attr( $placeholder ); ?>"
    inputmode="<?php echo esc_attr( $inputmode ); ?>"
    autocomplete="<?php echo esc_attr( isset( $autocomplete ) ? $autocomplete : 'on' ); ?>"
/>
<div class="quantity-button quantity-up">&plus;</div>

JS

    var quantityCustom = () => {
jQuery(".quantity").each(function () {
    var quantity = jQuery(this),
        input = quantity.find('input[type="number"]'),
        btnUp = quantity.find(".quantity-up"),
        btnDown = quantity.find(".quantity-down"),
        min = input.attr("min") !== '' ? Number(input.attr("min")) : 0,
        max = input.attr("max") !== '' ? Number(input.attr("max")) : 999,
        oldValue = parseFloat(input.val());

    btnUp.click(function (e) {
        e.preventDefault()
        if (oldValue >= max) {
            var newVal = oldValue;
        } else {
            var newVal = oldValue + 1;
        }
        input.val(newVal);
        input.trigger("change");
    });

    btnDown.click(function (e) {
        e.preventDefault()
        if (oldValue <= min) {
            var newVal = oldValue;
        } else {
            var newVal = oldValue - 1;
        }
        input.val(newVal);
        input.trigger("change");
    });
})

}

$(document).on('show_variation', function (e, variation) {
    quantityCustom()
})

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