Establecer que sólo se puedan comprar cantidades de 2 en 2 en WooCommerce

El WooCommerce, a la hora de comprar un producto, disponemos de un campo en el que podemos indicar la cantidad de elementos de ese productos que queremos comprar:

WooCommerce campo cantidad comprar producto

Ya sabremos que podemos ir aumentando el número de productos con el indicador correspondiente así como reducir ese número con el otro botón.

El comportamiento por defecto de WooCommerce es que cada vez que pulsamos en el botón de «añadir», se suma un elemento y si pulsamos en el botón de «disminuir cantidad» hace lo contrario.

Como este es el comportamiento por defecto de WooCommerce, si queremos que este «paso» no sea de 1 en 1 sino de 2 en 2 o de otra cantidad, podemos usar un pequeto snippet que nos resolverá este problema rápidamente.

Para este snippet utilizaremos el hook «woocommerce_quantity_input_args» de la siguiente forma:

add_filter( 'woocommerce_quantity_input_args', 'woocommerce_quanty_imput_step', 10, 2 );

Ahora tenemos que añadir el código neceario a nuestra función «woocommerce_quantity_input_step()» para que en lugar de incremetar y decrementar de 1 en 1, lo haga de 2 en 2. Pero como digo, esto lo podemos cambiar a nuestro gusto (ej: de 8 en 8).

En esta función establecemos el parámetro ‘step’ igua a 2 así:

function woocommerce_quanty_imput_step( $args, $product ) {

	$args['step'] = 2;  // de 2 en 2.
	return $args;
}

Si añadimos el código que tenemos hasta ahora, nos funcionará pero si nos fijamos, no funciona como queremos ya que cuando entramos en la página de un producto, la cantidad inicial es «1» y claro, esto no es lo que tenemos en mente porque no queremos que puedan comprar uno sino un mínimo de 2 y a partir de ahí, de 2 en 2.

Pare establecemos que el valor inicial de ‘input_value’ sea 2. Esto lo hacemos de la siguiente manera:

$args['input_value'] = 2;

Vamos avanzando…

Pero… ¿y si el usuario indica la cantidad modificando el valor con el teclado? No funciona nuestro invento, claro que no.

Entonces, para ello lo que vamos a hacer es establecer un valor mínimo para que no pueda ser nunca uno. Siempre el mínimo será 2.

$args['min_value'] = 2;

Si hacemos esto y probamos a poner «1» en la cantidad y pulsamos en el botón de «Añadir al carrito», nos mostrará un mensaje similar al siguiente:

WooCommerce mensaje cantidad mínima

Ya lo tenemos funcionando.

Ahora vamos a recopilar todo el código para que lo tengáis listo para copiar, pegarlo donde queráis y modificar a vuestro gusto:

El video

Espero que os sea de utilidad este tutorial y cualquier cosa, me dejáis un comentario.

Saludos y mucho ánimo!!