Il tuo partner dedicato per tutto ciò che riguarda WordPress

Come modificare lo stato dell'ordine WooCommerce a livello di codice

Sommario

WooCommerce è una popolare piattaforma di eCommerce che alimenta milioni di negozi online in tutto il mondo. Una delle caratteristiche principali di WooCommerce è la capacità di gestire gli ordini. Per impostazione predefinita, WooCommerce viene fornito con diversi stati dell'ordine come in sospeso, in elaborazione, completato e annullato. Tuttavia, in alcuni casi potrebbe essere necessario creare stati dell'ordine personalizzati o modificare lo stato dell'ordine a livello di codice. In questo post del blog, ti mostreremo come modificare lo stato dell'ordine WooCommerce in modo programmatico e ti forniremo alcuni esempi delle sue applicazioni pratiche.

Prima di iniziare, è essenziale capire come funzionano gli stati degli ordini in WooCommerce. Quando un cliente effettua un ordine, gli viene assegnato lo stato predefinito "in sospeso". Puoi modificare manualmente questo stato in "elaborazione in corso" quando inizi a evadere l'ordine. Una volta completato l'ordine, puoi modificare lo stato in "completato". Se un ordine viene annullato, lo stato cambia in "annullato".

Ora, supponiamo che tu debba creare uno stato dell'ordine personalizzato chiamato "in attesa". Puoi farlo aggiungendo il seguente codice al tuo file Functions.php:

“`php
funzione registro_personalizzato_ordine_status() {
Register_post_status( 'wc-in-attesa', array(
'etichetta' => 'In attesa',
'pubblico' => vero,
'exclude_from_search' => falso,
'show_in_admin_all_list' => vero,
'show_in_admin_status_list' => vero,
'label_count' => _n_noop( 'In attesa (%s) ', 'In attesa (%s) ' )
));
}
add_action('init', 'register_custom_order_status');
“`

È quindi possibile utilizzare il codice seguente per modificare lo stato dell'ordine in "in sospeso" a livello di codice:

“`php
$ ordine = wc_get_order ( $ order_id );
$order->update_status( 'in attesa', __( 'Ordine in attesa', 'woocommerce') );
“`

Questo codice recupera l'oggetto dell'ordine utilizzando la variabile $order_id e aggiorna il suo stato su "in sospeso".

Vediamo ora un'applicazione pratica di questo codice. Supponiamo che tu gestisca un negozio online che offre un servizio di abbonamento. Desideri creare uno stato dell'ordine personalizzato denominato "scaduto" che viene assegnato agli ordini al termine del periodo di abbonamento. È possibile utilizzare il seguente codice per ottenere ciò:

“`php
funzione change_order_status_on_subscription_expiry( $abbonamento ) {
$order_id = $abbonamento->get_parent_id();
$ ordine = wc_get_order ( $ order_id );
$order->update_status( 'scaduto', __( 'Abbonamento scaduto', 'woocommerce') );
}
add_action('woocommerce_subscription_end_of_prepaid_term', 'change_order_status_on_subscription_expiry');
“`

Questo codice ascolta l'evento "woocommerce_subscription_end_of_prepaid_term", che viene attivato al termine del periodo di abbonamento. Quindi recupera l'ID dell'ordine principale e aggiorna il suo stato su "scaduto".

Conclusione

La modifica dello stato dell'ordine WooCommerce a livello di codice può essere una funzionalità utile per i proprietari di negozi online che desiderano personalizzare il proprio sistema di gestione degli ordini. Con l'aiuto degli hook e dei filtri di WordPress, puoi creare stati degli ordini personalizzati, automatizzare le modifiche allo stato degli ordini e integrarti con servizi di terze parti. Ci auguriamo che questo articolo ti abbia fornito alcuni spunti su come raggiungere questo obiettivo e ti abbia ispirato a esplorare più possibilità con WooCommerce.

 

Come iniziare?

Scopri di più

Manutenzione WooCommerce

Salva 33% con il nostro piano tariffario annuale.

Inizia Ora

Hai problemi con WordPress?

Rivendica il tuo Manutenzione gratuita di WordPress

Nel frenetico panorama digitale di oggi, ogni sito web merita la cura e l'esperienza di un team di manutenzione professionale, garantendo prestazioni ottimali, maggiore sicurezza ed esperienze utente fluide, così puoi concentrarti sulla crescita della tua attività in tutta tranquillità.

Alexey Seryapin
Fondatore di WPServices

Codice coupon applicato!

Prenditi il ​​tuo tempo e continua a navigare tra i nostri servizi.

Alexey Seryapin
Fondatore di WPServices