Cambia el boton de Añadir al carrito si el producto ya esta en el carrito

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;
    }
}

Deja un comentario

Share This