Quiero limitar la cantidad de productos en mi carrito a 6 máximo. Todos los productos en mi configuración de WooCommerce se venden por separado (no se pueden comprar múltiplos del mismo producto).
Ejemplo de carro
¿Hay alguna forma de limitar el carrito a 6 productos? Entonces, si el usuario va a agregar un séptimo, aparecerá una advertencia "Máximo de 6 productos solamente. ¿Eliminar un producto de su carrito"?
Intenté buscar en Google, pero solo pude encontrar esto, limitado a un producto singular: Necesita Woocommerce para permitir solo 1 producto en el carrito
Respuestas
3 para la respuesta № 1Es el mismo procedimiento que la otra pregunta.te vinculaste a En el filtro de validación, verifique el contenido del carrito y devuelva un mensaje si no se cumplen sus requisitos. Como se mencionó, de hecho usaría get_cart_contents_count()
para contar el número de líneas de pedido en el carrito.
Editado: retirar empty()
comprobar en el carro
function so_31516355_cap_cart_count( $valid, $product_id, $quantity ) {
if( $valid && ( $quantity > 6 || intval( WC()->cart->get_cart_contents_count() ) > 6 || $quantity + intval( WC()->cart->get_cart_contents_count() ) > 6 ) ){
$valid = false;
wc_add_notice( "Whoa hold up. You can only have 6 items in your cart", "error" );
}
return $valid;
}
add_filter( "woocommerce_add_to_cart_validation", "so_31516355_cap_cart_count", 10, 3 );
Adicional: validación en la actualización del carrito
function so_31516355_cap_cart_count_update( $valid, $cart_item_key, $values, $quantity ) {
if( $valid && ( $quantity > 6 || intval( WC()->cart->get_cart_contents_count() ) > 6 || $quantity + intval( WC()->cart->get_cart_contents_count() ) > 6 ) ){
$valid = false;
wc_add_notice( __( "Whoa hold up. You can only have 6 items in your cart", "your-plugin" ), "error" );
}
return $valid;
}
add_filter( "woocommerce_update_cart_validation", "so_31516355_cap_cart_count_update", 10, 4 );