No puedo cambiar una etiqueta en WooCommerce con el filtro normal
// Enganchar el filtro
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
// Nuestra función enganchada - $fields se pasa a través del filtro!
function custom_override_checkout_fields( $fields ) {
$fields['order']['order_comments']['placeholder'] = 'Requisitos especiales de entrega';
$fields['billing']['billing_company']['label'] = 'Nombre de empresa (si aplica)';
$fields['shipping']['shipping_company']['label'] = 'Nombre de empresa (si aplica)';
$fields['billing']['billing_address_2']['placeholder'] = 'Número/ nombre de casa';
$fields['shipping']['shipping_address_2']['placeholder'] = 'Número/ nombre de casa';
$fields['billing']['billing_state']['required'] = true;
$fields['billing']['billing_state']['label'] = 'Condado <abbr class="required" title="requerido">*</abbr>';
return $fields;
}
He usado este código para cambiar algunos campos del formulario de pago de WooCommerce.
Por alguna razón inexplicable, la etiqueta para el estado/provincia de facturación se niega a cambiar. Aunque la etiqueta para la compañía de facturación cambió exitosamente, la etiqueta para el estado no lo hace. Se ha establecido correctamente como requerido pero no puedo cambiar la etiqueta.
¿Alguien sabe qué estoy haciendo mal o si esto es un error?
Debes usar el hook woocommerce_default_address_fields
:
add_filter( 'woocommerce_default_address_fields' , 'wpse_120741_wc_def_state_label' );
function wpse_120741_wc_def_state_label( $address_fields ) {
$address_fields['state']['label'] = 'Condado';
return $address_fields;
}
Esto (y más) se describe en la documentación de WooCommerce: Personalización de campos de checkout usando acciones y filtros, así que lee bien la documentación la próxima vez... ;)
Edición:
El código anterior no funciona en todos los casos, porque al seleccionar el país el campo de estado del formulario de checkout se actualiza mediante javascript. Para que funcione es necesario agregar el nombre deseado para esos casos como traducción, usando el hook woocommerce_get_country_locale
así:
add_filter('woocommerce_get_country_locale', 'wpse_120741_wc_change_state_label_locale');
function wpse_120741_wc_change_state_label_locale($locale){
// descomenta /** así /**/ para mostrar los locales
/**
echo '<pre>';
print_r($locale);
echo '</pre>';
/**/
$locale['GB']['state']['label'] = __('prueba', 'woocommerce');
$locale['US']['state']['label'] = __('cualquier cosa', 'woocommerce');
return $locale;
}
El hook se encuentra en el archivo class-wc-countries.php
en la función get_country_locale()
.

Probablemente sea útil señalar que la llamada ajax para recargar la sección del formulario de pago es lo que sobrescribe las etiquetas de los campos del formulario que originalmente estaban correctamente sobrescritas, con valores que no están sobrescritos. Por qué no usarían el mismo hook de alguna manera o forma, es algo que no logro entender.

Sé que esto fue hace algún tiempo, pero me gustaría añadir un poco a este hilo, aunque solo sea para ahorrar a otros la misma frustración que experimenté.
Hay algunos campos en la página de checkout que simplemente no cambiarán, independientemente del filtro que uses. Estos campos se deben al archivo checkout.js
. Este archivo carga información de localización desde la configuración regional actual y restablece las etiquetas y los placeholders de esos campos. Esto fue particularmente frustrante al intentar cambiar el placeholder "Dirección" por "Apartado postal/Dirección".
Lo que se necesita hacer para cambiar estos campos es establecer una configuración regional en tu archivo wp_config.php
, algo como:
define('WPLANG', 'en_GB');
Luego descarga el plugin "Codestyling Localisation".
Ve a Herramientas->Localización, desplázate hacia abajo hasta WooCommerce y vuelve a escanear tu archivo de idioma, en este caso sería el archivo de inglés/Reino Unido.
Después de que haya escaneado, haz clic en editar y busca tu término, en este caso "Dirección" y añade tu traducción, en mi caso fue "Apartado postal/Dirección".
Haz clic en el botón "Generar archivo MO" en la parte superior y listo. Instrucciones completas sobre cómo hacer esto en:
http://docs.woothemes.com/document/woocommerce-localization/
