This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

This topic contains 22 replies, has 2 voices.

Last updated by Bernat 1 year ago.

Assigned support staff: Diego Pereira.

Author Posts
September 18, 2018 at 4:49 pm

Bernat

Hola, estoy usando ACF para Woocommerce para mostrar campos adicionales en producto.
La web tiene 5 idiomas.
Utilizo el sistema para traducir clásico (desde producto cambio a idioma y me abre un duplicado del producto idéntico, así le es más fácil a la persona que gestiona la web, que no desde Woocommerce Multilingual.
Desde ACF he hecho las traducciones de los grupos y fields en los cinco idiomas. Algunos son campos de texto y otros checkboxs.

Para mostrar esto en la parte pública utilizo este código para los campos de texto para que no muestre nada en caso de que no se escriba nada desde el admin, y si se escribe algo se muestra el nombre del label y el valor introducido:

$field_name = "tipus_propietat";
$field = get_field_object($field_name);
if(!empty($field['label']) && !empty($field['value'])){
	echo "<li>" . $field['label'] . ": <b>" . $field['value'] . "</b>" . "</li>";
}

esto lo pongo tantas veces como campos de texto tengo.

El problema es que al cambiar de idioma, si bien el valor si que lo muestra traducido, el label no, salen algunos en un idioma, otros en otro…

El segundi problema que tengo es que para los checkboxes, utilizo este codigo para cada uno de los valores:

if( $equipament && in_array('Ascensor', $equipament) ){
	echo "<li>Ascensor</li>";
}

y hay muchos, y los tengo que poner por cada idioma, lo que multiplica x5 cada uno… total que tengo unas 1.100 líneas de código en el functions.php, y parece que este es el motivo por el cual el servidor últimamente está cayendo.
Se puede hacer más simplificado para que no haya tanto código?

gracias!

September 19, 2018 at 5:33 pm #2749645

Diego Pereira
Supporter

Languages: English (English ) Spanish (Español ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Hola @Bernat ¡Bienvenido al foro de soporte de WPML!

Esta es nuestra guía de cómo utilizar el ACF junto con el WPML: https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/

Tal vez sea algo relacionado con su Query. Para mostrar las publicaciones en el idioma actual, WPML aplica filtros a las consultas de WordPress, y este es el punto importante aquí, solo si la consulta de WordPress permite la aplicación de filtros.

Una consulta de WordPres permitirá que los complementos como WPML apliquen filtros si tiene el conjunto de parámetros 'suppress_filters' => false.

Estos enlaces pueden ser útiles:
- http://codex.wordpress.org/Function_Reference/query_posts
- http://codex.wordpress.org/Function_Reference/query_posts#Secondary_Loops

Esta es la lista de hooks / filters disponibles por WPML:
- https://wpml.org/documentation/support/wpml-coding-api/wpml-hooks-reference/
- https://wpml.org/documentation/support/wpml-coding-api/

Si es util, también es posible transformar las cadenas en strings traducibles (gettext) y traducciones por el String Translator. Por ejemplo,

if( $equipament && in_array('Ascensor', $equipament) ){
    echo "<li>' .__( 'Ascensor', 'my-text-domain' ); .'</li>";
}

Ref: https://codex.wordpress.org/I18n_for_WordPress_Developers

Saludos,
Diego

September 19, 2018 at 6:41 pm #2749790

Bernat

Hola,
muchas gracias por toda la información.

Lo he estado revisando y provando pero sin éxito.
Si te parece bien, me gustaría que pudieras entrar a ver cómo está, para poder determinar cual sería la forma más sencilla de actuar ya que en estos momentos esta parte de la web referente a ACF+WPML lo tengo al 98% terminado a excepción de este punto.

Puedo darte acceso para que me digas cual és la forma más fácil de resolver el tema de que muestre correctamente los labels en los idiomas?

muchas gracias!

September 20, 2018 at 12:48 pm #2752174

Diego Pereira
Supporter

Languages: English (English ) Spanish (Español ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Hola Bernat,

Como este es un código personalizado, esto escapa de nuestro ámbito de soporte. Usted puede ver nuestra política de soporte aquí: https://wpml.org/purchase/support-policy/

En este caso yo recomiendo ponerse en contacto con nuestros contratistas experimentados: https://wpml.org/contractors/

Saludos,
Diego

September 20, 2018 at 6:19 pm #2753001

Bernat

El código que uso es el mismo que el de la documentación oficial de ACF: hidden link , al que le añado unas simpes etiquetas li y b para darle un poco de formato, y ya está.
Igualmente he puesto este mismo código del link oficial de ACF, y pasa exactamente lo mismo.

$field_name = "text_field";
$field = get_field_object($field_name);

echo $field['label'] . ': ' . $field['value'];

Por lo tando no es ningún código personalizado,
Esto indica claramente que algo pasa con WPML,

muchas gracias

September 20, 2018 at 9:42 pm #2753352

Diego Pereira
Supporter

Languages: English (English ) Spanish (Español ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Hola,

Entiendo, pero hay otros factores que se personalizan (como el loop de WordPress, queries, etc). Esto es sólo un fragmento del código entero. Lo más importante es el loop. Es él que filtra la información que se debe mostrar.

Usted podría enviarme el código completo de la página (con el loop de WordPress)? Puedo mostrarlo a los desarrolladores para ver si tienen alguna sugerencia.

Otra opción es enviar el código completo para el soporte del ACF y explicar el problema, tal vez ellos te puedan recomendar algo también.

Saludos,
Diego

September 21, 2018 at 6:08 am #2754071

Bernat

Claro sin probelmas, dime que archivos quieres y cómo te los mando.

Permiteme que igualmente insista, en que no me he salido de lo estandar en nada…:
- Utilizo plantilla Storefront
- He instalado ACF y WPML
- He creado los grupos y fields tal y como se indica en la documentación de WPML
- He hecho que esto se muestre en la plantilla tal y como se indica en la documentación de ACF, con la opción más básica

Es por eso que debería haber funcionado a la primera.

Por otro lado, ACF está funcionando perfectamente, es WPML que no funciona bien, incluso cuando está configurado tal como la documentación.

Sigo pensando que creo que es algun ajuste que no está bien, y creo más interesante antes de lo que propones, entrar a echar un vistazo que realmente esté correctamente,

Cómo lo ves?
Mil gracias

September 21, 2018 at 7:33 pm #2756411

Diego Pereira
Supporter

Languages: English (English ) Spanish (Español ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Hola,

Por favor, envíenos:
- El enlace de la página con el problema
- Una screenshot de las strings con el problema (front-end y back-end)
- El código completo del template php que utiliza esta página (e.g. page.php). Usted puede utilizar pastebin para enviarnos el código: https://pastebin.com/

Voy a analizar el código y también comprobar con nuestros desarrolladores.

Un saludo cordial,
Diego

September 24, 2018 at 6:37 am #2759456

Bernat

Porfavor habilitame campos ocultos y poder subir archivos para facilitarte la infromaicón que me pides,
muchas gracias Diego

September 24, 2018 at 9:17 am #2759961

Bernat

Actualizo: he intentado cambiar de theme a Twenty Fifteen, he desactivado todos los plugins excepto los de WPML, Woocommerce, WooCommerce Multilingual, Advanced Custom Fields y Advanced Custom Fields Multilingual, he copiado el código de la documentación de ACF:

$field_name = "text_field";
$field = get_field_object($field_name);
 
echo $field['label'] . ': ' . $field['value'];

en el functions del theme por defecto y sigue igual, algunos fields los muestra en un idioma y otros en otro.
Por ejemplo el field "tipus_propietat" lo mustra en catalan, mientras que el "ubicacio" en francés

gracias

September 24, 2018 at 5:05 pm #2761407

Diego Pereira
Supporter

Languages: English (English ) Spanish (Español ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Hola,

He habilitado el campo privado. Sería bueno si pudiera enviar también el enlace de la página con el problema y las credenciales de acceso.

Importante: Realice una copia de seguridad completa del sitio web antes.

Saludos,
Diego

September 25, 2018 at 6:42 am
September 25, 2018 at 4:24 pm #2764765

Diego Pereira
Supporter

Languages: English (English ) Spanish (Español ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Gracias, pero la contraseña parece ser incorrecta (ver screenshot). Usted podría modificar la contraseña y enviarnos de nuevo?

Por favor, instale también el plugin Duplicator en el sitio web. Será útil si necesitamos duplicar el sitio temporalmente para realizar pruebas.

Saludos,
Diego

September 25, 2018 at 4:39 pm
September 25, 2018 at 6:53 pm #2765044

Diego Pereira
Supporter

Languages: English (English ) Spanish (Español ) Portuguese (Brazil) (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Hola Bernat,

Gracias, las credenciales funcionaron.

He hecho algunas pruebas, pero no he podido encontrar la causa. Estoy enviando su código a nuestros desarrolladores para analizar. Te envío una respuesta en breve.

Saludos,
Diego