Cambiemos el boton de añadir al carrito (add to cart) si el producto ya existe en el carrito, esto le dara un mejor UX a tu tienda en linea.
Para hacer este cambio puedes hacerlo con estos dos fragmentos de código.
No olvides que este bloque de código va en el archivo functions.php o utilizando el plugin de Code Snippets.
El primero es para cambiarlo cuando el usuario visite el Single Product (la pagina detalle del producto)
add_filter( 'woocommerce_product_single_add_to_cart_text', 'marcode_add_to_cart_again_single_product', 9999 );
function marcode_add_to_cart_again_single_product( $label )
{
if (WC()->cart && !WC()->cart->is_empty()) {
foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
$product = $values['data'];
if (get_the_ID() == $product->get_id()) {
$label = 'Agregar de nuevo';
break;
}
}
return $label;
}
}
Este segundo bloque es para la seccion de loops es decir donde se encuentre un grid de productos.
add_filter( 'woocommerce_product_add_to_cart_text', 'marcode_add_to_cart_again_loop', 9999, 2 );
function marcode_add_to_cart_again_loop( $label, $product ) {
if ( $product->get_type() == 'simple' && $product->is_purchasable() && $product->is_in_stock() ) {
if ( WC()->cart && ! WC()->cart->is_empty() ) {
foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( get_the_ID() == $_product->get_id() ) {
$label = 'Agregar de nuevo';
break;
}
}
}
return $label;
}
}