Stato dell’ordine personalizzato in WooCommerce

Stato dell'ordine personalizzato in WooCommerce

WooCommerce offre di default diversi stati ordine (in attesa, in lavorazione, completato, ecc.), ma in alcuni casi può essere utile creare uno stato personalizzato che rispecchi meglio il flusso operativo della tua attività. Pensiamo, ad esempio, a uno stato come “In Verifica”, da utilizzare quando un ordine necessita di controlli aggiuntivi prima di essere processato.

Con poche righe di codice è possibile:

  • Creare un nuovo stato ordine personalizzato, riconosciuto sia dal backend che dal frontend.
  • Visualizzarlo nell’area amministrativa di WooCommerce, accanto agli altri stati standard.
  • Includerlo nei report di WooCommerce, così da avere una visione chiara anche delle vendite che si trovano in questo stato.
  • Renderlo visibile nell’area personale del cliente, in modo che l’utente possa monitorare l’avanzamento del proprio acquisto.

Questo tipo di personalizzazione è particolarmente utile per i negozi online che gestiscono procedure specifiche, come controlli manuali, conferme di pagamento particolari o verifiche legate a disponibilità di magazzino.

Implementando la funzione, WooCommerce riconoscerà lo stato come parte integrante del sistema: potrai selezionarlo manualmente dalla pagina dell’ordine, includerlo nelle statistiche e garantire al cliente una comunicazione trasparente su ogni fase del processo di acquisto.

In sintesi, aggiungere stati ordine personalizzati significa adattare WooCommerce alle esigenze reali del tuo business, migliorando sia la gestione interna che l’esperienza utente.

Procediamo aggiungendo il codice che segue al file functions.php del tema child:

/**
 * Aggiunge uno stato ordine personalizzato "In Verifica"
 */

// 1. Registra il nuovo stato ordine
add_action( 'init', 'lab_add_custom_order_status' );
function lab_add_custom_order_status() {
    register_post_status( 'wc-in-verifica', array(
        'label'                     => 'In Verifica',
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop( 'In Verifica (%s)', 'In Verifica (%s)' ),
    ));
}

// 2. Aggiunge lo stato alla lista degli stati di WooCommerce
add_filter( 'wc_order_statuses', 'lab_add_custom_order_status_to_list' );
function lab_add_custom_order_status_to_list( $order_statuses ) {
    $new_statuses = array();

    foreach ( $order_statuses as $key => $status ) {
        $new_statuses[$key] = $status;

        // Inserisco il nuovo stato subito dopo "In lavorazione"
        if ( 'wc-processing' === $key ) {
            $new_statuses['wc-in-verifica'] = 'In Verifica';
        }
    }

    return $new_statuses;
}

// 3. Aggiunge lo stato "In Verifica" ai report di WooCommerce
add_filter( 'woocommerce_reports_order_statuses', 'lab_add_custom_status_to_reports' );
function lab_add_custom_status_to_reports( $statuses ) {
    $statuses[] = 'in-verifica';
    return $statuses;
}

// 4. Garantisce che sia disponibile anche in frontend (My Account)
add_filter( 'woocommerce_my_account_my_orders_query', 'lab_add_custom_status_to_my_account_orders' );
function lab_add_custom_status_to_my_account_orders( $args ) {
    $args['post_status'][] = 'wc-in-verifica';
    return $args;
}

Hai bisogno di personalizzazioni su WooCommerce?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Torna in alto