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.

Our next available supporter will start replying to tickets in about 4.15 hours from now. Thank you for your understanding.

This topic contains 4 respuestas, has 2 mensajes.

Last updated by Yvette hace 2 meses, 4 semanas.

Assigned support staff: Yvette.

Autor Mensajes
julio 11, 2019 a las 5:23 pm

carlosG-19

Buenas tardes, abrí hace tiempo un ticket con el mismo problema pero no fue resuelto. Estamos a punto de publicar el site en producción y quiero retomarlo a ver si podemos solucionarlo. Os explico:

Tenemos un formulario de búsqueda que se alimenta de varios custom fields de ACF. En concreto el que nos está dando problemas es el Property Type, por algún motivo, el desplegable muestra siempre los elementos de este campo en el idioma Español.

Este problema ha surgido tras actualizar el entorno a las últimas versiones de WordPress, WPML y ACF.

Actualmente disponemos de dos entornos, uno sin actualizar, donde está funcionando correctamente y un segundo actualizado donde ha dejado de funcionar. Tengo que hacer hincapié en que en el back-end todo parece funcionar correctamente, sólo detectamos el problema en el formulario de búsqueda del template. Así se encuentran ambos entornos:

OK -> hidden link
Wordpress 4.9.10
ACF 4.4.12
WPML 4.1.3

KO -> hidden link
Wordpress 5.2.2
ACF 5.8.1
WPML 4.2.7.1

Espero que podáis echarnos una mano con esta incidencia, llevamos tiempo intentando solucionarla sin éxito.

Un saludo.

julio 11, 2019 a las 5:26 pm #4192361

carlosG-19

Olvidé adjuntar el código que utilizamos en el front para ese campo en concreto:

<div class="form-group buscador promo_type_selector">

											<div class="col-md-12">

												<select placeholder="<?php _e('Property type', 'taylor') ?>" name="type" class="form-control" id="promo_type_selector">

													<option value=""><?php _e('Property type', 'taylor') ?></option>

													<?php

													$tipo_de_vivienda = get_field_object('field_53310f477f2b3');

													if($tipo_de_vivienda):

														foreach($tipo_de_vivienda['choices'] as $key => $choice):

															echo '<option value="'.$key.'" '.( ($_REQUEST['type'] == $key) ? 'selected' : '').'>'.$choice.'</option>';

														endforeach;

													endif;

													?>

												</select>

											</div>

										</div>
julio 12, 2019 a las 7:17 am #4195869

Yvette
Supporter

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

Timezone: Europe/Madrid (GMT+02:00)

Bueno,

El uso de los campos no es lo que veo habitualmente. Normalmente, usamos las valores guardados en un post-meta y no las valores de la estructura del campo. Pero puedo ver lo que puede ser el problema y lo que necesitaría para resolverlo.

En tu código, estas usando get_field_object() con el valor "field_53310f477f2b3"

El problema es que este campo existe varias veces y no hay manera de distinguir/deducir el "idioma" - no es suficiente. (ver imagen)

El idioma se puede deducir por medio del "field group". El field group, sí tiene un idioma asociado (ver imágen) en la tabla icl_translations.

Tu código debería añadir los pasos:
- determinar el idioma activo de la sesión
- determinar el "id" del Field group "Promociones" que corresponde al idioma activo
- Con este "id"como el "post-parent", usar el get_field_object() correcto.

En este manera, podrías conseguir el buen versión del acf-field que corresponde al idioma activo.

Espero que me he podido explicar bien lo que succede. Ignoro los diferentes llamadas disponibles en el interface ACF que tienes que usar....pero sí entiendo el porqué siempes estas leyendo la versión ES.

Tal vez, sin otro indicación, la llamada usa el idioma por defecto del sistema.

julio 17, 2019 a las 2:41 pm #4231349

carlosG-19

Muchas gracias por la explicación, está claro. Vamos a ponernos con ello y te confirmo si todo ha ido bien.
Un saludo.

julio 17, 2019 a las 4:50 pm #4232299

Yvette
Supporter

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

Timezone: Europe/Madrid (GMT+02:00)

Muy bien - este mensaje quedará en tu inbox hasta que tu contestas.

El debate ‘[Cerrado] Traducción de los ACF choices’ está cerrado y no admite más respuestas.