Si tienes la necesidad de añadir el campo para DNI, CIF, NIF o NIE en el formulario de finalizar compra en WooCommerce este es el código que estás buscando!
Primero el código para agregar campo DNI en WooCommerce
<?php
/* AÑADIR CAMPO NIF/CIF EN EL FORMULARIO DE PAGO */
function JMWoo_custom_field_checkout($checkout) {
echo '<div id="additional_checkout_field">';
woocommerce_form_field( 'nif', array( // Identificador del campo
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'required' => true, // ¿El campo es obligatorio 'true' o 'false'?
'label' => __('NIF / CIF'), // Nombre del campo
'placeholder' => __('Ej: 12345678X'), // Texto de apoyo que se muestra dentro del campo
), $checkout->get_value( 'nif' )); // Identificador del campo
echo '</div>';
}add_action( 'woocommerce_after_checkout_billing_form', 'JMWoo_custom_field_checkout' );
/* Incluir el nuevo campo en los detalles del pedido */
function JMWoo_custom_field_checkout_update_order($order_id) {
if ( ! empty( $_POST['nif'] ) ) {
update_post_meta( $order_id, 'NIF', sanitize_text_field( $_POST['nif'] ) );
}
}add_action( 'woocommerce_checkout_update_order_meta', 'JMWoo_custom_field_checkout_update_order' );
/* Mostramos el campo en la página de edición del pedido */
function JMWoo_custom_field_checkout_edit_order($order){
echo '<p><strong>'.__('NIF').':</strong> ' . get_post_meta( $order->id, 'NIF', true ) . '</p>';
}add_action( 'woocommerce_admin_order_data_after_billing_address', 'JMWoo_custom_field_checkout_edit_order', 10, 1 );
/* Incluir el campo creado en el correo informativo para el cliente */
function JMWoo_custom_field_checkout_email($keys) {
$keys[] = 'NIF';
return $keys;
}add_filter('woocommerce_email_order_meta_keys', 'JMWoo_custom_field_checkout_email');
?>
¿Explicamos un poco el código?
Aunque el código está comentado línea por línea voy a explicar a grandes rasgos lo más destacado del mismo.
woocommerce_after_checkout_billing_form
Mediante este Hook añadimos el campo como tal, sin darle ninguna funcionalidad especial salvo decirle si es obligatorio y opcional en el formulario.
woocommerce_checkout_update_order_meta
Como he indicado en el propio código este código hace que el nuevo campo recien creado salga en los detalles del pedido
woocommerce_admin_order_data_after_billing_address
Mediante este hook habilitamos el nuevo campo en la ventana de edición del pedido realizado desde el formulario de compra en Woocommerce.
woocommerce_email_order_meta_keys
Y por último con esta función conseguimos que el DNI o el CIF introducido se refleje en los correos de WooCommerce
Bueno pues hasta aquí el post, este ha sido el primero de una serie de post que iré publicando con códigos útiles para mejorar o ampliar nuestro WordPress
¡Hasta pronto!
3 comentarios en “Código para añadir DNI | CIF | NIF | NIE en WooCommerce”
una pregunta, supongo que muy tonta, en donde añado el código?
Lo más facil es insertarlo en el funcions.php, aunque te recomiendo que eches un vistazo al post sobre como Insertar código en WordPress
Muchas gracias Juan, tu página es de gran ayuda.