Saltar al contenido Saltar a la barra lateral

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 los foros 6 días a la semana, 22 horas por día.

Etiquetado: 

Este tema contiene 8 respuestas, tiene 0 voices.

Última actualización por David Santás Álvarez hace 1 semana, 5 días.

Asistido por: Otto.

Autor Publicaciones
octubre 31, 2025 a las 12:03 pm #17535719

David Santás Álvarez

Antecedentes del problema:
Estoy intentando añadir un nuevo idioma personalizado Español de México. <code><img src="enlace oculto"></code>

Síntomas:
Recibí un error fatal: 'Fatal error: Uncaught Error: Cannot use object of type stdClass as array in /var/www/vhosts/rloadstudio.com/test.rloadstudio.com/wp-content/plugins/sitepress-multilingual-cms/classes/localization/class-wpml-download-localization.php:136'.

Preguntas:
¿Por qué ocurre el error fatal al intentar añadir un nuevo idioma personalizado?
¿Cómo puedo solucionar el error relacionado con 'stdClass' al añadir un idioma?

octubre 31, 2025 a las 2:20 pm #17536131

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

¿Para investigar mejor el problema, ¿puedes proporcionarme acceso temporal a tu sitio?
**Importante:**
- **Haz un backup** de tu sitio antes de compartir los datos.
- Si no ves un formulario privado para ingresar las credenciales, **no las publiques** en el foro.

¿Si fuera necesario, podría replicar tu sitio localmente instalando un plugin (Duplicator o WP All in One Migration)? Una vez resuelto el problema, borraré la copia.

Saludos cordiales,
Otto

noviembre 3, 2025 a las 9:12 pm #17543478

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Gracias.

He intentado hacer una copia del sitio para probar localmente, pero el proceso falla (incluso agregando la key de Duplicator Pro).

Pero tu hipótesis es muy plausible. El mapping puede estar disparando la descarga/lectura de paquetes de traducción y en esa ejecución el código espera un array pero recibe un objeto (stdClass), lo que coincide con la traza.

Mitigar la descarga automática durante el mapeo puede desbloquear el flujo; después puedes reactivar las descargas y actualizar las traducciones manualmente.

Te sugiero que pruebes lo siguiente:

* Haz un **backup completo** (archivos + base de datos).
* **Desactiva temporalmente** la descarga automática de traducciones:
* Crea un **mu-plugin** (por ejemplo, `wp-content/mu-plugins/disable-auto-translation.php`) con este contenido:

    <?php
    /**
     * Plugin MU: Desactiva descargas automáticas de traducciones
     */
    add_filter('auto_update_translation', '__return_false');
    

* Ve a **WPML → Languages → Edit Languages** y **crea “Español (México)” (es-MX)** **sin** mapping; guarda.
* Vuelve a **WPML → Languages (Edit Languages)** y **asigna ahora el mapping** a **Spanish (Mexico)**; guarda.
* Entra a un par de páginas del front para comprobar que **no hay error** y que el idioma funciona.
* **Elimina** el mu-plugin (o comenta la línea del filtro) para **reactivar** las descargas automáticas.
* Ve a **Escritorio → Actualizaciones** y pulsa **“Actualizar traducciones”** para traer los paquetes de idioma ya con el mapping correcto.

¿Si esto no funciona, podrías facilitarme una copia del sitio para debuggearlo localmente?

Habilito una respuesta privada para que compartas un link de descarga si fueran necesario.

Saludos cordiales,
Otto

noviembre 5, 2025 a las 1:45 pm #17550511

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Gracias.

He instalado el sitio localmente y he podido reproducir el problema.

Luego desactivé todos los plugins excepto WPML y el problema desapareció.

¿Podrías confirmarlo?
**Antes de continuar, haz un backup completo y confiable.**
1. Desactiva todos los plugins excepto WPML y sus complementos.
2. Cambia a un tema por defecto de WordPress (por ejemplo, Twenty Twenty-Five).
3. Si el problema desaparece, reactiva los plugins uno por uno hasta identificar cuál causa el conflicto.

Saludos cordiales,
Otto

noviembre 5, 2025 a las 4:31 pm #17551253

David Santás Álvarez

Gracias Otto, efectivamente he detectado que el problema ocurre al activar Duplicator. Si desactivo ese plugin el problema desaparece. Me gustaría entender por qué ocurre esto, ya que lo utilizamos de manera intensiva para hacer copias de seguridad.
Un saludo

noviembre 5, 2025 a las 9:05 pm #17551766

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Pero si no me equivoco, si desactivas Duplicator, haces el mapeo y lo vuelves a activar funciona correctamente, ¿no? ¿Con qué versión tienes el problema, con la gratuita o PRO? ¿Si activas la licencia el problema se soluciona?

Saludos cordiales,
Otto

noviembre 6, 2025 a las 7:36 am #17552288

David Santás Álvarez

Con la licencia de Duplicator ya activa el plugin actualizado el error sigue ocurriendo. Definitivamente es cuando activo Duplicator Pro. El mapeo de idiomas está desactivado.

Captura de pantalla 2025-11-06 a las 8.35.42.png
noviembre 6, 2025 a las 2:19 pm #17554454

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

He creado un sitio de pruebas en el que he reproducido el problema, puedes acceder siguiendo este enlace:
enlace oculto

En este sitio, el workaround funciona:
- Desactivar Duplicator PRO
- Realizar el mapeo
- Reactivar Duplicator PRO

¿Podrías mostrarme en el sitio de pruebas dónde falla el workaround?

Saludos cordiales,
Otto

noviembre 7, 2025 a las 10:08 am #17556613

David Santás Álvarez

Hola Otto, efectivamente el workaround funciona:
-Desactivo duplicator pro
-Creo y mapeo el idioma correctamente sin errores
-Vuelvo a activar Duplicator Pro

noviembre 7, 2025 a las 2:18 pm #17557561

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

El problema es de Duplicator PRO.

Según la documentación de WordPress, el filtro translations_api debe devolver:
false|array (o WP_Error en caso de error) o un array con la estructura ['translations' => [...]]

Duplicator PRO devuelve tipos inconsistentes.

Puedes corregirlo de la siguiente manera:
En el archivo wp-content/plugins/duplicator-pro/src/Utils/Translations.php

reemplaza la línea 88:

return $this->getTranslations($args['slug'], $this->apiUrl);

por:

                    $translations = $this->getTranslations($args['slug'], $this->apiUrl);
                    // Ensure we return an array, not an object (WordPress expects array)
                    if (is_object($translations) && isset($translations->{ $args['slug'] })) {
                        return $translations->{ $args['slug'] };
                    }
                    return is_array($translations) ? $translations : [];

Lo he probado y en mi caso funciona.

Para una solución definitiva te sugiero que reportes el problema en el soporte de Duplicator Pro.

Saludos cordiales,
Otto

noviembre 11, 2025 a las 2:47 pm #17566911

David Santás Álvarez

Gracias por tu ayuda Otto, así lo haré.
Un saludo