V detailu produktu a v košíku přidá vedle políčka "Množství" tlačítka plus a mínus.
<?php
function gog_quantity_buttons_product() {
echo '<button type="button" name="cart-quantity-minus" class="button cart-quantity minus">–</button>';
echo '<button type="button" name="cart-quantity-plus" class="button cart-quantity plus">+</button>';
}
add_action('woocommerce_after_add_to_cart_quantity', 'gog_quantity_buttons_product');
<?php
function gog_quantity_buttons_cart($product_quantity) {
$product_quantity .= '<button type="button" name="cart-quantity-minus" class="button cart-quantity minus">–</button>';
$product_quantity .= '<button type="button" name="cart-quantity-plus" class="button cart-quantity plus">+</button>';
return $product_quantity;
}
add_filter('woocommerce_cart_item_quantity', 'gog_quantity_buttons_cart', 10, 1);
jQuery(document).ready(function() {
jQuery('body').on('click', 'button.cart-quantity', function() {
var $this = jQuery(this);
var $quantity = $this.parent().find('div.quantity').find('input.qty');
var q = $quantity.val();
if ($this.hasClass('minus')) {
if (q > 1) {
q--;
}
}
else if ($this.hasClass('plus')) {
q++;
}
$quantity.val(q);
$quantity.change();
});
});
Pokud můžu zadávat množství produktu s přesností na desetinná místa, potom je tento jQuery skript upravit:
jQuery('body').on('click', 'button.cart-quantity', function() {
var $this = jQuery(this);
var $quantity = $this.parent().find('div.quantity').find('input.qty');
var q = parseFloat($quantity.val());
var min = parseFloat($quantity.attr('min'));
var step = parseFloat($quantity.attr('step'));
if ($this.hasClass('minus')) {
if (q > min) {
q = q - step;
}
}
else if ($this.hasClass('plus')) {
q = q + step;
}
q = Math.round(q*100)/100;
$quantity.val(q);
$quantity.change();
});