Come approvare automaticamente gli ordini in WooCommerce
Pubblicato: 2020-09-25Se 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:
- Accedi al tuo sito WordPress e accedi alla Dashboard come utente amministratore.
- 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.
- 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'); } } }
- 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:
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
Ecco i passaggi che devi seguire:
- Accedi al tuo sito WordPress e accedi alla Dashboard come utente amministratore.
- 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.
- 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'); } } }
- 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
- Come rimuovere il menu Download Il mio account Pagina WooCommerce
- Come aggiungere un campo extra nel modulo di pagamento di WooCommerce
- Come disabilitare l'opzione di spedizione a un altro indirizzo
- Come ottenere metodi di pagamento in WooCommerce » Esempio di codice
- Come nascondere il pulsante Aggiungi al carrello in WooCommerce
- Come aggiungere un metodo di spedizione personalizzato in WooCommerce
- Nascondi o rimuovi il campo della quantità dalla pagina del prodotto WooCommerce
- Come utilizzare gli attributi dei prodotti WooCommerce passo dopo passo [Guida completa]
- Come visualizzare i prodotti WooCommerce per categoria
- Come nascondere il campo del codice coupon WooCommerce
- Come mettere il carrello e il pagamento WooCommerce su una pagina
- Come rinominare i messaggi di stato dell'ordine in WooCommerce
- Come aggiungere l'immagine del prodotto Pagina di pagamento WooCommerce
- Come rendere obbligatori i commenti sugli ordini di WooCommerce
- Come aggiungere categorie ai prodotti WooCommerce
- Come nascondere tutti i prodotti dalla pagina del negozio in WooCommerce
- Come disabilitare il metodo di pagamento per una categoria specifica