Modificar label del formulario de facturación en WooCommerce
A veces, necesitamos modificar los textos de los labels del formulario de facturación de WooCommerce.
En el caso de WooCommerce, la llamada a este formulario se hace desde el siguiente código:
<?php foreach ($checkout->checkout_fields['billing'] as $key => $field) : ?> <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?> <?php endforeach; ?> |
Si te fijas, es un búcle que recorre el array y va mostrando los campos con la función woocommerce_form_field.
En nuestro caso, nos interesa modificar el hook que llama a este array y decirle qué campo queremos modificar.
Para ello, lo que tenemos que hacer es ir a nuestro functions.php (el del tema que tengamos activado) y añadir el filtro que añadirá nuestros cambios:
// Añadimos el filtro al hook add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); |
Como ves, le estamos diciendo que queremos añadir un filtro llamado «custom_override_checkout_fields» al hook que gestiona los campos del checkout.
Ahora, sólo nos falta crear esa función que modifica dichos campos para poder pasarle algo al add_filter:
// Modificamos los campos que queramos - $fields es el array que pasamos a través del filtro. function custom_override_checkout_fields( $fields ) { $fields['billing']['billing_last_name'] = array( 'label' => __('Apellidos', 'woocommerce'), 'required' => true, 'class' => array('form-row-last', 'validate-required', 'woocommerce-invalid', 'woocommerce-invalid-required'), 'clear' => true ); return $fields; } |
En este ejemplo, estamos cambiando el label del campo «Last name» por «Apellidos» y, además, le estamos diciendo qué clases css debe incluir en la llamada. Si te fijas, también podemos decirle si es un campo requerido o no.
Es posible desarrollar dentro del formulario de compra un campo que permita adjuntar un archivo ?
Sí, con ese filtro puedes incluir el tipo de input que quieras.