
Nos encontramos que WooCommerce no nos proporciona ni una cosa ni otra, así que en este artículo, aprenderemos a incluir este campo en el checkout y generaremos facturas PDF con este campo incluido.
Incluir campo CIF/DNI/NIE en WooCommerce
Lo más fácil sería incluir el campo a través de algún plugin pero cargaríamos de recursos mucho más la página web de forma innecesaria. Así que lo que haremos será incluir un código.

Para ello abrimos el archivo functions.php de nuestro Child Theme y copiamos y pegamos el siguiente código.
/*** 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>’ . __(‘Información adicional’) . ‘</h2>’;
woocommerce_form_field( ‘nif’, array(
‘type’ => ‘text’,
‘class’ => array(‘my-field-class form-row-wide’),
‘label’ => __(‘Introduce el Nº NIF’),
‘required’ => true,
‘placeholder’ => __(‘CIF/DNI/NIE’),
), $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( __( ‘CIF/DNI/NIE, es un campo requerido.’ ), ‘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><strong>’.__(‘NIF’).’:</strong> ‘ . 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;
}
Con solo este código tendremos el campo CIF/DNI/NIE para que el cliente lo rellene. El campo es obligatorio rellenarlo, si queréis que no lo sea cambiar donde dice ‘required’ => true por ‘required’ => false. También se puede cambiar desde el código cualquier texto que se muestra.
Recordar que este campo solo aparece en el checkout, mientras se tramita la compra del producto. A continuación un ejemplo de como se ve este campo.
Sabiendo un mínimo de programación, viendo el código anterior, os será muy sencillo de modificar a vuestro gusto. Si alguna vez se debe modificar este campo de forma manual porque el cliente se equivocó a la hora de escribirlo o por otra causa, accedemos a la administración de WordPress y en la columna de la izquierda vamos a WooCommerce –> Pedidos.
Una vez dentro hacemos clic en el pedido a editar, y abajo, en campos personalizados, encontraremos donde modificar el número donde pone valor, luego acordaros de actualizar para guardar cambios.
Generar facturas y albaranes PDF en WooCommerce
WooCommerce no da la posibilidad de imprimir facturas o albaranes y así poder enviárselas al cliente. Pero existe un plugin llamado WooCommerce PDF Invoices & Packing Slips, que nos ayudará a generar facturas y albaranes en PDF de forma rápida y sencilla.

Antes de explicar este plugin, es necesario incluir unas líneas de código que hará que el campo CIF/DNI/NIE del cliente aparezca en la factura que le vamos a enviar por email o bien desde su cuenta creada.
Estas líneas de código solo es necesario si vais a utilizar este plugin. Nos vamos al archivo functions.php y copiamos y pegamos el siguiente código.
/*** Incluir NIF en la factura ***/
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’, ‘CIF/DNI/NIE: ‘ );
echo ‘</p>’;
}
Ahora si, vamos a ver como instalar y configurar este plugin que nos va a venir genial.
- Primero nos vamos al siguiente enlace para descargar el plugin en su página oficial WooCommerce PDF Invoices & Packing Slips o lo descargamos desde el admin en la sección de plugins, lo instalamos y lo activamos.
- Luego nos dirigimos a la columna de la izquierda de nuestra administración de WordPress siguiendo la ruta WooCommerce –> Facturas PDF.
- En la pestaña General, el primer campo ¿cómo deseas visualizar el PDF?, lo dejamos tal cual. A la hora de elegir una plantilla o utilizamos la simple que es la que está seleccionada o usar una propia, para ello seguir las instrucciones que pone debajo del campo. Tamaño de papel, de normal el A4. Los dos siguientes campos, modo de pruebas y compatibilidad con símbolo de moneda, sin seleccionar salvo que lo necesitéis implementar. Luego añadir el logo, nombre de la tienda, dirección y el pie de página, lo que va abajo del todo. Los campos extra es para la versión premium, para dividir el pie de página en columnas.