Tahák k tvorbě webů

WooCommerce

Produkt - tlačítka pro změnu množství

V detailu produktu a v košíku přidá vedle políčka "Množství" tlačítka plus a mínus.

PHP - detail produktu

<?php
function gog_quantity_buttons_product() {
	echo '<button type="button" name="cart-quantity-minus" class="button cart-quantity minus">&ndash;</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 - košík

<?php
function gog_quantity_buttons_cart($product_quantity) {
	$product_quantity .= '<button type="button" name="cart-quantity-minus" class="button cart-quantity minus">&ndash;</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

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();
	});