Cambiar el texto de añadir al carrito en Woocommerce

LucusHost, el mejor hosting

Woocommerce permite hacer tiendas de productos físicos, digitales, afiliados, reservas… es por eso que el texto de añadir al carrito muchas veces no casa con su objetivo. Por lo que con unos simples códigos vamos a ver cómo cambiarlos en nuestro ecommerce.

Modificar el texto de añadir al carrito

Añadir este código en vuestro functions.php de vuestro child theme o bien en vuestro plugin de snippets como explico aquí.

// Variar el botón de añadir al carrito
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' );
 
function woo_custom_cart_button_text() {
        return __( 'Conseguir Ebook', 'woocommerce' ); // Cambiar texto por el que queráis
}
// Variar el botón de archivo
add_filter( 'woocommerce_product_add_to_cart_text', 'woo_archive_custom_cart_button_text' );    // 2.1 +
 
function woo_archive_custom_cart_button_text() {
 
        return __( 'Conseguir Ebook', 'woocommerce' ); // Cambiar texto por el que queráis
 
}

Con este ejemplo de alguien que necesita conseguir su ebook ya, es tontería poner añadir al carrito.

modificar anadir al carrito en woocommerce

Cambiar el texto en un producto específico

add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_cart_button_text' ); 
add_filter( 'woocommerce_product_add_to_cart_text', 'custom_cart_button_text' ); 

function custom_cart_button_text($text) {
    global $woocommerce;
    global $post;
    $post_id = $post->ID;
    if($post_id == 1311){
        $text = __( 'Financiar ahora', 'woocommerce' );
    }
    return $text;
}

Cambiar el texto cuándo ya está añadido al carrito

Con este código conseguiremos que cuando el cliente navegue por la tienda y añada un producto, pueda saber si vuelve al mismo que ya lo tiene añadido.

// Cambiar el texto de añadir al carrito cuando ya está añadido

add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' );

function woo_custom_cart_button_text() {
                global $woocommerce;
                foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
                                $_product = $values['data'];
                                if( get_the_ID() == $_product->id ) {
                                                return __('Añadido al carrito, ¿añadir más?', 'woocommerce'); //Cambiar el texto entre comillas de lo que queréis mostrar en el botón
                                }
                }
                return __('Añadir al carrito', 'woocommerce');
}

// Cambiar texto en el archivo

add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' );
function woo_archive_custom_cart_button_text() {
                global $woocommerce;
                foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
                                $_product = $values['data'];
                                if( get_the_ID() == $_product->id ) {
                                                return __('Añadido al carrito, ¿añadir más?', 'woocommerce'); //Cambiar el texto entre comillas de lo que queréis mostrar en el botón
                                }
                }
                return __('Añadir al carrito', 'woocommerce');
}

No recomiendo aplicar esta función, pero si queréis estas pijaditas adelante, lo tenía guardado porque me lo pidió un cliente, se quedaría algo así:

cambiar el texto anadir al carrito si ya esta anadido

Si necesitas ayuda con estos cambios o tu tienda online en Woocommerce puedes contactar conmigo desde el menú.

[ratings]

¡Haz clic para puntuar esta entrada!
(Votos: 6 Promedio: 5)
mailerlite diegol

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial? Mándame un correo y te resuelvo todas las dudas!


Ver servicios Curso de WooCommerce

También puedes realizar una donacion para seguir apoyando la salida de nuevos tutoriales y actualizaciones

mailerlite diegol

Reader Interactions

comentarios

  1. Manuel says

    Hola,
    Gracias por la información. En este caso, no sería más sencillo simplemente traducir?

    add_filter(‘gettext’, ‘translate_text’);
    add_filter(‘ngettext’, ‘translate_text’);

    function translate_text($translated) {
    $translated = str_ireplace(‘Añadir al carrito’, ‘Comprar’, $translated);

    return $translated;
    }

    • Diegol says

      Hola Manuel, sí sería más sencillo. El problema de hacerlo así es que en cualquier zona que esté añadir al carrito se cambiará por comprar y solo lo queremos cambiar en el botón, ya que puede haber otras partes de la web en las que salgan y no queramos traducirlas.

  2. Alejandro says

    Hola, tengo un problema con el codigo de » Cambiar el texto cuándo ya está añadido al carrito » no me funciona en el tema shopical , en otros temas si , como se podria solucionar eso?

  3. Geronimo says

    Diego, ve verdad mil gracias por ayudar a los emprendedores compartiendo tu conocimiento.

    Me funcionó perfecto el cambio de nombre del botón de los productos en woocommerce y te confirmo que es una platilla, es decir funciona perfecto. Gracias.

    Pero serías tan amable de indicarme ¿como hago para cambiar el icono del mismo botón o quitarlo si no se puede cambiar ?

  4. Dani Serrano says

    Diego!!

    Muchísimas gracias, me ha venido perfecto!
    Sólo apuntar que «woocommerce_product_add_to_cart_text» también funciona para el shortcode «add_to_cart» que es donde lo he usado yo 🙂

    Gracias mozo!

  5. Jesús says

    Hola, Muchísimas Gracias por tu aporte, ya voy a probar esto. Tengo una duda, con mi equipo estoy creando un marketplace y me suceden 3 casos que me gustaría tengan un texto diferente:
    1) Cuando hay stock, que quede como esta (un botón que dice añadir al carrito y otro que dice comprar)
    2)Si no hay stock, y el vendedor tiene configurado «No permitir reservas» que el botón aparezco deshabilito, o mejor aun, que el texto diga sin stock y el botón deshabilitado
    3) Si no hay stock, pero el vendedor tiene permitido las reservas de producto que diga un texto como «No hay stock pero puedes reservar»

    Como debería hacerlo.

  6. Gerardo says

    Muchísimas gracias por el consejo. Me ha funcionado perfecto.
    Lo ue pasa es que solo se puede poner un producto, si metes una lista de productos, aunque lo separes por comas la web peta.
    ¿Habría que poner el código para cada producto o se puede poner una array de alguna forma?
    Mil gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *