Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.

Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en el foro 6 días a la semana, durante 22 horas por día.

Hoy no hay asistentes de soporte disponibles en el foro Spanish. Siéntase libre de enviar sus tiques y les daremos trámite tan pronto como estemos disponibles en línea. Gracias por su comprensión.

This thread is resolved. Here is a description of the problem and solution.

El problema:
Después de la actualización WPML 3.6.1 se me presenta el siguiente error:

Warning: Invalid argument supplied for foreach() in xxx/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-templates.php on line 223

La solución:
- Actualiza à WPML 3.6.2.

Documentación:
https://wpml.org/version/wpml-3-6-2/

This topic contains 11 respuestas, has 3 mensajes.

Last updated by Andrés hace 2 años, 2 meses.

Assigned support staff: Andrés.

Autor Publicaciones
noviembre 29, 2016 a las 12:06 pm #1146408

pmcruzm

Después de actualizar el plugin WPML me ha aparecido los siguientes mensajes en el front:

Notice: Trying to get property of non-object in /var/www/vhosts/arylex.eu/httpdocs/wp-includes/link-template.php on line 49 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/arylex.eu/httpdocs/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-templates.php on line 223 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/arylex.eu/httpdocs/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-templates.php on line 223 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/arylex.eu/httpdocs/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-templates.php on line 223 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/arylex.eu/httpdocs/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-templates.php on line 223

noviembre 29, 2016 a las 12:26 pm #1146441

Andrés
Supporter

Languages: Inglés (English ) Español (Español ) Francés (Français )

Timezone: Europe/Paris (GMT+01:00)

Hola,

Bienvenido al soporte de WPML.

1. El error que se presenta está asociadoa tu selector de idiomas, ¿me podrías decir que funcionalidad de selector estás utilizando? ¿Una nativa de WPML o tal vez una de tu tema?

2. Para poderte ayudar más rápidamente he activado la casilla para enviar la información de debug de WPML en este ticket. Por favor, lee el siguiente artículo si tienes dudas de como enviarnos esta información:
https://wpml.org/es/faq/como-proporcionar-informacion-de-depuracion-para-obtener-soporte-mas-rapidamente/

En el caso que no puedas acceder a esta información, podrías proveerme la información de tu configuración WPML, es decir, plugins y versiones instaladas?

Un saludo,
Andrés

noviembre 29, 2016 a las 12:37 pm #1146445

pmcruzm

Buenas,

De momento para ocultar el mensaje he puesto en el wp-config.php la siguiente sentencia

define('WP_DEBUG', false);

Por si te sirve de ayuda, el selector de idiomas que utilizo es personalizado y el código es como te muestro a continuación:

<li class="language"><a href="#"><?php echo ICL_LANGUAGE_NAME;?></a>
                        <?php
                        $languages = icl_get_languages('skip_missing=0&orderby=code');
                        if(!empty($languages)){
                            echo '<ul class="hidden">';
                            foreach($languages as $l){
                                 if(ICL_LANGUAGE_NAME!=$l['native_name']){
									 echo '<li>';
                                     echo '<a class="exclude-link" href="'.$l['url'].'">';
									 echo icl_disp_language($l['native_name']);
                                     echo '</a>';
									 echo '</li>';
                                }
                            }
                            echo '</ul>';
                        }
						?>
                    </li>

Saludos.

noviembre 29, 2016 a las 1:06 pm #1146469

Andrés
Supporter

Languages: Inglés (English ) Español (Español ) Francés (Français )

Timezone: Europe/Paris (GMT+01:00)

En tu código, veo que utilizas una función que es obsoleta, icl_disp_language. Sin embargo, he utilizado el mismo código en mi instalación y no muestra errores. Así que puede estar asociado a algo específico de tu instalación.

¿Me podrías dar las credenciales de tu sitio web de prueba, de esta manera podemos dar un vistazo a tus ajustes, así como los pasos necesarios para reproducir este comportamiento?

Para esto, debes poder ver una forma protegida en la parte inferior de este tópico. (Te pide hacer un backup y un + Aviso legal). Una instalación de test es preferible y nos haría mucho más fácil hacer una evaluación. En cuanto tenga más información te lo haré saber

Importante: Haz un backup completo de tu sitio. Puedes usar un plugin como Duplicator para este propósito. Mira en: http://wordpress.org/plugins/duplicator/

Si no ves este formulario para completar los campos confidenciales NO los publiques, ya que serán visibles en el foro:
hidden link

Privacidad y seguridad al proporcionar información de Debug para soporte:
https://wpml.org/purchase/support-policy/privacy-and-security-when-providing-debug-information-for-support/

noviembre 30, 2016 a las 9:33 am #1147290

Andrés
Supporter

Languages: Inglés (English ) Español (Español ) Francés (Français )

Timezone: Europe/Paris (GMT+01:00)

Hola,

Acabamos de publicar una nueva versión WPML 3.6.1 que corrige algunas bugs relacionados al selector de idiomas. ¿Podrías actualizar tu paquete y verificar si el problema persiste?

Saludos,
Andrés

noviembre 30, 2016 a las 10:22 am #1147354

pmcruzm

Buenas,

He actualizado a WPML 3.6.1 y en el archivo wp-config.php he puesto "define('WP_DEBUG', true);", pero me vuelve a aparecer el mensaje. Os adjunto una imagen.

Saludos.

noviembre 30, 2016 a las 12:06 pm #1147527

Andrés
Supporter

Languages: Inglés (English ) Español (Español ) Francés (Français )

Timezone: Europe/Paris (GMT+01:00)

Lamentablemente no puedo reproducir este error localmente. Al parecer está ligado a tu configuración de servidor que algunas veces no puede distinguir entre una búsqueda vacía y un error.
hidden link

¿Podrías actualizar tus versiones de PHP y MySQL?
Tus versiones actuales son:
PHPVersion 5.3.3
MySQLVersion 5.1.73

Espero tus comentarios,
Andrés

diciembre 5, 2016 a las 3:40 pm #1151725

Andrés
Supporter

Languages: Inglés (English ) Español (Español ) Francés (Français )

Timezone: Europe/Paris (GMT+01:00)

Hola,

Hemos preparado una errata para solucionar este problema. En ella se explica lo siguiente:

1. Busca el archivo: /sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-templates.php.
2. En la línea 222, cambia:

if ( count( glob( $search_path ) ) > 0 ) {

Por:

if ( glob( $search_path ) ) {

Erratum:
https://wpml.org/errata/fatal-error-trying-get-property-non-object-class-wpml-ls-templates-php/

¿Soluciona esto tu problema?

diciembre 12, 2016 a las 3:16 pm #1157893

pmcruzm

Buenas,

Te confirmo que después de realizar el cambio en el archivo que me has indicado ya no me aparecen los mensajes de error.

Saludos.

diciembre 12, 2016 a las 3:21 pm #1157900

Andrés
Supporter

Languages: Inglés (English ) Español (Español ) Francés (Français )

Timezone: Europe/Paris (GMT+01:00)

Super!
Que tengas un buen día,
Andrés

octubre 9, 2017 a las 11:47 pm #1396014

danielM-14

Me aparecen estos 2 warnings a ver la web en inglés. ¿Cómo los quito?

Warning: explode() expects parameter 2 to be string, array given in /home/usrsirocokitesur/public_html/wp-content/plugins/sitepress-multilingual-cms/sitepress.class.php on line 6270

Warning: Invalid argument supplied for foreach() in /home/usrsirocokitesur/public_html/wp-content/plugins/sitepress-multilingual-cms/sitepress.class.php on line 6272

Mi web: hidden link

Me urge.
Gracias.

octubre 10, 2017 a las 5:16 am #1396135

Andrés
Supporter

Languages: Inglés (English ) Español (Español ) Francés (Français )

Timezone: Europe/Paris (GMT+01:00)

Hola @danielm-14,

Como este ticket se encuentra cerrado debo solicitarte que abras uno nuevo, así podremos concentrarnos en tu caso.

Saludos