Cómo añadir campo para la identificación fiscal en WooCommerce

Agregar campo para CIF en WooCommerce

En la documentación de Woothemes está explicado, pero algunos usuarios de WordPress siguen preguntando en foros cómo añadir un campo para la identificación fiscal en la página de finalizar compra en WooCommerce.

Puedes hacerlo usando un plugin como WooCommerce Poor Guys Swiss Knife, o bien puedes añadir el siguiente código al archivo functions.php del tema:

//AGREGAR CAMPO PARA IDENTIFICACION FISCAL AL FINALIZAR COMPRA
/*** Add the field to the checkout/**/

add_action('woocommerce_after_order_notes', 'identificacion_fiscal_checkout_field');

function identificacion_fiscal_checkout_field( $checkout ) {
    echo '<div id="identificacion_fiscal_checkout_field"><h2>'.__('Identificación fiscal').'</h2>';
    woocommerce_form_field( 'identificacion_fiscal', array(
        'type'          => 'text',
        'class'         => array('identificacion_fiscal-class form-row-wide'),
        'label'         => __('Por favor introduce tu número de CIF, NIF o DNI'),
        'placeholder'       => __('CIF:'),
        ), $checkout->get_value( 'identificacion_fiscal' ));
    echo '</div>';
}

/*** Process the checkout **/
add_action('woocommerce_checkout_process', 'identificacion_fiscal_checkout_field_process');

function identificacion_fiscal_checkout_field_process() {
    global $woocommerce;

    // Check if set, if its not set add an error.
    if (!$_POST['identificacion_fiscal'])
         $woocommerce->add_error( __('Por favor, completa el campo de identificación fiscal.') );
}

/*** Update the order meta with field value **/
add_action('woocommerce_checkout_update_order_meta', 'identificacion_fiscal_checkout_field_update_order_meta');

function identificacion_fiscal_checkout_field_update_order_meta( $order_id ) {
    if ($_POST['identificacion_fiscal']) update_post_meta( $order_id, 'Identificación fiscal', esc_attr($_POST['identificacion_fiscal']));
}

// AGREGAR IDENTIFICACION AL EMAIL DE ADMIN Y CLIENTE
add_filter('woocommerce_email_order_meta_keys', 'identificacion_fiscal_checkout_field_order_meta_keys');

function identificacion_fiscal_checkout_field_order_meta_keys( $keys ) {
    $keys[] = 'Identificación fiscal';
    return $keys;
}

Por supuesto esta función puedes modificarla a tu gusto y añadirle otras, yo por ejemplo he añadido la última para que la identificación fiscal se incluya en el mail dentro del pedido y la reciban tanto el cliente como el vendedor.
¿Te ha resultado útil este código? ¿Tienes otro mejor? ¡Compártelo!

Deja un comentario

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