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 1 respuesta, tiene 0 voces.

Última actualización por antonioO-2 hace 1 día, 21 horas.

Asistido por: Otto.

Autor Publicaciones
enero 9, 2026 a las 6:34 pm #17717088

antonioO-2

Tengo un problema al importar mis productos de woocommerce en varios idiomas conectandome a una API.
La importación se realiza correctamente pero al acabar salta un error fatal debido al plugin WPML String Translation. Al desactivarlo, no salta el error.

En otro chat s eme indicó lo siguiente: "Te recomendamos pedir a tu proveedor de hosting que amplíe los permisos de open_basedir para incluir /var/"

Ya lo he hecho (puede verse en la traza de error), pero sigue dando error porque parece que el plugin intenta acceder a la raiz (/)
Adjunto la traza:
{
"status": "Importación finalizada",
"resultados": {
"es": {
"status": "ok"
},
"en": {
"status": "ok"
},
"fr": {
"status": "ok"
},
"de": {
"status": "ok"
}
}
}<br />
<b>Fatal error</b>: Uncaught ErrorException: realpath(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/var/www/vhosts/demosbluefish.es/:/tmp/:/var/) in /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/l10n/class-wp-translation-controller.php: 106
Stack trace:
#0 [internal function
]: {closure
}()
#1 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/l10n/class-wp-translation-controller.php(106): realpath()
#2 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/l10n.php(849): WP_Translation_Controller->load_file()
#3 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-content/plugins/wpml-string-translation/classes/MO/JustInTime/MO.php(100): load_textdomain()
#4 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/collect/src/Illuminate/Support/Collection.php(228): WPML\ST\MO\JustInTime\MO->WPML\ST\MO\JustInTime\{closure
}()
#5 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-content/plugins/wpml-string-translation/classes/MO/JustInTime/MO.php(96): WPML\Collect\Support\Collection->each()
#6 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-content/plugins/wpml-string-translation/classes/MO/JustInTime/MO.php(78): WPML\ST\MO\JustInTime\MO->loadTextDomain()
#7 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-content/plugins/wpml-string-translation/classes/MO/JustInTime/MO.php(50): WPML\ST\MO\JustInTime\MO->load()
#8 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/l10n.php(196): WPML\ST\MO\JustInTime\MO->translate()
#9 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/l10n.php(307): translate()
#10 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-content/plugins/woocommerce/includes/class-wc-install.php(958): __()
#11 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/class-wp-hook.php(341): WC_Install: :cron_schedules()
#12 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/plugin.php(205): WP_Hook->apply_filters()
#13 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/cron.php(1139): apply_filters()
#14 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/cron.php(1037): wp_get_schedules()
#15 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/class-wp-hook.php(341): _wp_cron()
#16 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#17 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/plugin.php(522): WP_Hook->do_action()
#18 /var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/load.php(1308): do_action()
#19 [internal function
]: shutdown_action_hook()
#20 {main
}
thrown in <b>/var/www/vhosts/demosbluefish.es/barrado.demosbluefish.es/wp-includes/l10n/class-wp-translation-controller.php</b> on line <b>106</b><br />

Gracias!

enero 9, 2026 a las 7:21 pm #17717205

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,

Hay varios conflictos reportados con open_basedir. En WPML 4.10 esperamos solucionarlos.

Mientras tanto, en tu caso, hay dos situaciones diferentes.

1.
El error es un ErrorException a partir de un warning de realpath(). En muchos sitios eso NO sería fatal; suele volverse fatal cuando algún código convierte warnings en excepciones durante el request/import.

Revisa en tu importador/API, si usa set_error_handler() o alguna librería que transforme E_WARNING en ErrorException.

Si es así, añade una excepción: ignorar específicamente el warning de realpath(): open_basedir restriction in effect (o, como mínimo, no convertirlo a excepción).

De este modo, el problema real no afectará la importación.

2.
El warning (causa real del problema) se origina en que WPML intenta cargar un archivo de traducción con la ruta / (raíz del sistema), lo cual viola las restricciones de open_basedir de tu servidor.

❌ Por favor, antes que nada: haz un backup de tu sitio ❌

Un posible workaround es agregar una validación en /wp-content/plugins/wpml-string-translation/classes/MO/LoadedMODictionary.php#L61-L64) líneas 62-64:

public function addFile( $domain, $mofile ) {
    if ( ! $mofile || '/' === $mofile ) {
        return; // Rechaza rutas vacías o raíz
    }
    // ...

Esto previene que se agregue la ruta inválida '/' al diccionario, evitando el error fatal cuando WordPress intenta usar realpath('/').

Dime si esto ayuda, por favor.

Saludos cordiales,
Otto

enero 12, 2026 a las 4:27 pm #17722523

antonioO-2

Perfecto Otto!

Cierto, estábamos añadiendo ese warning como un fatal error en el catch.

Gracias por tus indicaciones.

Un saludo!