Hi there,
and thank you for writing in!
We see in your installation you (or some plugins) add the following code snippet to increase/decrease the quantity:
jQuery( document ).ready( function ( $ ) {
$( '.woocommerce .quantity' ).on( 'click', '.minus', function ( e ) {
var qty = $( this ).parent().find( 'input.qty' );
var val = parseInt( qty.val() );
var step = qty.attr( 'step' );
step = 'undefined' !== typeof( step ) ? parseInt( step ) : 1;
if ( val > 0 ) {
qty.val( val - step ).change();
}
} );
$( '.woocommerce .quantity' ).on( 'click', '.plus', function ( e ) {
var qty = $( this ).parent().find( 'input.qty' );
var val = parseInt( qty.val() );
var step = qty.attr( 'step' );
step = 'undefined' !== typeof( step ) ? parseInt( step ) : 1;
qty.val( val + step ).change();
} );
} );
jQuery( document.body ).on( 'updated_cart_totals', function () {
jQuery( document ).ready( function ( $ ) {
$( '.woocommerce .quantity' ).on( 'click', '.minus', function ( e ) {
var qty = $( this ).parent().find( 'input.qty' );
var val = parseInt( qty.val() );
var step = qty.attr( 'step' );
step = 'undefined' !== typeof( step ) ? parseInt( step ) : 1;
if ( val > 0 ) {
qty.val( val - step ).change();
}
} );
$( '.woocommerce .quantity' ).on( 'click', '.plus', function ( e ) {
var qty = $( this ).parent().find( 'input.qty' );
var val = parseInt( qty.val() );
var step = qty.attr( 'step' );
step = 'undefined' !== typeof( step ) ? parseInt( step ) : 1;
qty.val( val + step ).change();
} );
} );
} );
jQuery( document ).on( 'qv_loader_stop', function () {
jQuery( this ).ready( function ( $ ) {
$( '#yith-quick-view-modal .quantity' ).on( 'click', '.minus', function ( e ) {
var qty = $( this ).parent().find( 'input.qty' );
var val = parseInt( qty.val() );
var step = qty.attr( 'step' );
step = 'undefined' !== typeof( step ) ? parseInt( step ) : 1;
if ( val > 0 ) {
qty.val( val - step ).change();
}
} );
$( '#yith-quick-view-modal .quantity' ).on( 'click', '.plus', function ( e ) {
var qty = $( this ).parent().find( 'input.qty' );
var val = parseInt( qty.val() );
var step = qty.attr( 'step' );
step = 'undefined' !== typeof( step ) ? parseInt( step ) : 1;
qty.val( val + step ).change();
} );
} );
} );
To fix this issue you can simply replace that code snippet with the following one:
jQuery( function ( $ ) {
$( document ).on( 'click', '.quantity .minus, .quantity .plus', function ( e ) {
var target = $( e.target ),
qty = target.closest( '.quantity' ).find( 'input.qty' ),
min, max, step, value;
if ( qty.length ) {
min = qty.attr( 'min' ) || 0;
max = qty.attr( 'max' ) || 0;
step = qty.attr( 'step' ) || 1;
min = parseInt( min );
max = parseInt( max );
step = parseInt( step );
value = parseInt( qty.val() );
if ( target.is( '.plus' ) ) {
value += step;
} else {
value -= step;
}
value = Math.max( min, value );
if ( max ) {
value = Math.min( max, value );
}
qty.val( value ).change();
}
} );
} );
Please try this solution and let us know if everything works fine!