• I’m creating a plugin with infinite scroll and need your javascript to fire each time a new product is added on the page. I came up with the following code that I hope you could include in a future update. I don’t believe this will break anyones existing installation:

    assets/js/wc-quantity-increment.js

    function wcqi_refresh_quantity_increments(){
    	// Quantity buttons
    	jQuery( 'div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)' ).addClass( 'buttons_added' ).append( '<input type="button" value="+" class="plus" />' ).prepend( '<input type="button" value="-" class="minus" />' );
    }
    
    jQuery(document).ready(function(){
    	wcqi_refresh_quantity_increments();
    });
    
    jQuery( document ).on( 'click', '.plus, .minus', function() {
    
    	// Get values
    	var $qty		= jQuery( this ).closest( '.quantity' ).find( '.qty'),
    		currentVal	= parseFloat( $qty.val() ),
    		max			= parseFloat( $qty.attr( 'max' ) ),
    		min			= parseFloat( $qty.attr( 'min' ) ),
    		step		= $qty.attr( 'step' );
    
    	// Format values
    	if ( ! currentVal || currentVal === '' || currentVal === 'NaN' ) currentVal = 0;
    	if ( max === '' || max === 'NaN' ) max = '';
    	if ( min === '' || min === 'NaN' ) min = 0;
    	if ( step === 'any' || step === '' || step === undefined || parseFloat( step ) === 'NaN' ) step = 1;
    
    	// Change the value
    	if ( jQuery( this ).is( '.plus' ) ) {
    
    		if ( max && ( max == currentVal || currentVal > max ) ) {
    			$qty.val( max );
    		} else {
    			$qty.val( currentVal + parseFloat( step ) );
    		}
    
    	} else {
    
    		if ( min && ( min == currentVal || currentVal < min ) ) {
    			$qty.val( min );
    		} else if ( currentVal > 0 ) {
    			$qty.val( currentVal - parseFloat( step ) );
    		}
    
    	}
    
    	// Trigger change event
    	$qty.trigger( 'change' );
    
    });

    https://www.ads-software.com/plugins/woocommerce-quantity-increment/

Viewing 3 replies - 1 through 3 (of 3 total)
Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘allow refresh for new elements on page’ is closed to new replies.