La actualización a la nueva rama 3 de Woocommerce
Como es habitual para el core o los plugines de cualquiera de los CMS estándar en el mercado, el archiconocido plugin de comercio electrónico Woocommerce acaba de publicar una actualización que repara bugs, agujeros de seguridad e implementa algunas mejoras. Y toca actualizar.... o no!
Desde el pasado Abril puede que tu instalación de Woocommerce haya empezado a mostrarte los avisos de que debes instalar la nueva versión 3. Curiosamente, esta nueva rama acaba de publicarse tan sólo unas semanas después de la actualización de la rama anterior, desde la versión 2.6 a la última 2.7.
El caso es que, como ya imaginarás por lo del cambio de número... no es una simple actualización, sino una nueva versión en toda regla (una "major update"). Y eso, además de las ventajas habituales... trae una seria y muy molesta desventaja: posiblemente tu template no sirva y hayas de cambiarla.
Si has comprado la template no hace mucho y no la has modificado (o has usado un child theme) es muy posible que el fabricante tenga ya preparada la actualización del theme, y éste se adapte a la nueva versión 3 de Woocommerce. Se lo pides, actualizas tu theme y luego actualizas Woocommerce. Todo perfecto!
Pero en caso contrario, si la plantilla es antigua, si el fabricante no te vá a dar soporte de actualización o si tu template ha sufrido cambios serios... no queda otra: vas a tener que modificar extensamente la template.
Los cambios entre versiones dentro de una misma rama (la 1.x, la 2.x, la 3.x...) suelen ser sencillos y sin traumas. Quizá algún módulo Woocommerce deje de funcionar, o haya ligeros cambios estéticos... pero cuando cambias de rama, cambia también la forma interna de funcionar de la tienda online y, casi con toda seguridad, las templates que el theme tenía para Woocommerce no sirvan para nada.
Hay, básicamente, dos escenarios posibles:
Caso 1. Theme original no preparado para Woocommerce
Tan sólo en el caso de que tu theme NO estuviese preparado para Woocommerce y aún así hayas instalado el plugin (se hace mucho, simplemente la estética de las templates estándar woocommerce no serán fieles al 100% respecto al resto del site, pero la tienda funcionará perfectamente!), solo en ese caso... puede que no haya ningún problema para tí.
En los casos en los que instalas Woocommerce sobre una web que NO tiene subtemplates especiales para woocommerce, seguro que notaste en su momento que la estética de la parte de la tienda online era ligeramente distinta a la de la web que ya tenías en marcha. Seguro que la adaptaste tocando el CSS... o la dejaste tal cual. En este caso estás de enhorabuena: la nueva actualización a la rama 3 sustituirá las plantillas por defecto que ya tenías por las nuevas plantillas... por defecto. No habrá grandes cambios!!!
Caso 2. Theme original preparado para Woocommerce
Sin embargo, el caso más habitual suele ser justo el contrario: que hayas usado una template que sí venía preparada para Woocommerce y eso implica que las plantillas estándar de este plugin de comercio electrónico ya fueron customizadas por el fabricante para que la estética de la parte de la tienda fuera igual a la de la web.
Así, al actualizarse completamente el plugin a la rama 3.x, hay funciones, secciones, código, estilos... que son nuevos y que el theme antiguo no reconocerá. Y lo que vá a pasar será una pesadilla. Así que tómatlo con calma y prepárate para una o dos jornadas de trabajo por delante.
El proceso de actualización de plantillas Woocoomerce 3.x
Según el manual de la aplicación, el método adecuado para la actualización de una "major update" es:
1) Hacer una copia de seguridad (¿de veras que esto hay que repetirlo aún?)
2) Instalar la nueva versión, simplemente actualizando el plugin
3) Ir al menú "woocommerce / estado del sistema" y ahí, comprobar las plantillas que no se han cambiado y que deben ser renovadas manualmente
En realidad, este es el trabajo que tienes por delante. Lo que hace la actualización del plugin es renovar prácticamente todas las plantillas (los archivos PHP) que componen el propio plugin, y lo hace en el directorio "wp-content / plugins", que es donde está el core principal del plugin y el que lo hace funcionar. Hasta ahí, nada nuevo.
Sin embargo... el listado de plantillas que verás en el punto 3 (al final de la página) es el juego de "child templates" que el fabricante hizo en su momento y que sobreescriben a las originales que están en el directorio de plugines. Wordpress funciona así, de forma que si en el directorio de la template hay subtemplates para un plugin, wordpress usará estas en vez de las del propio plugin, porque entiende que han sido personalizadas y son las que hay que usar.
Así que no te quedará más remedio que editar a mano estos archivos php viejos, para adaptarlos a las nuevas funciones y características de Woocommerce 3.
¿Como se actualizan las templates viejas, a mano?
Este es justo el quid de toda la cuestión. En mi modesta experiencia... no suele ser fácil. No hay correspondencia directa entre bloques de código entre las templates viejas y las nuevas... o la coincidencia no es obvia ni exacta. En muchos casos, tendrás que crear también nuevos estilos CSS además de retocar el código php porque los estilos usados los creó el fabricante de la template y les puso el nombre que le pareció mejor usar, sin respetar el original (es normal!)
La recomendación de Wordpress es que guardes las templates viejas (renómbralas como nombretemplate.OLD.php, por ejemplo) y simplemente copia el archivo con el mismo nombre desde la carpeta "wp-content/plugins/woocommerce" hasta la carpeta "wp-content/themes/nombre-de-tu-theme/woocommerce".
Ahora, en este segundo directorio, tendrás las templates viejas (nombretemplate.OLD.php) y las nuevas (nombretemplate.php). Abre ambas en un editor comparador de código como KDiff y vete comparando las viejas con las nuevas para insertar en estas últimas los estilos y código HTML que es diferente (no toques el código PHP de las nuevas, sólo tráete de las viejas los estilos css y el marcado HTML)
¿Fácil? No, es una auténtica pesadilla. Y un método pedestre y con muchos quebraderos de cabeza. Y problemas en el renderizado final que hará que surjan problemas en la tienda.
¿Mi opinión? Hazlo más sencillo: toca sólo el css
Usa directamente las templates nuevas y aprovecha para mejorar su estética mediante la manipulación del CSS, creando nuevos estilos y aprovechando para darle un "lifting" a la tienda online que ya tenías.
Créeme, no es absolutamente necesario que tu nueva tienda Woocommerce 3 sea exactamente igual a tu anterior tienda Woocommerce 2.x.
Pueden ser ligeramente distintas y tus clientes seguirán confiando en tí y en tus productos. Y a cambio, tú habrás invertido apenas unas horas en un proceso que podría haber durado un par de jornadas tranquilamente.
Con la ventaja que, al usar las nuevas templates estándar Woocommerce 3, cuando tengas que cambiar a la rama 4 dentro de unos años... volverás a usar templates estándar y solo tendrás que modificar algo el CSS que ya has creado ahora.
DISCLAIMER: esto que te he comentado NO es la forma estándar de actualización entre ramas. Woocommerce recomienda ir copiando a mano estilos y html desde las templates viejas a las nuevas. Yo no lo hago así, me ahorro horas de trabajo y costes para mis clientes y funciona perfectamente sin errores. Tú decides ;)
¿Y que pasa si no actualizo?
Pues.... en principio, NADA. Tu tienda seguirá funcionando como siempre, tus plugines también, tus ventas seguirán el ritmo habitual.... y nada raro sucederá.
Al menos durante unos cuantos meses. Es cierto que si no actualizas... el riesgo ante un hackeo crece. Pero en muchos casos es un riesgo asumible en comparación con pagar un desarrollador para que haga el trabajo de actualización entre ramas de Woocommece. Y con un buen firewall instalado, los riesgos se minimizan bastante.
Es una decisión que tienes que valorar tú, poniendo pros y contras en la balanza. Quizá (y no es mala idea!) puedas esperar un tiempo e ir pensando en una renovación completa de la tienda, incluyendo estética, logos, banners... y entonces podrás instalar una template completamente nueva de fábrica que ya recoja la versión 3 de Woocommerce. Es algo que he recomendado a algunos clientes a los que ya les venía bien un lifting en su tienda ;)
O también puedes enviarme un Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. y charlamos. Es gratis!! ;)