/ / ¿Número limitado de artículos en el carrito de WooCommerce? - WordPress, WooCommerce, producto, carrito, compras

¿Número de artículos en el carrito de woocommerce? - wordpress, woocommerce, producto, carrito, compras

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

ejemplo

¿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 № 1

Es 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 );