Como os dijimos el otro día, WooCommerce, aun siendo increíble, no tiene en cuenta cuestiones importantes como el NIF, CIF o DNI en los datos de cliente. Algo obligatorio para las facturas en España.
Hoy vamos a enseñaros a añadirlo con y sin plugin.
1. Añadir el NIF, CIF o DNI a WooCommerce sin plugin.
En este caso añadiremos uno o varios códigos. Por lo tanto o los añades al functions.php de tu tema hijo, o a Snippets (como prefieras).
Sinceramente, con lo que se actualiza WooCommerce, y siendo algo tan vital, yo estoy más cómodo usando un plugin que código personalizado.
Porque si hay errores más adelante los del plugin pueden arreglarlo, y puedes deshabilitar los plugins también rápidamente.
Si no quieres complicarte, vete directamente al siguiente apartado para hacerlo con un plugin.
Pero esto es a gusto del consumidor.
El código ya lo han desarrollado otros, y os dejamos los ejemplos:
- https://www.wpdesk.net/blog/vat-eu-woocommerce/
- https://ayudawp.com/como-anadir-el-cifnif-en-woocommerce/
Aquí os dejo el primero resumido:
/**
* MUESTRA EL CIF EN EL FORMULARIO DE PAGO (CHECKOUT)
*/
add_action( 'woocommerce_after_order_notes', 'wpdesk_vat_field' );
function wpdesk_vat_field( $checkout ) {
echo '<div id="wpdesk_vat_field"><h2>' . __('VAT Number') . '</h2>';
woocommerce_form_field( 'vat_number', array(
'type' => 'text',
'class' => array( 'vat-number-field form-row-wide') ,
'label' => __( 'VAT Number' ),
'placeholder' => __( 'Enter your VAT number' ),
), $checkout->get_value( 'vat_number' ));
echo '</div>';
}
/**
* GUARDA EL NUEVO CAMPO EN EL PEDIDO
*/
add_action( 'woocommerce_checkout_update_order_meta', 'wpdesk_checkout_vat_number_update_order_meta' );
function wpdesk_checkout_vat_number_update_order_meta( $order_id ) {
if ( ! empty( $_POST['vat_number'] ) ) {
update_post_meta( $order_id, '_vat_number', sanitize_text_field( $_POST['vat_number'] ) );
}
}
/**
* HACER QUE SE VEA EL CAMPO EN LA ADMINISTRACIÓN DE WOOCOMMERCE
*/
add_action( 'woocommerce_admin_order_data_after_billing_address', 'wpdesk_vat_number_display_admin_order_meta', 10, 1 );
function wpdesk_vat_number_display_admin_order_meta( $order ) {
echo '<p><strong>' . __( 'VAT Number', 'woocommerce' ) . ':</strong> ' . get_post_meta( $order->id, '_vat_number', true ) . '</p>';
}
/**
* AÑADE EL CAMPO A LOS E-MAILS DE WOOCOMMERCE.
*/
add_filter( 'woocommerce_email_order_meta_keys', 'wpdesk_vat_number_display_email' );
function wpdesk_vat_number_display_email( $keys ) {
$keys['VAT Number'] = '_vat_number';
return $keys;
}
2. Añadir el NIF, CIF o DNI a WooCommerce con plugin. (OPCIÓN MÁS RECOMENDABLE)
Como os he dicho, yo prefiero este método. Al final el plugin es el código anterior “empaquetado”. Pero podemos gestionarlo de otra manera, y los plugins más maduros tienen soporte y actualizaciones (con mejoras del código y nuevas funcionalidades).
Hay dos tipos de plugins que podemos usar para esto.
Plugins específicos:
Ya existen plugins específicos para añadir estos campos. Os dejo unos pocos:
- WC – APG Campo NIF/CIF/NIE. Compatible con WooCommerce PDF Invoices & Packing Slips (que usamos para tener las facturas con numeración consecutiva). Es instalar y activar y ya aparece el DNI en la factura.
- DNI WooCommerce.
- EU VAT for WooCommerce. Permite deshabilitar el IVA para ciertos países (EUROPA) y dejarlo para España.
Plugins no específicos.
Podéis también usar los plugins que permiten añadir campos a WooCommerce y hacerlos o no obligatorios. Tiene la ventaja que son plugins que llevan mucho tiempo, ya probados para todo tipo de campos y compatibles con otros plugins.
Os recordamos dos de los más importantes.
- WooCommerce Checkout Manager. El más usado para esto. En un artículo próximo os enseñamos a hacerlo con este plugin (porque no es inmediato).
- Flexible Checkout Fields.
Os dejamos que probéis y elijáis la opción que más os convenga. Pero con esto, y el artículo del día pasado de la numeración, tendréis las facturas de WooCommerce legales en España.
Os recomendamos los siguientes productos relacionados con la informática: