Cum să aprobi automat comenzile în WooCommerce

Publicat: 2020-09-25

Aprobare automată comenzi WooCommerce Dacă 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:

  1. Conectați-vă la site-ul dvs. WordPress și accesați tabloul de bord ca utilizator administrator.
  2. 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ă.
  3. 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');

}

}

}
  1. 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: ordin aprobat

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

produs descărcabil: Aprobare automată comenzi WooCommerce Iată pașii pe care trebuie să-i urmezi:

  1. Conectați-vă la site-ul dvs. WordPress și accesați tabloul de bord ca utilizator administrator.
  2. 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.
  3. 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');

}

}

}

  1. 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