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: Compatibility
Este tema contiene 4 respuestas, tiene 0 voices.
Última actualización por monicaG-12 hace 2 días, 1 hora.
Asistido por: Otto.
| Autor | Publicaciones |
|---|---|
| noviembre 13, 2025 a las 11:55 am #17574652 | |
|
monicaG-12 |
Antecedentes del problema: Síntomas: Preguntas: |
| noviembre 13, 2025 a las 3:20 pm #17575756 | |
|
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, Veo que en el chat nuestro asistente de IA hizo varias sugerencias. ¿Has podido probarlas? ¿Cómo han resultado cada una de ellas? Saludos cordiales, |
| noviembre 14, 2025 en 11:49 am #17578894 | |
| monicaG-12 |
Si, la mayoría de ellas antes de contactaros ya las probé. Contacto con vosotros para ver si añadiendo alguna pequeña función en functions seria posible traducir la frase: "¡Sí, quiero recibir novedades y restocks! (optional)" del form de checkout ya que imposible añadirla a traducción de cadenas por mis medios. Y lo mismo para los textos de plugin de filtros de barn2, en este caso me salen los títulos en español y los atributos, que son los selects que se filtran salen mezclados tanto ingles como español no se porque. Y por ultimo con el plugin WPC composite products, es un caso extraño, los productos principales (con los que creara la composición estan todos traducidos) y cuando creo una traducción de un producto composite, sale un producto si o uno no, no sale ninguno o sale 1 solo en el selector. y si edito ese selector de la composición y añado manualmente de nuevo los productos no cambia nada, sigue igual. Y si he revisado las cadenas, para este ultimo las cadenas no aplica, he revisado variables, tampoco he encontrado variables asociadas a este punto. Ya me dices gracias. Los hilos nuevos creados por Otto y vinculados a este se encuentran a continuación: https://wpml.org/es/forums/topic/filtros-de-barn2/ https://wpml.org/es/forums/topic/error-al-traducir-composite-products/ |
| noviembre 14, 2025 a las 2:20 pm #17579523 | |
|
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, Muchas gracias. En nuestra experiencia, es mejor tratar un problema por ticket, por lo que en este trataremos el de la cadena "¡Sí, quiero recibir novedades y restocks! (optional)". He creado estos tickets para los otros dos problemas: En todos te pediré acceso. Siento la repetición, pero dado que las sugerencias que ya te han dado no sirvieron, prefiero verlo yo mismo y darte una solución. Ver el sitio es el primer paso en los tres problemas. ¿Para investigar mejor el problema, ¿puedes proporcionarme acceso temporal a tu sitio? ¿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, |
| noviembre 18, 2025 a las 7:15 pm #17589454 | |
|
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, Muchas gracias. Para traducir la cadena "¡Sí, quiero recibir novedades y restocks! (optional)" haz lo siguiente por favor: ❌ Por favor, antes que nada: haz un backup de tu sitio ❌ En el archivo functions.php del child theme agrega el siguiente código. Lo que hace es registrar la cadena y luego utilizar la traducción cuando haga falta. Una vez que lo agregues, visita el sitio y luego en WPML > String Translation va a aparecer la cadena. Tradúcela y verifica si aparece traducida en el front end. Quedo atento a tus resultados. Saludos cordiales,
add_action( 'init', function () {
if ( ! function_exists( 'icl_register_string' ) ) {
return;
}
$settings = get_option( 'sendinblue_woocommerce_user_connection_settings' );
if ( ! $settings ) {
return;
}
$settings = json_decode( $settings, true );
if ( empty( $settings['displayOptInLabel'] ) ) {
return;
}
do_action(
'wpml_register_single_string',
'brevo-woocommerce',
'optin_label',
$settings['displayOptInLabel']
);
} );
add_action( 'init', function () {
// Aseguramos que WooCommerce Blocks y las funciones existen
if ( ! function_exists( 'woocommerce_register_additional_checkout_field' ) ) {
return;
}
// Leer la opción de Brevo
$settings = get_option( 'sendinblue_woocommerce_user_connection_settings' );
if ( ! $settings ) {
return;
}
$settings = json_decode( $settings, true );
if ( empty( $settings['displayOptInLabel'] ) ) {
return;
}
$original_label = $settings['displayOptInLabel'];
// Obtener la traducción desde WPML (dominio/nombre iguales al registro)
$translated_label = apply_filters(
'wpml_translate_single_string',
$original_label,
'brevo-woocommerce',
'optin_label'
);
if ( empty( $translated_label ) ) {
$translated_label = $original_label;
}
// Determinar la localización igual que el plugin
// 1 o 3 -> "contact", 2 -> "order"
$location = 'contact';
if ( ! empty( $settings['displayOptInLocation'] ) ) {
$loc = (int) $settings['displayOptInLocation'];
if ( $loc === 2 ) {
$location = 'order';
} else {
$location = 'contact';
}
}
// ID que usa el plugin de Brevo para el campo de checkout por bloques.
$field_id = 'SendinblueWoocommerce/newsletter_opt_in';
// Si existe la función interna de WooCommerce, eliminamos primero
// el campo original registrado por el plugin y lo volvemos a registrar
// con la etiqueta traducida.
if ( function_exists( '__internal_woocommerce_blocks_deregister_checkout_field' ) ) {
try {
__internal_woocommerce_blocks_deregister_checkout_field( $field_id );
} catch ( Exception $e ) {
// Si falla la des-registración, no interrumpimos la carga.
}
}
// Registrar de nuevo el campo de checkout de bloques
// con el MISMO id pero etiqueta traducida.
woocommerce_register_additional_checkout_field(
array(
'id' => $field_id,
'label' => $translated_label,
'location' => $location,
'required' => false,
'type' => 'checkbox',
)
);
}, 20 );
|
| noviembre 20, 2025 a las 8:42 am #17594528 | |
|
monicaG-12 |
Si, muchas gracias, esta solución me ha funcionado |