¿Usáis Prestashop 1.6.X y, de repente, obtenéis un Fatal error al actualizar las preferencias o alguna configuración del panel de administración? ¿Antes no os pasaba y no habéis cambiado nada? Probablemente se deba a que se ha actualizado la versión PHP del servidor a PHP 7.x y algunas librerías de Prestashop 1.6 no están preparadas para ello.

El error podría ser algo similar a esto:

PHP Fatal error
Uncaught Error: Access to undeclared static property: Validate::$fields

o a esto

PHP Fatal error
Uncaught Error: Access to undeclared static property: Validate::$values

¿Soluciones?

1.- Bajar o pedir que os bajen la versión de PHP a  PHP5.6

 

2.- Tocar un poquito de código para actualizar la librería que nos esté dando problemas. Deberemos leer el mensaje de error e abrir mediante FTP el primer archivo que se nos indica que está dando el error. Iremos a la línea concreta en la que se dice que está el error.

En el primer ejemplo que os poníamos, nosotros tuvimos que sustituir  en un archivo PHP del editor de preferencias de la plantilla este código:

if (!Validate::$field['validation']($value))

por este otro, añadiendo las llaves:

if (!Validate::{$field['validation']}($value))

 

Y en el segundo ejemplo, tuvimos que sustituir en el archivo /classes/controller/AdminController.php este código
Validate::$values['property']

por este otro, añadiendo las llaves también:

Validate::{$values['property']}

 

3.- Actualizar Prestashop a la versión 1.7, pero esto llevará mucho trabajo y puede que algún que otro quebradero de cabeza porque el cambio de Prestashop 1.6 a 1.7 es un cambio muy fuerte y, probablemente, tendréis que actualizar o cambiar la plantilla y varios plugins. Eso sí, lo ideal es mantener actualizada vuestra tienda online para garantizar la seguridad y alargar su vida útil.