Come approvare automaticamente gli ordini in WooCommerce

Pubblicato: 2020-09-25

Approvazione automatica degli ordini WooCommerce Se gestisci un negozio eCommerce, allora sei consapevole che il sito richiede il monitoraggio e la gestione degli ordini. Tuttavia, questo può essere un lavoro faticoso per l'amministratore, soprattutto se il tuo negozio online raccoglie un traffico elevato, il che si traduce in un gran numero di ordini in un giorno.

Inoltre, sai che un ordine viene creato non appena il processo di pagamento è completato. A un ordine viene assegnato uno stato in base a dove si trova l'ordine nella catena dal pagamento alla consegna.

Inoltre, gli stati vengono impostati o modificati da WooCommerce, dal gateway di pagamento e dall'amministratore del negozio a seconda di dove viene avviato l'ordine.

Dopo che il pagamento di un ordine è stato completato se l'utente non ha selezionato l'opzione Contrassegno. Quando un ordine viene completato, il suo stato viene impostato su "In elaborazione" fino a quando il proprietario del negozio non lo modifica manualmente in "Completato". Questo sarà un compito arduo per il proprietario del negozio o l'amministratore.

Approvazione automatica degli ordini WooCommerce

In questo breve tutorial, condividerò con te un codice PHP personalizzato che ti aiuterà a impostare automaticamente lo stato dell'ordine come Completato ogni volta che un pagamento è stato effettuato con successo. Ciò implica che anche se l'utente seleziona l'opzione Contrassegno, lo stato dell'ordine cambierà automaticamente in Completato.

Inoltre, condividerò con te anche una soluzione che imposterà automaticamente lo stato dell'ordine WooCommerce come Completato per i prodotti virtuali. Questi prodotti non sono tangibili o scaricabili.

Questo perché la sottoscrizione dell'abbonamento potrebbe non avere una forma tangibile ma invece una data di scadenza. Se si tratta di prodotti scaricabili, l'opzione Contrassegno non dovrebbe essere inclusa, ma dovrebbe essere aggiunta solo una condizione per verificare se tutti i prodotti nell'ordine sono virtuali.

Ora che sai come vengono impostati gli stati degli ordini, ecco una guida dettagliata su come:

  • Imposta automaticamente lo stato dell'ordine WooCommerce come Completato in base al metodo di pagamento.
  • Imposta automaticamente lo stato dell'ordine WooCommerce come Completato per i prodotti virtuali.

a) Passaggi per impostare automaticamente lo stato dell'ordine WooCommerce come completato in base al metodo di pagamento

Ecco i semplici passaggi che devi seguire:

  1. Accedi al tuo sito WordPress e accedi alla Dashboard come utente amministratore.
  2. Dal menu Dashboard, fai clic su Menu Aspetto > Menu Editor temi . Quando viene aperta la pagina dell'editor dei temi , cerca il file delle funzioni del tema in cui aggiungeremo la funzione che imposterà automaticamente lo stato dell'ordine woocommerce come completato in base al metodo di pagamento.
  3. Aggiungi il seguente codice al file php :
 /**

Snippet per impostare automaticamente lo stato dell'ordine woocommerce come completato in base al metodo di pagamento

*/

add_action('woocommerce_order_status_changed', 'njengah_auto_complete_by_payment_method');

funzione njengah_auto_complete_by_payment_method($ order_id)

{

se ( ! $ order_id ) {

Restituzione;

}

prodotto $ globale;

$ordine = wc_get_ordine($ordine_id);

if ($ordine->dati['stato'] == 'elaborazione') {

$payment_method=$ordine->get_payment_method();

se ($ metodo_pagamento!="bacs")

{

$ordine->aggiornamento_stato('completato');

}

}

}
  1. Per vedere il risultato, vai alla dashboard di WordPress e fai clic su WooCommerce > Ordini . Vedrai che l'ordine è stato impostato su Completato come mostrato di seguito: ordine approvato

Come funziona il codice

Nel codice sopra, ho usato l'hook woocommerce_order_status_changed per chiamare una funzione quando lo stato di un ordine viene modificato. Verifica se l'ordine ha lo stato In elaborazione e lo cambia in Completato.

Per impostazione predefinita, WooCommerce ha quattro metodi di pagamento predefiniti, che sono Bonifico Bancario Diretto (bacs), Assegni (assegno), Contrassegno (cod) e PayPal (PayPal). Tuttavia, devi specificare il metodo di pagamento per il quale stai impostando la condizione.

b) Passaggi per impostare automaticamente lo stato dell'ordine WooCommerce come completato per i prodotti virtuali

prodotto scaricabile: Approvazione automatica degli ordini WooCommerce Ecco i passaggi che devi seguire:

  1. Accedi al tuo sito WordPress e accedi alla Dashboard come utente amministratore.
  2. Dal menu Dashboard, fai clic su Menu Aspetto > Menu Editor temi . Quando viene aperta la pagina dell'editor dei temi , cerca il file delle funzioni del tema in cui aggiungeremo la funzione che imposterà automaticamente lo stato dell'ordine woocommerce come completato per i prodotti virtuali.
  3. Aggiungi il seguente codice al file php :
 /**

Snippet per impostare automaticamente lo stato dell'ordine woocommerce come completato per i prodotti virtuali

*/

add_action('woocommerce_order_status_changed', 'njengah_auto_complete_virtual');

funzione njengah_auto_complete_virtual($ order_id)

{

se ( ! $ order_id ) {

Restituzione;

}

prodotto $ globale;

$ordine = wc_get_ordine($ordine_id);

if ($ordine->dati['stato'] == 'elaborazione') {

$ ordine_virtuale = nullo;

if ( count( $ order-> get_items() ) > 0 ) {

foreach($ordine->get_items() as $item) {

if ( 'line_item' == $item['type'] ) {

$_product = $ordine->get_product_from_item($item);

se ( ! $_prodotto->è_virtuale() ) {

// una volta trovato un prodotto non virtuale, esci dal ciclo

$ordine_virtuale = falso;

rottura;

}

altro {

$ordine_virtuale = vero;

}

}

}

}




// se sono tutti prodotti virtuali, contrassegnali come completati

se ($ordine_virtuale) {

$ordine->aggiornamento_stato('completato');

}

}

}

  1. Il risultato sarà lo stesso del primo esempio, in quanto l'ordine verrà automaticamente impostato come Completato .

Come funziona il codice

Nel codice sopra, ho usato lo stesso hook per chiamare la funzione njengah_auto_complete_virtual. Dopo aver verificato se è in uno stato di elaborazione, il codice passa attraverso ogni articolo nell'ordine per vedere se esiste un prodotto virtuale.

Il line_item si riferisce al prodotto e solo i prodotti devono essere recuperati uno per uno per verificare se sono virtuali. In assenza di un prodotto virtuale, lo stato dell'ordine non verrà contrassegnato come Completato.

Conclusione

In questo breve tutorial, ho condiviso come impostare automaticamente lo stato dell'ordine WooCommerce come Completato. L'ho fatto in base al metodo di pagamento e per i prodotti virtuali.

Tuttavia, a seconda dei requisiti di cui hai bisogno per il tuo negozio, utilizzando il primo snippet di codice, puoi aggiungere altre condizioni per contrassegnare lo stato dell'ordine come Completato. Ad esempio, se il pagamento è stato effettuato, puoi contrassegnare lo stato dell'ordine come completato anche per i prodotti non virtuali aggiungendo un segno di spunta sul metodo di pagamento dopo che ha verificato se si tratta di un prodotto virtuale.

Tuttavia, tramite questo snippet di codice, lo stato dell'ordine verrà impostato come Completato solo se tutti i prodotti nell'ordine sono prodotti virtuali. Spero che questo post abbia fornito una soluzione per approvare automaticamente gli ordini in WooCommerce.

Articoli simili