Skip to main content

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.

Diagrama fluxului de înregistrare: selectare pass → selectare workshop-uri → selectare add-on-uri → checkout

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

Coș gol la checkout

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ă:

  1. Că produsul este un add-on Dentisity (dentisity_is_addon=yes)
  2. Că utilizatorul curent îndeplinește condițiile de eligibilitate (tip abonament, tip participant)
  3. 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.

Mesajul de eroare WooCommerce afișat când un participant încearcă să adauge un add-on pentru care nu este eligibil

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
Debugging flux coș

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.