Son muchas las cosas que puedes personalizar en una tienda online con WooCommerce, y un básico es cambiar el texto del botón «Añadir al carrito» según necesidad.
Además es muy fácil, solo tienes que elegir el código adecuado a tus necesidades de los que tienes a continuación, añadirlo a tu plugin de utilidades o al archivo functions.php
y modificar el texto de ejemplo en el código por el que tu prefieras.
Índice de contenidos
Cambiar el botón «Añadir al carrito» en la página de producto
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); // 2.1 + function woo_custom_cart_button_text() { return __( 'Mi texto para el botón', 'woocommerce' ); }
Cambiar el botón «Añadir al carrito» en el archivo de productos
add_filter( 'woocommerce_product_add_to_cart_text', 'woo_archive_custom_cart_button_text' ); // 2.1 + function woo_archive_custom_cart_button_text() { return __( 'Mi texto para el botón', 'woocommerce' ); }
Cambiar el botón «Añadir al carrito» por tipo de producto en el archivo de productos
add_filter( 'woocommerce_product_add_to_cart_text' , 'custom_woocommerce_product_add_to_cart_text' ); /** * custom_woocommerce_template_loop_add_to_cart */ function custom_woocommerce_product_add_to_cart_text() { global $product; $product_type = $product->product_type; switch ( $product_type ) { case 'external': return __( 'Comprar productos', 'woocommerce' ); break; case 'grouped': return __( 'Ver productos', 'woocommerce' ); break; case 'simple': return __( 'Añadir al carrito', 'woocommerce' ); break; case 'variable': return __( 'Selección de opciones', 'woocommerce' ); break; default: return __( 'Leer más', 'woocommerce' ); } }
Cambiar el botón «Añadir al carrito» por categoría
En este caso tenemos que personalizar a nuestro gusto un código como el siguiente:
add_filter( 'woocommerce_product_add_to_cart_text', 'ayudawp_texto_carrito_por_categoria' ); function ayudawp_texto_carrito_por_categoria() { global $product; $terms = get_the_terms( $product->ID, 'product_cat' ); foreach ($terms as $term) { $product_cat = $term->name; break; } switch($product_cat) { case 'categoria1'; //Nombre de una categoría return 'Texto del botón para la categoría 1'; break; case 'categoria2'; return 'Texto del botón para la categoría 1'; break; default; return 'Texto del botón por defecto para el resto de categorías'; break; } }
Cambiar el texto «Añadir al carrito» con plugin
Nos recuerda Enrique J. Ros, con razón, que hay un plugin, además creado por él mismo, que permite también personalizar el texto, así que si prefieres tirar de plugin échale un vistazo a «Add to cart button custom text«.
Otro día veremos más personalizaciones para WooCommerce. Si tienes tu propia lista de favoritas nos lo cuentas en los comentarios.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Estimado, gracias por el artículo, aunque yo utilizo el plugin WC Poor Guys Swiss Knife en un sitio bilingüe con WPML no logro encontrar esta cadena para hacer la traducción, será que con este método se puede?
Concreto y efectivo como siempre, Fernando 🙂
Sólo añadir que el texto del botón se puede personalizar por tipo de producto no sólo en la página de archivo, sino también la ficha de producto, algo que generalmente se olvida en los tutoriales que se encuentran por la red.
Para los que tienen aversión al código pueden utilizar el plugin gratuito «Add to cart button custom text» https://es.wordpress.org/plugins/add-to-cart-button-custom-text/ (yo mismo soy el autor). Con él puedes personalizar el texto del botón tanto en la página de archivo como en la ficha de producto, incluyendo el texto para los productos reservables que añade el plugin WooCommerce Bookings, de WooThemes.
Un saludo, y gracias.
Leche pues eso merece una mención. Ahora mismo actualizo el artículo 😉
Hola, Muy buenos tus aportes. Tengo una duda, cuando agrego esa función a mi archivo funtions.php debo llamar la función desde mis páginas? De ante mano, Gracias mil.
No, funciona tal cual
Pero ¿funciona? Por más que copio/pego no consigo que haga nada 😕
Yo lo uso habitualmente y sí funciona
Yo tengo una pregunta, ¿como puedo añadir el botón a mi página de la tienda? porque estoy haciéndola sin ningún theme, solo con Divi, y al activar el woocommerce la parte de tienda no tiene el botón, solo lo ves hasta que entras en la ficha del producto.
¿Me puedes ayudar con esto?
Divi es un tema, y no añade botón, solo al pulsar en la foto se accede al producto, supongo que te refieres a eso. Pero siempre puedes añadir un botón si te gusta debajo de cada producto
Buen día mi estimado,
Quisiera que me ayude a cambiar el texto ‘seguir comprando’ por ‘ver más productos’
un favor
Revisa este artículo a ver si te ayuda:
https://ayudawp.com/cambiar-cualquier-texto-woocommerce/
Muchas gracias por el post. Es muy útil.
Un a pregunta, ¿Es compatible con WPML? ¿Habría alguna forma de asignar textos en función del idioma?
Muchas gracias.
Hola buenos dias, se que el articulo es de hace un tiempo, pero tengo una duda, yo puedo cambiar el texto del boton solo a una categoria de productos? o a algunos productos en particular?
Funcionan los códigos, pero esa pecularidad se me olvidó ponerla. Actualizo el post con un código nuevo para hacer eso 😉
Dame unos minutos
Ya lo tienes
Gracias XD
Hola buenas acabo de probar el codigo y no me quiere funcionar, la categoria que se colocar entre comillas simples es elslug de la catgoria cierto? porque de resto nose queotra cosa no podria estar funcionand?? y otra cosita el codigo no se puede copiar como tal la web no me deja seleccionar ni copiar en este articulo como tal, saludos y gracias
Me podría decir el codigo para cambiar añadir al carrito, por pre visualizar las imagenes de variantes de un producto, en la pagina de catalogo. Gracias
Hola como estas? muy interesante tu ayuda! Una pregunta, que codigo puedo usar para que me aparezca el boton de «agregar al carrito» en la plantilla DIVI?
Hace mucho de esto, pero quizás a nuevos visitantes les ayude. Con el plugin WooCustomizer puedes cambiar texto de todo; de botones, añadir botón nuevo, mensajes extras por todos lados del producto, stock disponible, poner texto delante del precio o al final (útil para poner incluye iva), cambiar cosas de la pagina de carrito, finalizar compra, etc… Puedes modificar y añadir un montón de cosas 🙂
Como puedo cambiar el texto de «Ver carrito»?
Hola, hermoso articulo, consulto.
Estoy armando un marketplace, los vendedores pueden elegir si sus productos permiten reserva o no cuando el stock es igual a cero. Como puedo hacer que el nombre del boton cambie en funcion de eso:
1) Si hay stock que el botón Agregar al carrito y el boton comprar aparezcan normalmente
2) Si no hay stock pero los vendedores permiten que ese producto sea reservable, que el nombre del boton comprar cambie a reservar
3) Si no hay stock y los vendedores NO aceptan reservas para sus productos que los botones queden desabilitados ( o el nombre cambie a sin stock para simplificar el codigo ya que de todos modos el sistema no les permite agregarlo al carrito o comprarlo)
Hola! Me funcionó perfecto el cambio de nombre, pero ¿como hago para añadir un icono al mismo botón?
tengo este fragmento html de fontawesome, pero no se donde colocarlo
gracias de antemano!
Hola Fernando y demás lectores.
Por ahí en alguna web de nuestro recóndito universo (realmente no recuerdo el nombre) encontré una función que se apoya de un filter hook gettext, me parece muy sencillo de usar, se debe agregar en functions.php de la siguiente manera
add_filter(‘gettext’, ‘change_traduction_text’, 10, 3);
function change_traduction_text($translated, $original, $domain)
{
switch ($translated) {
case ‘Añadir al carrito’:
$translated = ‘Matricularme’;
break;
case ‘No hay productos en el carrito.’:
$translated = ‘Aún no has agregado ninguna materia/curso.’;
break;
}
return $translated;
}
NOTAS:
– change_traduction_text puede ser cualquier nombre que le quieras dar a tu función.
– gettext es inalterable ya que es el nombre del filter hook que se usa y ya esta definido.
– usando switch ($original) { en vez de switch ($translated) { se puede comprarar con la frase en el idioma original si es que la web o plugin que estemos usando ha sido traducido dinámicamente con la función doble underscore __().
– sirve para sobreescribir textos que estén traducidos o no.
– supongo que no sirve en páginas multiidioma a no ser que se considere todas las opciones de idioma que permite la página en la que se aplique usando otro switch anidado evaluando $domain.
Espero que les sea útil.
Buenas tardes, estoy tratando de usar el código para cambiar el botón del texto de añadir al carrito solamente en una categoría concreta pero no funciona.
He cambiado los apostrofes ( ‘ ) por comillas ( » ) y ahora sí que cambia el texto del botón, pero solo lo que pongo en ( default; ) es decir, lo cambia en toda la web, incluido en las categorías que se supone que tiene que ser diferente.
¿Sabéis decirme qué puede estar fallando?
Excelente como siempre. Años aprendiendo a tu lado.
Por otro lado. Para centrar el boton como podria hacer?
Eso dependerá de la clase CSS de tu tema, añadiendo la alineación centrada del botón mediante CSS
Claro mi theme es astra con woocommerce. Plantilla organic. Estoy probando con css pero no doy en la tecla.
Mil gracias, funciona de maravilla y a la primera.