Shortcode [dentisity_shop_catalogue]
Shortcode-ul [dentisity_shop_catalogue] afișează catalogul interactiv de workshop-uri și add-on-uri disponibile la congres. Include carduri cu detalii complete, stare de disponibilitate, prețuri și posibilitate de adăugare directă în coș.
Inserare de bază
[dentisity_shop_catalogue]

Atribute disponibile
| Atribut | Valori | Implicit | Descriere |
|---|---|---|---|
hide_owned | yes / no | no | Ascunde cardurile pentru workshop-urile la care participantul este deja înscris sau add-on-urile deja cumpărate |
show_images | yes / no | din setări | Controlează afișarea imaginilor pe carduri; suprascrie setarea globală dacă e specificat |
Exemple
Ascunde cardurile deja achiziționate:
[dentisity_shop_catalogue hide_owned="yes"]
Combinate:
[dentisity_shop_catalogue hide_owned="yes" show_images="yes"]
Carduri workshop
Fiecare card de workshop afișează:
- Imagine — imaginea produsului (dacă
show_imageseste activ) - Titlu — denumirea workshop-ului
- Zi și interval orar — data și ora sesiunii
- Speaker principal — primul speaker și numărul celorlalți (ex. „Dr. Ionescu +2")
- Preț — prețul valului activ
- Locuri disponibile — număr de locuri rămase (sau „Epuizat")
- Stare — indicator vizual pentru suprapuneri de program sau locuri limitate
- Butoane — Detalii (deschide modalul) și Adaugă în coș / Înscris

Stări posibile pe cardul de workshop
| Stare | Afișaj |
|---|---|
| Disponibil | Buton activ „Adaugă" |
| Înscris | Buton dezactivat „Înscris" cu bifă |
| Epuizat | Pill „Epuizat" pe imagine, buton dezactivat |
| Suprapunere de program | Card marcat, detalii conflict vizibile în modal |
Carduri add-on
Fiecare card de add-on afișează:
- Imagine — imaginea produsului (dacă
show_imageseste activ) - Titlu — denumirea add-on-ului
- Preț — prețul valului activ
- Stare — indicator pentru disponibilitate limitată
- Butoane — Detalii (deschide modalul) și Adaugă în coș / Cumpărat / Inclus

Modalul de detalii
La apăsarea butonului Detalii se deschide modalul de detalii — un singur design modern, folosit consecvent în catalog, în formularul de înregistrare (pasul de workshop-uri) și în secțiunile trending. Descrierea acceptă HTML formatat (paragrafe, liste, linkuri, îngroșat).
Pe mobil — bottom sheet
Pe dispozitive mobile, modalul V2 apare ca un bottom sheet care alunecă de jos în sus. Poate fi închis prin:
- Tragere în jos (drag-to-dismiss)
- Butonul X din colțul din dreapta
- Butonul Back al telefonului (History API)
- Tasta Escape

Pe desktop — dialog centrat
Pe ecrane mari (≥ 640px), modalul V2 apare ca un dialog centrat cu intrare animată. Se închide prin click pe fundal, butonul X sau Escape.

Conținut afișat în modal
- Imagine hero — banner vizual al workshop-ului sau add-on-ului
- Titlu
- Metadate — zi, interval orar, locuri disponibile (pentru workshop-uri); preț (pentru add-on-uri)
- Speakeri — chipuri cu avatare și nume (animație cu stagger)
- Descriere completă — acceptă HTML formatat (paragrafe, liste, linkuri, îngroșat)
- Sponsori — logouri (pentru workshop-uri)
- Suprapuneri — conflicte de program detectate automat (pentru workshop-uri)
- Footer sticky — preț și buton de acțiune. În formularul de înregistrare, butonul selectează / deselectează workshop-ul direct din modal.
Modalul respectă prefers-reduced-motion: toate animațiile de transform sunt dezactivate, rămânând doar tranziții de opacitate.
Setări globale
Setările implicite ale catalogului se configurează din WordPress Admin → Dentisity → Setări → Catalog shop.

Afișare imagini
Activează sau dezactivează afișarea imaginilor pe carduri la nivel global. Poate fi suprascrisă per-inserare cu atributul show_images.
Pagina Shop Catalogue
Selectează pagina care conține acest shortcode. Este folosită de shortcode-urile trending: butoanele lor „Adaugă în coș" trimit aici, cu produsul pre-selectat. Dacă nu e setată, butoanele trending revin la comportamentul WooCommerce standard (?add-to-cart).
Pre-selectare din link (?dnt_add)
Catalogul acceptă parametrul de URL ?dnt_add=ID (unde ID este id-ul produsului). La încărcarea paginii:
- produsul corespunzător este pre-selectat în coș (dacă e disponibil pentru participant),
- cardul lui este derulat în vizor și evidențiat scurt,
- parametrul este eliminat din URL pentru a nu se re-adăuga la refresh.
Poți pre-selecta mai multe produse deodată printr-o listă separată prin virgulă: ?dnt_add=12,34,56.
Acesta este mecanismul folosit de shortcode-urile trending. De regulă nu construiești manual aceste linkuri — butoanele trending le generează automat pe baza paginii setate la Pagina Shop Catalogue.
Inserare în Gutenberg
- Deschide pagina unde vrei catalogul.
- Adaugă un bloc Shortcode.
- Introdu shortcode-ul dorit (ex.
[dentisity_shop_catalogue]). - Salvează sau publică pagina.
Actualizarea catalogului
Catalogul se actualizează automat pe baza produselor publicate și a setărilor active. Orice modificare a unui workshop sau add-on (preț, disponibilitate, speakeri) se reflectă imediat fără a fi necesară reinserarea shortcode-ului.
Dacă dezactivezi un produs WooCommerce, cardul dispare din catalog imediat. Verifică că modificarea este intenționată înainte de salvare.