Con el siguiente pequeño fragmento de código, vamos a poder evitar que un producto determinado se añada al carrito en WooCommerce.
¿Cuándo nos puede interesar evitar que se añada un producto al carrito?
Por ejemplo, cuando hay determinados productos que hay que preguntar por el stock previamente.
Pasos para la implementación
Simplemente tenemos que hacer dos pasos:
- Crear un campo personalizado con Advanced Custom Fields, llamado
desactivar_carrito
de tipotrue / false
- Añadir el siguiente código en nuestro fichero functions.php del tema activado
El código del punto 2 es el siguiente:
add_filter( 'woocommerce_add_to_cart_validation', 'desactivar_carrito', 20, 3 );
function desactivar_carrito( $passed, $product_id, $quantity) {
if (get_field("desactivar_carrito", $product_id))
{
wc_add_notice( __('Este producto no puede ser añadido al carrito. Debe consultar disponibilidad previamente'), 'error' );
$passed = false;
}
else
{
$passed = true;
}
return $passed;
}
De esta forma, cuando un usuario intente añadir un producto al carrito, si no se puede añadir, le mostrará un mensaje de error.