Vacía el Carrito de WooCommerce Antes de Agregar un Nuevo Producto 🚀

Al momento de manejar un ecommerce, es común querer tener control total sobre el carrito de compras. Una práctica útil es vaciar el carrito antes de agregar un nuevo producto, de esta manera, aseguras que tus clientes solo compren lo que realmente desean. ✅ ¡Vamos a ver cómo hacerlo!

Paso 1: Añadir el código al archivo de funciones

Para que esta funcionalidad esté activa en tu tienda en línea, debes agregar el siguiente código a tu archivo functions.php de tu tema. Aquí te muestro cómo hacerlo:

// Vacía el carrito antes de agregar un nuevo producto
add_filter('woocommerce_add_to_cart_validation', 'vaciar_carrito_antes_de_agregar', 10, 3);

function vaciar_carrito_antes_de_agregar($passed, $product_id, $quantity) {
    // Vacía el carrito antes de agregar el nuevo producto
    WC()->cart->empty_cart();
    return $passed;
}

Explicación del código

  • add_filter: Esta función se utiliza para enganchar una función personalizada a un filtro de WooCommerce. En este caso, estamos usando woocommerce_add_to_cart_validation, que se ejecuta antes de validar la acción de añadir un producto al carrito.
  • vaciar_carrito_antes_de_agregar: Esta es la función que hemos definido. Toma tres parámetros:
    • $passed: Indica si el producto puede ser añadido al carrito.
    • $product_id: Contiene el ID del producto que se está intentando añadir.
    • $quantity: Cantidad del producto a agregar.
  • WC()->cart->empty_cart(): Este método se utiliza para vaciar todo el contenido del carrito antes de validar el nuevo producto.
  • Finalmente, hacemos un return $passed, permitiendo que la acción de agregar el producto continúe después de vaciar el carrito.

Personalización y mejoras

Puedes personalizar este código para agregar mensajes de advertencia o redirigir a los usuarios después de vaciar el carrito, utilizando funciones de redirección como wf_redirect() si es necesario. Esto puede ayudar a mejorar la experiencia del usuario.

Compartir esta información