Я пытаюсь отобразить значение, основанное на вводе количества woocommerce, и использую следующий скрипт jQuery.
<script>
jQuery(function($){
var form = 'form.variations_form', selected = 'input[name="variation_id"]',
attrVal = 'input#attr-hidden';
var price = <?php echo $product->get_price(); ?>;
$(form).on( 'blur', 'select', function() {
if($(selected).val() != ''){
if(($(attrVal).val() == 'Black') && ($('[name=quantity]').val() >= 1 && $('[name=quantity]').val() <= 50)){
print_price = '15'
}
if(($(attrVal).val() == 'Black') && ($('[name=quantity]').val() >= 51 && $('[name=quantity]').val() <= 100)){
print_price = '10'
}
}
});
var currency = '<?php echo get_woocommerce_currency_symbol(); ?>';
$('[name=quantity]').change(function(){
if (!(this.value < 0)) {
var print_product_total = parseFloat(print_price * this.value);
$('#print_total_price .print_price').html( currency + print_product_total.toFixed(2));
}
$('#print_total_price').toggle(!(this.value <= 0));
});
});
Что делает этот скрипт, если выбранный атрибутпродукт является «черным», а введенное количество больше 1 и меньше 50 отображает поле со значением «15», а если оно больше 51 и меньше 100, отображается «10».
Проблема в том, что если я ввожу количество 1, а затем изменил его на 51, он по-прежнему отображает «15», если только я снова не выберу атрибут «Черный».