WordPress: aggiungere campi custom alla pagina di checkout di WooCommerce

WordPress: aggiungere campi custom alla pagina di checkout di WooCommerce

WooCommerce ci permette di aggiungere anche campi custom alla sua pagina di checkout.

In functions.php creiamo per prima cosa il campo che verrà visualizzato nella pagina di checkout:


add_action( 'woocommerce_after_order_notes', 'my_custom_checkout_field' );

function my_custom_checkout_field( $checkout ) {

    echo '<div id="my-custom-checkout-field"><h2>' . __( 'Titolo del campo' ) . '</h2>';

    woocommerce_form_field( 'my_field_name', array(
        'type'          => 'text',
        'class'         => array( 'my-field-class form-row-wide' ),
        'label'         => __( 'Testo della label '),
        'placeholder'       => __( 'Testo del placeholder' ),
        ), $checkout->get_value( 'my_field_name' ));

    echo '</div>';

}

Quindi aggiungiamo la validazione:


add_action( 'woocommerce_checkout_process', 'my_custom_checkout_field_process' );

function my_custom_checkout_field_process() {
    global $woocommerce;

    // Verifichiamo che abbia un valore
    if ( !$_POST['my_field_name'] ) {
         $woocommerce->add_error( __( 'Messaggio di errore.' ) );
    }
}

Infine salviamo il campo con l'ordine in corso:


add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' );

function my_custom_checkout_field_update_order_meta( $order_id ) {
    if ( $_POST['my_field_name'] ) {
     	update_post_meta( $order_id, 'my-field-name', esc_attr( $_POST['my_field_name'] ) );
    }
}

Torna su