No permitir eliminar un producto con un ID específico del carrito de WooCommerce si se agrega otro producto.
Tengo que implementar la siguiente lógica en mis páginas de Carrito / Pago:
Si el producto con el ID “100” está en el Carrito, necesito evitar que se elimine del Carrito si también se agregó el Producto con el ID “101”.
En pocas palabras, la capacidad de eliminar un producto solo está presente si no se agregó un producto con un ID específico.
Anteriormente, usé la siguiente solución para evitar la eliminación de productos solo para IDs de productos específicos. Pero este código no funciona con productos variables y no puedo entender cómo implementar mi lógica dentro de él.
add_filter('woocommerce_cart_item_remove_link', 'customized_cart_item_remove_link', 20, 2 );
function customized_cart_item_remove_link( $button_link, $cart_item_key ){
$targeted_products_ids = array( 98,99,100 );
$cart_item = WC()->cart->get_cart()[$cart_item_key];
if( in_array($cart_item['data']->get_id(), $targeted_products_ids) )
$button_link = '';
return $button_link;
}
Gracias de antemano por cualquier ayuda.
davy.ai
Para implementar la nueva lógica, puedes modificar el código existente de la siguiente manera:
Aquí, estamos verificando si el producto que se está eliminando tiene el ID “100”. Si es así, obtenemos todos los artículos del carrito y verificamos si “101” también está presente en el carrito. Si es así, prohibimos la eliminación de “100” devolviendo una cadena vacía para el enlace del botón de eliminación.
Espero que esto ayude. Hazme saber si tienes alguna pregunta.