• Buenos días,

    He encontrado un problema con los meta_box al pasar nuestra web de PHP5.6.40 a la nueva version PHP7.2 que soporta el hosting en el que la tenemos alojada.
    El inconveniente es que al «Actualizar» la publicación, los valores que hemos colocado en el campo personalizado desaparecen. Pero a pesar de ello los valores se actualizan en el Frontend.
    Hemos reproducido todo esto en local para llegar a la conclusión de que el problema esta en la versión de PHP. Con PHP5.6.40 funciona correctamente incluso si actualizamos al nuevo WordPress 5.0.3. Mientras que si en nuestro servidor local ponemos PHP 7.0 o superior las meta_box empiezan a dar este problema.

    A ver si alguien me puede orientar para dar solución a este inconveniente.
    Por si sirve de referencia, el tema que estamos utilizando es este https://bit.ly/2B2JjgM. Las pruebas en local las hemos realizado con XAMPP 5.6.40 y 7.2.14.

    Muchas gracias

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • En primer lugar asegúrate de que tienes instalada la última versión del tema. Según veo la última actualización es del 28 de marzo de 2018, debería ser compatible al menos con 7.0 y 7.1.

    Si aún con la última versión el problema periste, te recomendaría contactar con su autor, que es quien mejor conoce su código.

    Si quieres seguir investigando por tu cuenta, activa WP_DEBUG y WP_DEBUG_LOG y replica el problema.

    Después pon aquí lo que te salga en pantalla o se guarde en wp-conten/debug.log

    Iniciador del debate max2019

    (@max2019)

    Hola Samuel,

    Muchas gracias por la info.

    Tengo instalada la última versión (1.0.7) del tema. Pero aparentemente CMSSuperHeroes que es el creador ha dejado de dar soporte al mismo, o al menos eso parece en su web.

    He probado poniendo las últimas versiones de PHP 7.0 y PHP 7.1, pero no funciona. Si regreso a PHP 5.6.40 vuelve a ir todo perfecto.
    He activado el DEBUG y he encontrado donde se supone que esta el problema, pero mis conocimientos de PHP son muy básicos para solucionarlo.

    El error que aparece en debug.log es el siguiente:

    [28-Jan-2019 14:35:31 UTC] PHP Notice: Array to string conversion in D:\xampp\htdocs\mgbingenieria\wp-content\themes\wp-mgb\inc\metacore\core.options.php on line 52

    Y este el trozo de código donde se supone que esta el problema:

    49 // Render params id
    50 $params[‘id’] = «_cms_».$params[‘id’];
    51 // Get value
    52 if(!empty($wp_sigma_meta->$params[‘id’])){
    53 $params[‘value’] = $wp_sigma_meta->$params[‘id’];
    54 } else {
    55 $params[‘value’] = null;
    56 }
    57
    58 $core_options->metabox($params);

    A ver si a ti se te ocurre como puedo solucionarlo para que funcione con PHP 7.

    Desde ya muchas gracias.
    Un saludo.

    El notice que estás viendo literalmente indica que se ha tratado un dato como string (único valor en texto plano) algo que realmente es un array (una matriz/conjunto de valores).

    En principio con lo que pegas estaría apuntando que esto está ocurriendo con $wp_sigma_meta->$params[‘id’] en la línea 52.

    De entrada las pocas líneas de código que has puesto no dejan ver como se ha construido $wp_sigma_meta que en teoría es un objeto, ni de donde se obtiene $params[‘id’] inicialmente.

    Podrías intentar a poner un print_r() antes de la línea 52 para imprimir el contenido de $wp_sigma_meta->$params[‘id’] a ver qué te encuentras.

    Pero seguro que vas a necesitar indagar más en el código de la plantilla, si el autor ya no da soporte para ella, mi recomendación es que empieces a buscar una plantilla con soporte y un código más actual compatible con PHP 7.x.

    Iniciador del debate max2019

    (@max2019)

    Hola Samuel, nuevamente muchas gracias por la ayuda.

    He probado con el print_r que comentas pero me da un error.
    Te paso el archivo que contiene el código completo a ver si puedes revisarlo y se te ocurre algo.

    Ya nos estamos planteando cambiar de plantilla, pero nos ha costado mucho tiempo llegar a lo que tenemos ahora que me da pereza el cambio.

    Muchas gracias.

    • Esta respuesta fue modificada hace 6 años, 1 mes por max2019.
Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • El debate ‘Fallo Meta Boxes en PHP 7’ está cerrado a nuevas respuestas.