Autentificare
Începe

Documentație Easy Digital Downloads

Documentație, Materiale de Referință și Tutoriale pentru Easy Digital Downloads 

Adăugarea de cod personalizat după finalizarea unei comenzi

În Easy Digital Downloads 3.2.0, acțiunile după finalizarea comenzii au fost introduse pentru a înlocui acțiunile după plată depreciate. Acest hook oferă dezvoltatorilor o modalitate de a procesa acțiuni intensive atunci când o plată se finalizează, fără a afecta viteza și performanța utilizatorului final la finalizarea achiziției. Acesta este un ghid despre cum să adăugați o acțiune după finalizarea comenzii.

Introducere în Acțiunile după finalizarea comenzii

Dacă doriți să efectuați acțiuni suplimentare atunci când o comandă este marcată ca „finalizată”, sunteți încurajat să utilizați hook-ul edd_after_order_actions în locul hook-ului edd_complete_purchase. Care este diferența dintre acești doi hook-uri?

  • edd_complete_purchase – Rulează în timpul procesului de achiziție, după ce utilizatorul face clic pe butonul „Finalizează achiziția” și înainte ca pagina „Confirmarea achiziției” să fie încărcată. Acest hook ar trebui utilizat pentru sarcini „critice”, deoarece va afecta timpul perceput de utilizator pentru a finaliza achiziția. Exemple de utilizare a acestui hook ar trebui să fie sarcini precum crearea cheilor de licență, generarea abonamentelor sau orice altceva ce utilizatorul trebuie să aibă vizibil pe pagina de chitanță.
  • edd_after_order_actions – Rulează aproximativ 30 de secunde după finalizarea achiziției, prin intermediul sistemului WP_Cron. Acest hook ar trebui utilizat pentru a efectua apeluri API suplimentare, interogări costisitoare ale bazei de date și sarcini care ar trebui considerate non-critice pentru ca utilizatorul să își finalizeze achiziția. Exemple excelente sunt adăugarea utilizatorilor la listele de corespondență, calcularea statisticilor pentru un utilizator, actualizarea cache-urilor etc.

Ce argumente sunt transmise hook-ului?

Hook-ul edd_after_order_actions trimite trei argumente:

  • ID-ul comenzii ca întreg
  • Obiectul EDD\Orders\Order
  • Obiectul EDD_Customer

Ce stări ale comenzii sunt incluse în „finalizată”?

Easy Digital Downloads folosește starea complete pentru a marca o comandă ca finalizată. Dacă integrați sau utilizați extensia Recurring Payments, starea edd_subscription este, de asemenea, considerată o comandă „finalizată”. Dacă doriți să rulați acțiunea doar pentru achiziția inițială (și să ignorați reînnoirile abonamentelor), va trebui să verificați $order->status pentru o valoare de complete înainte de a continua cu integrarea dvs.

De ce necesită WP_Cron?

WP_Cron este un proces de fundal pe care site-ul dvs. WordPress îl folosește pentru a finaliza sarcini fără a afecta experiența utilizatorului care vizualizează site-ul dvs. Când se generează trafic pe site-ul dvs., înainte ca pagina să se termine de încărcat, WordPress determină dacă există sarcini de fundal care trebuie finalizate. Dacă există, va porni un proces de fundal pentru a gestiona aceste sarcini în așteptare.

Ce se întâmplă dacă gazda mea dezactivează WP_Cron?

Deși facem tot posibilul să detectăm dacă WP_Cron funcționează, poate exista un caz în care nu putem detecta corect acest lucru. Dacă gazda sau serverul dvs. are WP_Cron dezactivat sau modificat pentru a rula la o frecvență predeterminată, poate fi necesar să dezactivați manual această funcție. Există un filtru dacă alegeți să nu utilizați cârligele de acțiuni ulterioare, caz în care EDD va reveni și va efectua acțiunile la momentul finalizării și va evita procesul întârziat.

NOTĂ: Deoarece acest sistem de acțiuni după comandă depinde de WP_Cron, nu ar trebui utilizat pentru lucruri considerate „critice pentru misiune”. Este pur și simplu o modalitate de a descărca integrări costisitoare cu API-uri și seturi mari de date care nu afectează direct datele de achiziție.

Puncte cheie despre acțiunile după comandă

  • Declanșat prin WP_Cron
  • Poate fi dezactivat prin filtru (edd_use_after_payment_actions)
  • În mod implicit, este programat pentru 30 de secunde după achiziție, dar poate fi modificat printr-un filtru.
  • Tabela bazei de date a comenzii conține o coloană pentru timpul în care au fost finalizate acțiunile.

Există un exemplu?

Am creat un „șablon” pentru integrarea cu cârligul edd_after_order_actions în biblioteca noastră WP Code. Poate fi vizualizat aici:

Migrarea codului dvs. de la edd_after_payment_actions

Dacă ați integrat anterior cu cârligul edd_after_payment_actions, vestea bună este că migrarea la acest nou cârlig, mai eficient, este destul de ușoară.

Principala diferență este schimbarea celui de-al doilea parametru. În loc să trimiteți plata ca un obiect EDD_Payment, va trimite un obiect Order.

A fost util acest articol?

Începeți să vindeți astăzi!

Alăturați-vă peste 50.000 de proprietari de magazine inteligente și începeți să folosiți cel mai ușor mod de a vinde produse digitale cu WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]