NIF/CIF en la página de pago de Woocommerce

LucusHost, el mejor hosting

El checkout o página de finalizar pago de Woocommerce por defecto no trae el campo de rellenar el CIF(Código de Identificación Fiscal) para empresas o el NIF(Número de identificación Fiscal) para autónomos. Esto trae consigo que si nos compra una empresa o un autónomo, aunque tengamos un programa por defecto de facturas no generará el CIF e igualmente tendremos que hacerla a mano.

Pero siempre hay un código o un plugin para todo en la sección de snippets para Woocommerce. Así que no os voy a recomendar plugin para que aparezca este campo y se sincronice con el plugin de facturas, lo haremos todo con un código.

Añadir CIF en Woocommerce sin Plugin

Añade este código al final del archivo functions.php de tu child theme.

/*
* Añadir casilla NIF en el checkout
*/
function woo_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,            // Aquí muestra que no es obligatorio, si queres que sea obligatorio pon 'True' en vez de 'False'
    'label'       => __('NIF / CIF'),   // Nombre del campo 
    'placeholder'   => __('Ej: 12345678X'), // Texto guía que se muestra dentro de la celda.
  ), $checkout->get_value( 'nif' ));    // Identificador del campo 
  echo '</div>'; 
}
add_action( 'woocommerce_after_checkout_billing_form', 'woo_custom_field_checkout' );
/*
* INCLUYE NIF/CIF EN LOS DETALLES DEL PEDIDO CON EL NUEVO CAMPO
*/
function woo_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', 'woo_custom_field_checkout_update_order' );
/*
* MUESTRA EL VALOR DEL CAMPO NIF/CIF LA PÁGINA DE MODIFICACIÓN DEL PEDIDO
*/
function woo_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', 'woo_custom_field_checkout_edit_order', 10, 1 );
/*
* INCLUYE EL CAMPO NIF/CIF EN EL CORREO ELECTRÓNICO DE AVISO A TU CLIENTE
*/
function woo_custom_field_checkout_email($keys) {
  $keys[] = 'NIF';
  return $keys;
}
add_filter('woocommerce_email_order_meta_keys', 'woo_custom_field_checkout_email');

Con este código conseguiremos que en la página de pago de nuestra tienda aparezca el campo para rellenar el CIF o NIF de forma opcional. Si deaseas ponerlo obligatorio en el código viene explicado en comentarios como hacerlo. Quedaría algo así:

insertar nif cif formulario de-pago woocommerce wordpress

Añadir CIF en mis facturas de Woocommerce

En el caso de que quieras que salga automáticamente en tu gestor de facturas de Woocommerce, en este caso pongo el código para el plugin que recomendé en ese artículo.

/**
*Añadir el CIF automáticamente en el plugin de facturas 'WooCommerce PDF Invoices & Packing Slips'
*/
 
add_filter( 'wpo_wcpdf_billing_address', 'anadir_cif_factura' );
 
function anadir_cif_factura( $address ){
  global $wpo_wcpdf;
 
  echo $address . '<p>';
  $wpo_wcpdf->custom_field( 'NIF', 'NIF: ' );
  echo '</p>';
}

Si tienes un plugin diferente no sirve.

Conclusiones

Los clientes son un poco reacios a dar el DNI, ya que es algo privado y aumenta más el tiempo al rellenar los datos del formulario de compra a no ser que sea una empresa que estarán encantado de dártelo.

Pedir el DNI en el proceso en las compras que realizan en tu tienda online en teoría es obligatorio, que no lo piden las tiendas grandes, pues sí pero yo aviso. Por eso en el código está como obligatorio, ya que cada uno…

Recordaros que en el artículo de cómo debe ser la página de finalizar compra tenéis una guía con las directrices que recomiendo o bien puedes ver mi servicio de desarrollo de tiendas online.

¡Haz clic para puntuar esta entrada!
(Votos: 4 Promedio: 4.3)
mailerlite diegol

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial? Mándame un correo y te resuelvo todas las dudas!


Ver servicios Curso de WooCommerce

También puedes realizar una donacion para seguir apoyando la salida de nuevos tutoriales y actualizaciones

mailerlite diegol

Reader Interactions

comentarios

  1. Elena says

    Cuidado, la función contiene una ñ y no funciona.

    Debería ser:
    add_filter( ‘wpo_wcpdf_billing_address’, ‘anadir_cif_factura’ );

    function anadir_cif_factura( $address ){
    global $wpo_wcpdf;

    Anadir o Add o cualquier otra cosa sin ñ.

  2. Elena says

    Hola!

    Muy buen post. Tengo una duda. He añadido el código, pero en las facturas que ya existen no aparece el NIF. Esto es porqué al estar ya emitidas no puede aparecer, o porqué he añadido mal el código.
    Muchas gracias

    • Diegol says

      Hola Elena,

      Es normal que no aparezca ya que esas personas no pusieron su DNI/NIF cuando hicieron el pedido, por tanto no es posible que salga. Otra historia es que edites tu el pedido. En este caso pondrás el DNI.

      Otra cosa que no sé es que plugin de facturación tendrás, ya que lo tendrás que enlazar para que salga ese dato.

      Un saludo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *