Vamos a ver como podemos crear una plantilla distinta para una determinada categoría de producto en Woocommerce.
Esto puede ser muy útil, cuando queremos una mayor personalización de nuestra tienda online y mostrar nuestras categorías con un layout o diseño único y que categoría productos tenga su estilo propio y que pueda ayudar a dar mayor personalización a nuestro e-commerce.
Ésto también sirve para personalizar la pagina tienda de woocommerce así como las categorías
Para hacerlo vamos a usar la adaptación de los themes a woocommerce mediante la sobreescritura de las plantillas a través del Theme. Puedes ver la documentación original AQUÍ (versión en inglés).
Lo primero que tenemos que hacer es acceder a la carpeta de nuestro theme vía FTP y crear una carpeta llamada Woocommerce.
Ahora vamos a cambiar la plantilla de nuestras categorías de productos.
Después nos dirigimos a la carpeta de woocommerce y copiamos el archivo taxonomy-product_cat.php y lo pegamos en la carpeta que hemos creado «themes/nuestro_theme/woocommerce».
Ahora viene la parte importante cambiamos el nombre de taxonomy-product_cat.php por taxonomy-product_cat-slug-de-tu-categoría.php. Es decir si la categoría que queremos cambiar el template se llama «productos en oferta» y su slug es «productos-en-oferta» el nombre de nuestro archivo sería taxonomy-product_cat-productos-en-oferta.php.
Ya hemos creado la plantilla, ahora somos libres para modificarla y personalizar aún mas nuestra tienda online.
No dijiste nada
Sobre qué?
Hola Miguel , primero muchas gracias por el aporte, me lo he aprendido.
Ahora bien, a ver si me podrías echar un cable.
Dentro de la categoría específica de «cartuchos de tinta» que tengo en la página he creado un formulario, dentro de este necesitaría enlazar todas las categorías de cartuchos de tinta tan originales como compatibles, es decir varias subcategorias, que si pongo brother> tipo tal> modelo cual me salgan tanto el original como el compatible, en realidad llamo a productos directamente pero entiendo que tengo que enlazar las categorías, me podrías echar un cable?¿ cómo llamo a las categorías subcategorías y productos?¿
el enlace del apartado que te comento > http://rhinformatica.es/categoria-producto/consumibles-impresoras/cartuchos-de-tinta/
muchísimas gracias
un saludo
Hola Laura, No soy un gran programador (vamos que soy malísimo aunque me pelee con el código jeje)…
¿Qué presupuesto tienes? Si tu presupuesto no es demasiado bajo hay un plugin llamado «Gravity Forms» que cuesta 39$/año (no hace falta que renueves la licencia) y que te permitiría programar un formulario condicional y en base a lo que elija tu usuario lo mandas a una categoría o a otra…
además en la plantilla lo puedes insertar como php así que usando lo que te comento en este post y usando gravity forms lo tendrías en un periquete listo.
Es más me has dado una idea para un videotutorial jejej pero quizás para este verano que ahora estoy un poco liado. Pero no me importará echarte una mano con la configuración de Gravity Forms. Ya que lo uso un montón y es una pasada las opciones que ofrece.
Puedes comprarlo aqui: Gravity Forms
Un saludo!
hola miguel una pregunta tengo dos paginas en mi tienda verdad una que se llama damas y otra caballeros y teng
o dos categorías del mismo nombre como hago para enlazar la pagina a la categoría y al darle click solo se muestre los productos de esa categoria
Es muy sencillo en los elementos del menú puedes hacer que en vez de la página sea tu Categoría la que aparezca y cuando hagan clic vaya a la categoría y no a la página.
Buenas Miguel Ángel,
lo primero gracias por el aporte, es justo lo que necesitaba, fenomenal.
mi pregunta es la siguiente: tengo una categoría principal, aquí he realizado el tutorial como indicas y correcto, ahora bien, la categoría principal tiene sub-categorías.
¿como puedo hacer para que se hereden los atributos que he cambiado en la categoría para las sub-categorías?
¿y al producto dependiente de la sub-categoría?
Esto es complicado por que un producto puede pertenecer a varias categorías, así que imagino que no valdría crear una plantilla sino que tendrías que hacer los cambios en CSS también.
Es un poco más lento y menos automatizado pero es la única forma en la que lo he hecho.
Buenas, los cambios son solo en estilos, lo puedes hacer con CSS, pero no de forma automática, sino especificando subcategoría por subcategoría en el css de tu theme, yo lo he hecho varias veces y es sencillo, lo unico que necesitas es el ID de cada categoría. Pero si los cambios son de código a nivel de plantilla, no lo he realizado nunca.
Hola Miguel, gracias por el artículo muy interesante.
Una pregunta, ¿existe la posibilidad de hacer los mismo pero sólo en un producto especifico?
Buenas,
Los productos se trata de Custom Post Types, por lo que no funciona del mismo modo, Los productos suelen tener todos la misma plantilla en Woocommerce. Podrías probar a modificarlo a través del CSS. Mira el artículo de mi blog en el que explico como cambiar el CSS de una página específica.
Saludos Camilo.
Tenes idea si estas modificaciones sobreviven a la actualización de wordpress, WooCommerce o theme
Si, a las actualizaciones de woocommerce y wordpress. Y actualización del theme también, a no ser que en la actualización cambiaran algunas clases, en ese caso tendrías que revisarlo, pero no es lo habitual.
Muchas gracias miguel, me resulto muy util y funciono inmediatamente.
saludos!!
Hola Miguel, hay posibilidades de que cuando cargue un shortcode de una categoria especifica a una pagina que personalice yo, pueda asociar esa categoria a mi pagina? Ya que cuento con Elementor y es mas facil para personalizar. Mi unico problema es que no me muestran los filtros de los productos.
No entiendo muy bien a que te refieres. Pero no obstante no lo se, lo dejo publicado a ver si algún visitante sabría ayudarte. Un saludo!
Buenas tardes otra vez yo, gracias por tomarte el tiempo de responder, mi deseo es poder modificar la plantilla de todas la categorias, por lo que cree la carpeta woocommerce, con los archivos que indicas, pero sin modificar el nombre (para que funcione en todas las categorias) pero no me lo reconoce… tuve el mismo inconveniente con la página de Tienda, en ella fue necesario añadir al funtions.php la siguiente linea
add_action( ‘after_setup_theme’, ‘woocommerce_support’ );
function woocommerce_support() {
add_theme_support( ‘woocommerce’ );
}
Será necesario realizar algo similar para que me reconozca las nuevas plantilas? muchas gracias por tu ayuda
Buenas noches MIguel Angel,
Perdona, pero estoy siguiendo estos pasos y no me deja o no hace nada…
He creado la carpeta de woocommerce y dentro «taxonomy-product_cat-(slug).php» y he creado también «archive-product-(slug).php».
my theme -> woocommerce -> templates -> ambas carpetas dentro.
No sé que me puede faltar…
Muchas gracias!