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.

This topic contains 3 respuestas, has 2 mensajes.

Last updated by xiscob hace 2 años, 1 mes.

Assigned support staff: Otto.

Autor Publicaciones
noviembre 8, 2017 a las 11:40 am

xiscob

Hola,
tenía unas cadenas traducidas al inglés. Concretamente el campo de NIF, el mensaje por defecto dentro del campo y el mensaje de error si no lo ponían. Este código lo puse en el archivo functions.php ya que no viene en el woocommerce.
Me funcionaba hasta hace poco que me di cuenta de que solo se veía la versión español en los dos idiomas..
Me puedes ayudar?

adjunto el código del archivo functions.php

/**
* Añade el campo NIF a la página de checkout de WooCommerce
*/
add_action( 'woocommerce_after_order_notes', 'agrega_mi_campo_personalizado' );

function agrega_mi_campo_personalizado( $checkout ) {

echo '<div id="additional_checkout_field"><h2>' . __('+ Info') . '</h2>';

woocommerce_form_field( 'nif', array(
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'label' => __('NIF-DNI'),
'required' => true,
'placeholder' => __('Nº NIF-DNI'),
), $checkout->get_value( 'nif' ));

echo '</div>';

}
/**
* Comprueba que el campo NIF no esté vacío
*/
add_action('woocommerce_checkout_process', 'comprobar_campo_nif');

function comprobar_campo_nif() {

// Comprueba si se ha introducido un valor y si está vacío se muestra un error.
if ( ! $_POST['nif'] )
wc_add_notice( __( 'NIF-DNI, es obligatorio. Debe de introducir su NIF-DNI para finalizar la compra.' ), 'error' );
}

/**
* Actualiza la información del pedido con el nuevo campo
*/
add_action( 'woocommerce_checkout_update_order_meta', 'actualizar_info_pedido_con_nuevo_campo' );

function actualizar_info_pedido_con_nuevo_campo( $order_id ) {
if ( ! empty( $_POST['nif'] ) ) {
update_post_meta( $order_id, 'NIF', sanitize_text_field( $_POST['nif'] ) );
}
}

/**
* Muestra el valor del nuevo campo NIF en la página de edición del pedido
*/
add_action( 'woocommerce_admin_order_data_after_billing_address', 'mostrar_campo_personalizado_en_admin_pedido', 10, 1 );

function mostrar_campo_personalizado_en_admin_pedido($order){
echo '<p>'.__('NIF').': ' . get_post_meta( $order->id, 'NIF', true ) . '</p>';
}

/**
* Incluye el campo NIF en el email de notificación del cliente
*/

add_filter('woocommerce_email_order_meta_keys', 'muestra_campo_personalizado_email');

function muestra_campo_personalizado_email( $keys ) {
$keys[] = 'NIF';
return $keys;
}

/**
*Incluir NIF en la factura (necesario el plugin WooCommerce PDF Invoices & Packing Slips)
*/

add_filter( 'wpo_wcpdf_billing_address', 'incluir_nif_en_factura' );

function incluir_nif_en_factura( $address ){
global $wpo_wcpdf;

echo $address . '<p>';
$wpo_wcpdf->custom_field( 'NIF', 'NIF: ' );
echo '</p>';
}

noviembre 8, 2017 a las 1:00 pm #1424475

Otto
Supporter

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

Timezone: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Hay algo que no termino de entender.

En el código que has compartido aparece esta cadena:
"NIF-DNI, es un campo requerido. Debe de introducir su NIF DNI para finalizar la compra."

Sin embargo, en WPML > String Translation hay otra, en lugar de requerido dice obligatorio.

Te sugiero que hagas la siguiente prueba:
-Borra las cadenas que están dando problemas en la tabla WPML > String Translation
-Escanea nuevamente el tema:
1. Ve a “WPML -> Localización de temas y plugins”
2. Asegúrate de que “Traducir por medio de WPML.” está marcado
3. En la misma página baja hasta “Cadenas de tema” y haz click en “Analizar el tema para buscar cadenas”
-Vuelve a traducirlas

Quedo a la espera de tus resultados.

Un saludo cordial,

Otto

noviembre 8, 2017 a las 1:20 pm #1424514

xiscob

he probado de borrar, volver a escanear pero nada. sigue igual.

noviembre 8, 2017 a las 1:35 pm #1424540

xiscob

ya está resuelto. El problema es que el idioma de la cadena principal me lo ponia en inglés, yo lo cambiaba a ES y luego no se traducía.
En el functions está en español, ahí lo he puesto es Español y luego lo he traducido en wpml.

gracias !!