Cum să aprobi automat comenzile în WooCommerce
Publicat: 2020-09-25Dacă conduceți un magazin de comerț electronic, atunci știți că site-ul necesită urmărirea și gestionarea comenzilor. Cu toate acestea, aceasta poate fi o muncă grea pentru administrator, mai ales dacă magazinul dvs. online adună trafic mare, ceea ce are ca rezultat un număr mare de comenzi într-o zi.
În plus, știți că o comandă este creată imediat ce procesul de finalizare a comenzii este finalizat. O comandă i se atribuie un statut în funcție de locul în care se află comanda în lanțul de plată până la livrare.
Mai mult, stările sunt setate sau modificate de WooCommerce, Gateway de plată și administratorul magazinului, în funcție de locul unde este inițiată comanda.
După finalizarea plății pentru o comandă, dacă utilizatorul nu a selectat opțiunea Ramburs la livrare. Când o comandă este finalizată, starea acesteia este setată la „În procesare” până când proprietarul magazinului o schimbă manual în „Terminat”. Aceasta va fi o sarcină descurajantă pentru proprietarul magazinului sau administrator.
Aprobare automată comenzi WooCommerce
În acest scurt tutorial, vă voi împărtăși un cod PHP personalizat care vă va ajuta să setați automat starea comenzii ca Finalizată ori de câte ori o plată a fost efectuată cu succes. Aceasta implică faptul că, chiar dacă utilizatorul selectează opțiunea Ramburs la livrare, starea comenzii se va schimba automat în Finalizată.
Mai mult, vă voi împărtăși și o soluție care va seta automat starea comenzii WooCommerce ca Finalizată pentru produsele virtuale. Aceste produse nu sunt tangibile sau descărcabile.
Acest lucru se datorează faptului că abonamentul poate să nu aibă o formă tangibilă, ci o dată de expirare. Dacă aveți de-a face cu produse descărcabile, nu ar trebui inclusă opțiunea Ramburs la livrare, ci ar trebui adăugată doar o condiție pentru a verifica dacă toate produsele din comandă sunt virtuale.
Acum că știți cum sunt setate stările comenzii, atunci iată un ghid detaliat despre cum să:
- Setați automat starea comenzii WooCommerce ca Finalizată, pe baza metodei de plată.
- Setați automat starea comenzii WooCommerce ca Finalizată pentru produsele virtuale.
a) Pași pentru a seta automat starea comenzii WooCommerce ca finalizată pe baza metodei de plată
Iată pașii simpli pe care trebuie să-i urmezi:
- Conectați-vă la site-ul dvs. WordPress și accesați tabloul de bord ca utilizator administrator.
- Din meniul Tablou de bord, faceți clic pe Meniu Aspect > Meniu Editor de teme . Când pagina Editor de teme este deschisă, căutați fișierul cu funcțiile temei unde vom adăuga funcția care va seta automat starea comenzii woocommerce ca fiind finalizată pe baza metodei de plată.
- Adăugați următorul cod în fișierul php :
/** Fragment pentru a seta automat starea comenzii woocommerce ca fiind finalizată pe baza metodei de plată */ add_action('woocommerce_order_status_changed', 'njengah_auto_complete_by_payment_method'); funcția njengah_auto_complete_by_payment_method($order_id) { dacă ( ! $id_comanda ) { întoarcere; } global $produs; $comanda = wc_get_order( $comanda_id); if ($comanda->date['status'] == 'procesare') { $metoda_plata=$comanda->get_metoda_plata(); dacă ($payment_method!="bacs") { $comanda->update_status('finalizat'); } } }
- Pentru a vedea rezultatul, mergeți la Tabloul de bord WordPress și faceți clic pe WooCommerce > Comenzi . Veți vedea că comanda a fost setată la Finalizat , după cum se arată mai jos:
Cum funcționează codul
În codul de mai sus, am folosit hook-ul woocommerce_order_status_changed pentru a apela o funcție atunci când starea unei comenzi este schimbată. Verifică dacă comanda are starea de procesare și o schimbă în Finalizată.
În mod implicit, WooCommerce are patru metode de plată implicite, care sunt Transfer bancar direct (bacs), plăți cu cecuri (cec), Ramburs la livrare (cod) și PayPal (PayPal). Cu toate acestea, trebuie să specificați metoda de plată pentru care setați condiția.
b) Pași pentru a seta automat starea comenzii WooCommerce ca finalizată pentru produsele virtuale
Iată pașii pe care trebuie să-i urmezi:
- Conectați-vă la site-ul dvs. WordPress și accesați tabloul de bord ca utilizator administrator.
- Din meniul Tablou de bord, faceți clic pe Meniu Aspect > Meniu Editor de teme . Când pagina Editor temă este deschisă, căutați fișierul cu funcțiile temei unde vom adăuga funcția care va seta automat starea comenzii woocommerce ca finalizată pentru produsele virtuale.
- Adăugați următorul cod în fișierul php :
/** Fragment pentru a seta automat starea comenzii woocommerce ca finalizată pentru produsele virtuale */ add_action('woocommerce_order_status_changed', 'njengah_auto_complete_virtual'); funcția njengah_auto_complete_virtual($order_id) { dacă ( ! $id_comanda ) { întoarcere; } global $produs; $comanda = wc_get_order( $comanda_id); if ($comanda->date['status'] == 'procesare') { $virtual_order = null; dacă ( count( $comanda->get_items() ) > 0 ) { foreach( $comanda->get_items() ca $articol ) { if ( 'line_item' == $item['tip'] ) { $_produs = $comanda->get_product_from_item( $articol ); dacă ( ! $_product->is_virtual() ) { // odată ce găsim un produs non-virtual, ieșim din buclă $virtual_order = false; pauză; } else { $virtual_order = adevărat; } } } } // dacă toate sunt produse virtuale, marcați ca finalizate if ( $virtual_order ) { $comanda->update_status('finalizat'); } } }
- Rezultatul va fi același ca și pentru primul exemplu, deoarece ordinea va fi setată automat ca Finalizat .
Cum funcționează codul
În codul de mai sus, am folosit același cârlig pentru a apela funcția njengah_auto_complete_virtual. După ce a verificat dacă este într-o stare de procesare, atunci codul trece prin fiecare articol în ordine pentru a vedea dacă există un produs virtual.
Line_item se referă la produs și numai produsele trebuie preluate unul câte unul pentru a verifica dacă sunt virtuale. Dacă nu există un produs virtual, starea comenzii nu va fi marcată ca finalizată.
Concluzie
În acest scurt tutorial, am împărtășit cum puteți seta automat starea comenzii WooCommerce ca Finalizată. Am făcut-o pe baza metodei de plată și pentru produse virtuale.
Cu toate acestea, în funcție de cerințele de care aveți nevoie pentru magazinul dvs., folosind primul fragment de cod, puteți adăuga mai multe condiții pentru a marca starea comenzii ca finalizată. De exemplu, dacă plata a fost efectuată, puteți marca starea comenzii ca finalizată chiar și pentru produse non-virtuale, adăugând o verificare a metodei de plată după ce verifică dacă este un produs virtual.
Cu toate acestea, prin acest fragment de cod, starea comenzii va fi setată ca Finalizată numai dacă toate produsele din comandă sunt produse virtuale. Sper că această postare a oferit o soluție pentru a aproba automat comenzile în WooCommerce.
Articole similare
- Cum să eliminați Descărcări Meniul Contul meu Pagina WooCommerce
- Cum să adăugați un câmp suplimentar în formularul de plată WooCommerce
- Cum să dezactivați opțiunea de expediere la o altă adresă
- Cum să obțineți metode de plată în WooCommerce » Exemplu de cod
- Cum să ascundeți butonul Adăugați în coș în WooCommerce
- Cum să adăugați o metodă de livrare personalizată în WooCommerce
- Ascundeți sau eliminați câmpul Cantitate din pagina produsului WooCommerce
- Cum să utilizați atributele produsului WooCommerce pas cu pas [Ghid complet]
- Cum să afișați produsele WooCommerce după categorie
- Cum să ascundeți câmpul Cod cupon WooCommerce
- Cum să puneți coșul și finalizarea comenzii WooCommerce pe o singură pagină
- Cum să redenumești mesajele de stare a comenzii în WooCommerce
- Cum se adaugă imaginea produsului Pagina de plată WooCommerce
- Cum să faci comentarii pentru comandă WooCommerce necesare
- Cum să adăugați categorii la produsele WooCommerce
- Cum să ascundeți toate produsele din pagina de magazin în WooCommerce
- Cum se dezactivează metoda de plată pentru o anumită categorie