Actualización php 7.1.33 a 8.0.26
-
Buenas tardes,
Necesito actualizar mi página con un tema hecho a medida por completo. Usa php 7.1.33 y quiero actualizarla a 8.0.26 ¿Cómo puedo ver qué parte del codigo queda obsoleto con alguna herramienta?
Gracias
-
Hola.
Imagino que ya habrás comprobado primero si el tema es compatible o no no con la versión de PHP a la que lo quieres cambiar, ¿verdad? Porque si ya lo es, no necesitarías cambiar nada.
Puedes comprobarlo con el plugin PHP Compatibility Checker (https://wordpress.org/plugins/php-compatibility-checker/)
Si ya lo has hecho y no es compatible, aquí tienes la documentación oficial y las herramientas que se usan los desarrolladores de temas de WordPress para hacer lo que dices: https://make.wordpress.org/themes/2019/04/01/core-php-compatibility-changes-in-wordpress-5-2/
Saludos.
Si no estoy equivocado, el plugin que menciona @teresaezc no sirve para PHP 8.x
En cualquier caso, dos apuntes:
1. Si vas a pasar a la versión 8, es preferible ir directamente a la 8.2
2. Lo ideal sería instalar tu sitio en local o en algún servidor de pruebas. Activar el debug de WordPress y comprobar.
3. Si lo anterior no puede ser, entonces todo dependerá de si tu servidor te permite cambiar «en caliente». Si es así, activas el debug de WordPress, cambias a la 8.2 desde el panel de control del hosting y luego compruebas. Tomas nota de todos los errores que te aparezcan y luego vuelves a la versión de PHP que tuvieras.He instalado el sitio en local con php 7.4.33 y parece que funciona correctamente, excepto algunos arreglos que he tenido que hacerle al tema. El problema bien al querer subir la versión a 8, que salta el siguiente error fatal:
[07-Aug-2023 11:01:30 UTC] PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in C:\xampp\htdocs\update\wp-content\plugins\redsys-recogida-tienda\apiRedsys\json.php on line 156
He contactado con el equipo de soporte de Redsys para saber si es compatible o no con la versión de php (que me extraña que no) y no me aportan solución alguna.
De igual manera, porque he tenido que reinstalar la página varias veces porque al hacer cambios equívocos me aparecía error fatal, ahora al instalar me aparece un errror crítico de wordpress con que hay más de una sesión activa de php y no sé cómo solucionarlo.
El plugin para comprobar la versión compatible de php no funciona correctamente al llegar a un plugin que el anterior desarrollador creó para nosotros y a partir de ahí ya no avanza.
Gracias por vuestras soluciones
- Borra todo e instala desde cero. No te pongas la 8.0 sino la 8.2.x
Hay alguna que otra función que se ha quedado obsoleta de la una a la otra. Ya que haces el esfuerzo de adaptar tu sitio, es preferible ponerte directamente la segunda. - Activa el tema que quieras usar y comprueba errores. Haz la prueba sin instalar ningún plugin.
- Una vez hayas comprobado que el tema funciona perfectamente, pasas a los plugins: activas/comprueba uno a uno.
Hola @cberzosabc,
El problema es el código de la API de Redsys y tu versión de PHP. Si la subes, pueden aumentar más los problemas.
Puedes hacer dos cosas, una es contactar con el desarrollador y decirle que actualice todo, ya que no soporta versiones actuales de
WordPressPHP. Lo segundo es que lo arregles tu.Para arreglarlo, en la línea 156 del archivo json.php que encontrarás en wp-content\plugins\redsys-recogida-tienda\apiRedsys\json.php encontrarás algo que tiene {} por ejemplo
$string = 'Hola mundo'; echo $string{0}; // Esto es lo que se ha desaprobado
Lo que debes hacer, es sustituir lo {} por [] de forma que quede así:
$string = 'Hola mundo; echo $string[0];
Esto es solo un ejemplo. El código que tengas ahí puede ser mucho más complejo, pero la base del problema es el que te he mostrado. Pero si hay un error como este, es muy probablemente que se repita en varios sitios del plugin. El código de este plugin es muy antiguo, o su desarrollador es muy de a antigua escuela, porque este estilo hace muchos años que nadie lo utiliza, pero cuando digo muchos, es muchos, más de 15 años.
Saludos
-
Esta respuesta fue modificada hace 1 año, 6 meses por
Jose Conti. Razón: Había puesto WordPress en vez de PHP
Sí, @almendron, cuando pasas el PHP Compatibility Checker te dice si es compatible hasta la versión 8.0.
(De hecho, lo acabo de comprobar de nuevo por si acaso me había liado. Lo que pasa es que no han actualizado la info en la descripción del plugin.)He probado a activar el tema a un wordpress limpio, pero como fue desarrollado a medida me salta error fatal. ¿Hay alguna herramienta para poder ver el código obsoleto? Disculpad, pero es que soy novata en desarrollo web y no sé por donde empezar
Hola @cberzosabc,
El error que habías comentado es del plugin «redsys-recogida-tienda». ¿Qué error te sale al activar el theme?
La única forma de saber lo que está mal, es mirando en los logs los notice que avisan que en próximas versiones de PHP serán un error. Todo código necesita de un mantenimiento. Lo único que puedes hacer ahora es ir activando, mirar donde salta el error y corregirlo.
Creo que tienes una instalación que fue desarrollada hace mucho tiempo y no ha tenido mantenimiento de código, y parece que tienes muchas cosas que pueden estar mal.
- Borra todo e instala desde cero. No te pongas la 8.0 sino la 8.2.x
- El debate ‘Actualización php 7.1.33 a 8.0.26’ está cerrado a nuevas respuestas.