|
/* |
|
Add Quantity Option to WooCommerce Shop Page |
|
@ code from https://code.mukto.info |
|
*/ |
|
add_filter( 'woocommerce_loop_add_to_cart_link', 'mukto_qty_inputs_add_to_cart', 10, 2 ); |
|
function mukto_qty_inputs_add_to_cart( $html, $product ) { |
|
if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) { |
|
$html = '<form action="' . esc_url( $product->add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data">'; |
|
$html .= woocommerce_quantity_input( array(), $product, false ); |
|
$html .= '<button type="submit" class="button alt">' . esc_html( $product->add_to_cart_text() ) . '</button>'; |
|
$html .= '</form>'; |
|
} |
|
return $html; |
|
} |
|
|
|
// Add Quantity Plus-Minus Button to WooCommerce Quantity Input |
|
|
|
add_action( 'woocommerce_after_quantity_input_field', 'mukto_display_quantity_plus' ); |
|
function mukto_display_quantity_plus() { |
|
echo '<button type="button" class="plus">+</button>'; |
|
} |
|
add_action( 'woocommerce_before_quantity_input_field', 'mukto_display_quantity_minus' ); |
|
function mukto_display_quantity_minus() { |
|
echo '<button type="button" class="minus">-</button>'; |
|
} |
|
|
|
/* |
|
Jquery for for Quantity Plus-Minus Button |
|
@ code from https://code.mukto.info |
|
*/ |
|
add_action( 'wp_footer', 'mukto_add_cart_quantity_plus_minus' ); |
|
function mukto_add_cart_quantity_plus_minus() { |
|
wc_enqueue_js( " |
|
|
|
$(document).on( 'click', 'button.plus, button.minus', function() { |
|
|
|
var qty = $( this ).parent( '.quantity' ).find( '.qty' ); |
|
var val = parseFloat(qty.val()); |
|
var max = parseFloat(qty.attr( 'max' )); |
|
var min = parseFloat(qty.attr( 'min' )); |
|
var step = parseFloat(qty.attr( 'step' )); |
|
|
|
if ( $( this ).is( '.plus' ) ) { |
|
if ( max && ( max <= val ) ) { |
|
qty.val( max ).change(); |
|
} else { |
|
qty.val( val + step ).change(); |
|
} |
|
} else { |
|
if ( min && ( min >= val ) ) { |
|
qty.val( min ).change(); |
|
} else if ( val > 1 ) { |
|
qty.val( val - step ).change(); |
|
} |
|
} |
|
|
|
}); |
|
|
|
" ); |
|
} |