How to add VAT Number and Company Name to WooCommerce with a snippet

Here is a snippet you can use to add VAT number and Company Name fields to the WooCommerce checkout area.

Programmazione WordPress
Programmazione WordPress

This code inserts the mandatory VAT number and company name fields into Woocommerce.

// Aggiungi i campi Partita IVA e Ragione Sociale nel checkout di WooCommerce
add_action('woocommerce_after_checkout_billing_form', 'aggiungi_campi_partita_iva_e_ragione_sociale');

function aggiungi_campi_partita_iva_e_ragione_sociale( $checkout ) {
    echo '<div id="partita_iva_ragione_sociale">';
    
    woocommerce_form_field( 'partita_iva', array(
        'type'          => 'text',
        'class'         => array('form-row-wide'),
        'label'         => __('Partita IVA', 'woocommerce'),
        'placeholder'   => __('Inserisci la tua Partita IVA', 'woocommerce'),
        'required'      => true,
    ), $checkout->get_value( 'partita_iva' ));
    
    woocommerce_form_field( 'ragione_sociale', array(
        'type'          => 'text',
        'class'         => array('form-row-wide'),
        'label'         => __('Ragione Sociale', 'woocommerce'),
        'placeholder'   => __('Inserisci la tua Ragione Sociale', 'woocommerce'),
        'required'      => true,
    ), $checkout->get_value( 'ragione_sociale' ));
    
    echo '</div>';
}

// Validazione dei campi Partita IVA e Ragione Sociale
add_action('woocommerce_checkout_process', 'valida_campi_partita_iva_e_ragione_sociale');

function valida_campi_partita_iva_e_ragione_sociale() {
    if ( ! empty( $_POST['partita_iva'] ) && ! preg_match('/d{11}/', $_POST['partita_iva'] ) ) {
        wc_add_notice( __( 'La Partita IVA non è valida.', 'woocommerce' ), 'error' );
    }
    
    if ( empty( $_POST['ragione_sociale'] ) ) {
        wc_add_notice( __( 'La Ragione Sociale è obbligatoria.', 'woocommerce' ), 'error' );
    }
}

// Salvataggio dei dati Partita IVA e Ragione Sociale nell'ordine
add_action('woocommerce_checkout_update_order_meta', 'salva_partita_iva_e_ragione_sociale');

function salva_partita_iva_e_ragione_sociale( $order_id ) {
    if ( ! empty( $_POST['partita_iva'] ) ) {
        update_post_meta( $order_id, 'Partita IVA', sanitize_text_field( $_POST['partita_iva'] ) );
    }
    
    if ( ! empty( $_POST['ragione_sociale'] ) ) {
        update_post_meta( $order_id, 'Ragione Sociale', sanitize_text_field( $_POST['ragione_sociale'] ) );
    }
}

The following code inserts the non-mandatory VAT number and company name fields into Woocommerce.

function aggiungi_campi_partita_iva_e_ragione_sociale( $checkout ) {
    echo '<div id="partita_iva_ragione_sociale">';

    woocommerce_form_field( 'partita_iva', array(
        'type'          => 'text',
        'class'         => array('form-row-wide'),
        'label'         => __('Partita IVA', 'woocommerce'),
        'placeholder'   => __('Inserisci la tua Partita IVA', 'woocommerce'),
        'required'      => false,
    ), $checkout->get_value( 'partita_iva' ));

    woocommerce_form_field( 'ragione_sociale', array(
        'type'          => 'text',
        'class'         => array('form-row-wide'),
        'label'         => __('Ragione Sociale', 'woocommerce'),
        'placeholder'   => __('Inserisci la tua Ragione Sociale', 'woocommerce'),
        'required'      => false,
    ), $checkout->get_value( 'ragione_sociale' ));

    echo '</div>';
}
add_action( 'woocommerce_checkout_before_customer_details', 'aggiungi_campi_partita_iva_e_ragione_sociale' );

// Salvataggio dei dati Partita IVA e Ragione Sociale nell'ordine
add_action( 'woocommerce_checkout_update_order_meta', 'salva_partita_iva_e_ragione_sociale' );

function salva_partita_iva_e_ragione_sociale( $order_id ) {
    if ( ! empty( $_POST['partita_iva'] ) ) {
        update_post_meta( $order_id, 'Partita IVA', sanitize_text_field( $_POST['partita_iva'] ) );
    }

    if ( ! empty( $_POST['ragione_sociale'] ) ) {
        update_post_meta( $order_id, 'Ragione Sociale', sanitize_text_field( $_POST['ragione_sociale'] ) );
    }
}
Pubblicato in

Se vuoi rimanere aggiornato su How to add VAT Number and Company Name to WooCommerce with a snippet iscriviti alla nostra newsletter settimanale

Be the first to comment

Leave a Reply

Your email address will not be published.


*