Ya hemos visto en otros tutoriales de tema de facturación cómo añadir a la página de finalizar compra el CIF/NIF en España o bien como debe ser esta página.
Cómo tengo muchos lectores chilenos, ellos tienen que poner el campo de RUT, que es el número de identificación allí. Así que si tenéis una tienda online que vende a Chile o estáis haciendo un Ecommerce allí en este tutorial veremos cómo añadirlo con un plugin o con código.
Índice
Con plugin
En este caso instalaremos del repositorio oficial de WordPress el plugin Rut Chileno con Validación para WooCommerce. Este plugin es muy liviano y entre sus funcionalidades te permite:
- Añade el campo en el checkout
- Puedes personalizar que sea obligatorio u opcional
- Se guarda en la base de datos, es decir, sale en las notas del pedido tanto para nosotros como en el correo que le llega al cliente.
- El campo valida la sintaxis del RUT.
Otro plugin que podemos usar que es más general es Checkout Manager for WooCommerce de Quadlayers. Sirve para modificar el Checkout a tu gusto.
En este caso lo uso para hacer el campo de RUT condicional, es decir, que se muestre cuando seleccionan Chile como país. Esto para tiendas online que venden para varios países.
Con código
Si no queremos instalar ningún plugin deberemos añadir este código en el functions.php o bien en el plugin Code Snippets como explico aquí.
/*
* Añadir casilla RUT en el checkout
*/
function woo_custom_field_checkout($checkout) {
echo '<div id="additional_checkout_field">';
woocommerce_form_field( 'rut', array( // Identificador del campo
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'required' => true, // Aquí muestra que no es obligatorio, si queres que sea obligatorio pon 'True' en vez de 'False'
'label' => __('RUT'), // Nombre del campo
'placeholder' => __('Ej: 21.322.303-0'), // Texto guía que se muestra dentro de la celda.
), $checkout->get_value( 'rut' )); // Identificador del campo
echo '</div>';
}
add_action( 'woocommerce_after_checkout_billing_form', 'woo_custom_field_checkout' );
/*
* INCLUYE RUT EN LOS DETALLES DEL PEDIDO CON EL NUEVO CAMPO
*/
function woo_custom_field_checkout_update_order($order_id) {
if ( ! empty( $_POST['rut'] ) ) {
update_post_meta( $order_id, 'RUT', sanitize_text_field( $_POST['rut'] ) );
}
}
add_action( 'woocommerce_checkout_update_order_meta', 'woo_custom_field_checkout_update_order' );
/*
* MUESTRA EL VALOR DEL CAMPO RUT LA PÁGINA DE MODIFICACIÓN DEL PEDIDO
*/
function woo_custom_field_checkout_edit_order($order){
echo '<p><strong>'.__('RUT').':</strong> ' . get_post_meta( $order->id, 'RUT', true ) . '</p>';
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'woo_custom_field_checkout_edit_order', 10, 1 );
/*
* INCLUYE EL CAMPO RUT EN EL CORREO ELECTRÓNICO DE AVISO A TU CLIENTE
*/
function woo_custom_field_checkout_email($keys) {
$keys[] = 'RUT';
return $keys;
}
add_filter('woocommerce_email_order_meta_keys', 'woo_custom_field_checkout_email');
Espero que os haya servido, que eso es lo más importante y cualquier duda como siempre os leo en comentarios!
Excelente el código, hubiese sido perfecto con la validación! de todas maneras se agradece!!
Excelente!
Cómo puedo colocarlo justo después del apellido y no al final del formulario?
Muchas gracias
Hola Marco,
Para una personalización así te recomiendo instalar el plugin de Checkout manager.
Un saludo!