WooCommerce: eliminar productos del carrito mediante programación

Ya vimos cómo agregar un producto al carrito automáticamente, por ejemplo si visita una página específica o si no hay productos en el carrito , pero hoy queremos descubrir cómo hacer lo contrario: si se cumple una determinada condición, queremos eliminar una ID de producto del carrito.

Esto se vuelve un poco complejo: mientras que agregar un artículo al carrito solo requiere su ID de producto, eliminarlo del carrito lo obliga a conocer la «clave del artículo del carrito». Japonés, lo sé, ¡pero solo copie el fragmento y listo!

Cómo eliminar automáticamente un producto del carrito

Fragmento de PHP: Eliminar artículo del carrito automáticamente

En el siguiente ejemplo, me dirijo al ID de producto = 282: el fragmento busca su «clave de artículo del carrito» y usa la función remove_cart_item() para eliminarlo.

/**
 * @snippet       Remove Cart Item Programmatically - WooCommerce
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.8
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
add_action( 'template_redirect', 'bbloomer_remove_product_from_cart_programmatically' );
 
function bbloomer_remove_product_from_cart_programmatically() {
   if ( is_admin() ) return;
   $product_id = 282;
   $product_cart_id = WC()->cart->generate_cart_id( $product_id );
   $cart_item_key = WC()->cart->find_product_in_cart( $product_cart_id );
   if ( $cart_item_key ) WC()->cart->remove_cart_item( $cart_item_key );
}

Deja un comentario