Comenzi WooCommerce
Achizițiile de abonamente, workshop-uri și add-on-uri generează comenzi WooCommerce standard. Pluginul Dentisity extinde comenzile cu metadate suplimentare și actualizează profilul participantului la finalizarea comenzii.

Stările comenzilor relevante
| Stare | Semnificație în contextul Dentisity |
|---|---|
pending | Comanda a fost creată, plata nu a fost inițiată. Locul din workshop este rezervat: nu poate fi cumpărat a doua oară cât timp comanda e deschisă |
on-hold | Plata a fost autorizată dar nu capturată. Nu se acordă nimic |
processing | Plata a fost confirmată. Pluginul promovează imediat comanda la completed — o comandă Dentisity nu ar trebui să rămână în această stare |
completed | Singura stare în care se acordă accesul. Pass, workshopuri, add-on-uri, credite, apartenențe la grupuri și emailuri de confirmare |
cancelled | Plata a fost anulată. Accesul și creditele rămân neschimbate; se deschide un incident |
refunded | Comanda a fost rambursată. Accesul și creditele rămân neschimbate; se deschide un incident |
failed | Plata a eșuat. Dacă accesul fusese deja acordat, se deschide un incident critic |
Accesul se acordă la tranziția în completed, nu în processing. Statusul completed este echivalentul unei plăți confirmate în tot pluginul — de aceea finalizarea manuală a unei comenzi neplătite acordă integral accesul.
Plățile cu cardul prin BT iPay ajung în processing, iar pluginul le promovează la completed în același request. Dacă o comandă Dentisity rămâne în processing, accesul nu a fost acordat și se deschide un incident critic.
Ce se întâmplă la finalizarea unei comenzi
La tranziția în completed, pluginul execută în ordine fixă:
- Pass — apartenența la grupul congresului și la grupul pass-ului,
dentisity_pass_product_id,dentisity_pass_order_id, creditele incluse, emailul de confirmare - Add-on-urile incluse gratuit în pass — adăugate în comandă ca linii de 0 lei și acordate
- Workshopuri — apartenența la grup,
dentisity_ws_order_<id>, emailuri de confirmare și remindere; dacă linia a fost plătită cu un credit, creditul se consumă - Add-on-uri cumpărate — apartenența la grup și
dentisity_addon_order_<id> - Contorul de tranșă de preț (
dentisity_increment_wave_sold) pentru fiecare produs - Note în comandă și în dosarul participantului, plus data plății dacă lipsea
Operațiunea este protejată de meta _dentisity_completion_processed_at și de chei unice în registrul de credite: rularea repetată nu poate dubla nici accesul, nici creditele.
Transienți de stare draft
În timpul procesului de înregistrare (înainte de finalizarea plății), pluginul folosește transienți WordPress pentru a menține starea temporară:
| Transient | Conținut |
|---|---|
dentisity_pending_pass_$uid | ID-ul pass-ului selectat de utilizator |
dentisity_ws_draft_$uid | Workshop-urile selectate (înainte de plată) |
dentisity_ao_draft_$uid | Add-on-urile selectate (înainte de plată) |
Transienții au o durată de viață limitată și sunt șterși automat la finalizarea comenzii. Dacă un utilizator abandonează procesul de înregistrare, transienții expiră natural.
Vizualizarea detaliilor unei comenzi
- Mergeți la WooCommerce → Comenzi
- Apăsați pe numărul comenzii pentru a o deschide
- Secțiunea Articole comandă listează produsele Dentisity achiziționate

Anulare și rambursare
Pluginul nu retrage nimic automat la anularea sau rambursarea unei comenzi. Nici accesul, nici creditele.
Motivul este că decizia nu îi aparține: o rambursare poate însemna „anulăm achiziția" sau „participantul pierde banii și locul rămâne al lui", iar numai un om știe care dintre ele. În plus, calea poate fi declanșată de procesatorul de plăți — o notificare de anulare de la bancă ajunge în WooCommerce ca anulare de comandă, fără ca nimeni din echipă să fi decis ceva.
Ce se întâmplă în schimb:
| Ce se scrie | Unde |
|---|---|
| Notă permanentă | Dosarul participantului |
| Notă în comandă | Comanda WooCommerce |
| Incident deschis | Dentisity → Incidente |
| Doar dacă accesul fusese deja acordat |
Incidentul rămâne deschis până când cineva consemnează ce s-a decis. Din dosarul participantului, secțiunea Comenzi WooCommerce, fiecare comandă anulată sau rambursată oferă două acțiuni independente:
- Restituie creditul — pune creditele consumate de comandă înapoi în balanța participantului, fără a atinge înscrierile
- Retrage accesul — deschide dialogul de confirmare cu fiecare workshop și add-on pe un rând separat, pornind toate pe „păstrează". Pass-ul se retrage doar dacă bifați explicit
O rambursare parțială se raportează la fel ca una integrală, iar rambursările create de modulul BT iPay nu conțin linii de produs — deci nu se poate deduce automat ce anume a fost returnat. Verificați comanda înainte de a retrage acces.
Incidente de comandă
Ecranul Dentisity → Incidente adună evenimentele de comandă pe care pluginul le semnalează fără să acționeze. Numărul de incidente deschise apare ca insignă în meniu.
| Tip | Gravitate | Când apare |
|---|---|---|
| Plată anulată după acordarea accesului | Critic, cu email | Comanda a trecut din completed în cancelled, failed sau refunded după ce accesul fusese acordat |
| Comandă Dentisity fără cont asociat | Critic, cu email | Comanda a fost plătită dar nu are un cont de utilizator. Nu se acordă și nu se leagă automat nimic |
| Comandă plătită rămasă neconfirmată | Critic, cu email | Comanda a rămas în processing fără să fie promovată, deci accesul nu s-a acordat |
| Comandă anulată | Atenționare | Anulare fără ca accesul să fi fost acordat |
| Comandă rambursată | Atenționare | Rambursare fără ca accesul să fi fost acordat |
Adresa pentru emailurile critice se configurează în Dentisity → Setări; lăsată goală, se folosește adresa de administrare WordPress. Anulările și rambursările obișnuite nu generează email, ca cele critice să nu se piardă în zgomot.
Fiecare incident este deduplicat: notificările repetate ale procesatorului de plăți pentru același eveniment produc un singur rând.