Fluxul coșului de cumpărături
Pluginul Dentisity personalizează fluxul standard WooCommerce pentru a gestiona înregistrarea complexă la congres — un participant poate achiziționa simultan un abonament, mai multe workshop-uri și mai multe add-on-uri într-o singură sesiune.

Modul de umplere în masă a coșului
Problema rezolvată
WooCommerce implicit redirecționează utilizatorul spre coș după adăugarea unui produs marcat cu sold individually (vânzare individuală). Deoarece abonamentele Dentisity au această setare activată, adăugarea lor declanșa o redirecționare prematură, înainte ca workshop-urile și add-on-urile să fie adăugate.
Soluția: dentisity_bulk_cart_mode()
Funcția dentisity_bulk_cart_mode() dezactivează temporar redirecționarea automată spre coș în timpul sesiunii de umplere în masă. Aceasta permite adăugarea simultană a tuturor produselor selectate (pass + workshop-uri + add-on-uri) fără întreruperi.
Funcția este activată la începutul procesului de înregistrare și dezactivată automat după ce toate produsele au fost adăugate în coș.
Dacă participanți raportează că ajung la checkout cu coșul gol, aceasta poate indica o problemă cu dentisity_bulk_cart_mode(). Verificați că funcția este apelată corect și că nu există conflicte cu alte plugin-uri WooCommerce care modifică comportamentul coșului.
Validare server-side add-on
Restricțiile de eligibilitate pentru add-on-uri sunt validate pe server prin filtrul:
woocommerce_add_to_cart_validation
La fiecare request de adăugare în coș, pluginul verifică:
- Că produsul este un add-on Dentisity (
dentisity_is_addon=yes) - Că utilizatorul curent îndeplinește condițiile de eligibilitate (tip abonament, tip participant)
- Că stocul add-on-ului este disponibil
Dacă oricare condiție nu este îndeplinită, adăugarea în coș este blocată cu un mesaj de eroare corespunzător.

Validare workshop
Similar add-on-urilor, workshop-urile sunt validate la adăugarea în coș:
- Verificare că pass-ul utilizatorului este în lista de acces a workshop-ului
- Verificare capacitate disponibilă (stoc WooCommerce)
Sesiunea de înregistrare pas cu pas
1. Utilizatorul deschide formularul de înregistrare (shortcode front-end)
2. Selectează abonamentul dorit
→ Transient dentisity_pending_pass_$uid salvat
3. Selectează workshop-urile dorite
→ Transient dentisity_ws_draft_$uid actualizat
4. Selectează add-on-urile dorite
→ Transient dentisity_ao_draft_$uid actualizat
5. Apasă „Finalizează înregistrarea"
6. dentisity_bulk_cart_mode() activat
7. Pass + workshop-uri + add-on-uri adăugate în coș (fără redirecționare)
8. dentisity_bulk_cart_mode() dezactivat
9. Utilizatorul este redirecționat spre checkout WooCommerce
10. Plată procesată
11. La processing/completed: metadate actualizate, transienți șterși
Pentru depanarea problemelor cu fluxul coșului, activați logarea WooCommerce din WooCommerce → Setări → Avansat → Jurnale și urmăriți jurnalul în timp real în timp ce reproduceți problema.