Version 1.0 – März 2026
Für: Villa Wellentanz, Wila
Inhaltsverzeichnis
- 2.1 Dashboard
- 2.2 Veranstaltungen verwalten
- 2.3 Kategorien
- 2.4 Buchungen
- 2.5 Warteliste
- 2.6 Kurse
- 2.7 Personen (Besucherverzeichnis)
- 2.8 Einstellungen
- 3.1 Programmseite
- 3.2 Event-Detailseite
- 3.3 Buchungsablauf
- 3.4 Kurs-Anmeldung
- 3.5 Warteliste
- 3.6 Mein Konto
1. Überblick
Die VWT Event Suite ist ein modulares WordPress-Plugin-System für die Verwaltung von Veranstaltungen, Kursen, Buchungen und Tickets. Sie besteht aus zwei Kern-Plugins:
- vwt-core – Besucherverwaltung, Authentifizierung, Einstellungen, gemeinsame Bibliotheken
- vwt-events – Eventmanagement, Buchungen, Tickets, Kurse, Warteliste, Zahlungen, Scanner
Die Suite arbeitet mit einem eigenen Besuchersystem unabhängig von WordPress-Benutzern. Besucher (Konzertgäste, Kursteilnehmer) registrieren sich im Frontend und haben keinen Zugang zum WordPress-Backend.
Zwei Benutzerwelten
| Bereich | Zugang | Zweck |
|---|---|---|
| Administratoren | WordPress-Backend (wp-admin) | Events/Kurse verwalten, Buchungen einsehen, Einstellungen |
| Besucher | Frontend-Seite /mein-konto/ | Tickets buchen, Profil pflegen, Kursanmeldungen |
Eventtypen
Die Suite unterscheidet folgende Eventtypen:
- Veranstaltung – Einzelveranstaltung mit Tickets, Kapazität und optionaler Warteliste (z.B. Konzert, Lesung)
- Kurs-Serie – Wiederkehrende Kurstermine mit Wiederholungsmuster und individuellen Anmeldungen pro Termin
Ticket-Preistypen
- Festpreis – Fester Betrag in CHF, Online-Zahlung erforderlich
- Gratis – Kostenlos, keine Zahlung
- Kollekte – Kostenlose Online-Buchung, Kollekte wird vor Ort eingesammelt
2. Administrationsbereich
Nach dem Login ins WordPress-Backend erscheint im linken Menü der Haupteintrag «Villa Wellentanz» (oder der in den Einstellungen konfigurierte Name). Darunter befinden sich alle Verwaltungsbereiche.
2.1 Dashboard
Das Dashboard gibt eine Gesamtübersicht über die wichtigsten Kennzahlen und Aktivitäten.
KPI-Streifen (oberer Bereich):
Vier Kennzahlen-Kacheln zeigen auf einen Blick die wichtigsten Metriken des laufenden Monats im Vergleich zum Vormonat:
- Buchungen – Anzahl Buchungen im aktuellen Monat (mit Trendpfeil ↑/↓)
- Tickets – Anzahl gebuchter Tickets (Summe aller Einzeltickets)
- Warteliste – Aktive Wartelisten-Einträge und Anzahl betroffener Events
- Personen – Gesamtzahl der Besucher (registrierte + Gäste)
Zwei-Spalten-Layout:
- Linke Spalte: Nächste Veranstaltungen mit Datum, Titel und Auslastungsanzeige (gebuchte Plätze / Kapazität). Ein Klick auf ein Event führt zur Bearbeitung.
- Rechte Spalte: Letzte Buchungen mit Name, Event, Datum und Status. Ein Klick auf eine Buchung öffnet das Besucherprofil.
Testmodus-Hinweis: Wenn der Testmodus aktiv ist, wird ein orangefarbenes Badge «⚠ Testmodus aktiv» angezeigt.
2.2 Veranstaltungen verwalten
Event-Liste
Unter Veranstaltungen werden alle Events in einer Tabelle angezeigt. Die Spalten umfassen Bild, Titel, Datum, Typ, Status und Aktionen.
Aktionen pro Event:
- Bearbeiten – Event-Formular öffnen
- Duplizieren – Erstellt eine Kopie als Entwurf (praktisch für wiederkehrende Formate)
- Löschen – Event dauerhaft entfernen (nur möglich bei Events ohne Buchungen)
Neues Event erstellen: Klick auf «Erstellen» öffnet das Event-Formular.
Event-Formular
Das Event-Formular ist in zwei Spalten aufgeteilt:
Linke Spalte (Hauptinhalt):
- Titel – Pflichtfeld, wird auf der Detailseite, im Programm und auf Tickets angezeigt
- Beschreibung – Freitextfeld mit WordPress-Editor für die ausführliche Beschreibung
- Event-Bilder – Zwei quadratische Bilder (min. 800×800 px). Bild 1 dient als Hauptbild in der Programmübersicht und auf Tickets. Bild 2 ergänzt die Detailseite und den Flyer.
- SEO-Einstellungen (aufklappbar) – SEO-Titel und SEO-Beschreibung. Der Button «SEO generieren (KI)» erstellt automatisch Vorschläge auf Basis des Event-Inhalts (erfordert einen Anthropic API-Key in den Einstellungen).
- Vereinbarungen Künstler (aufklappbar) – Internes Notizfeld für Absprachen zu Gage, Anreise, Technik etc. Diese Informationen sind nur im Admin sichtbar.
Rechte Spalte (Metadaten):
- Ticket-Arten – Hier werden pro Event die verfügbaren Ticket-Typen definiert (Name, Preistyp, Preis, Limit, Verfügbarkeitszeitraum, maximale Tickets pro Buchung). Über «Ticket-Art hinzufügen» können beliebig viele Typen angelegt werden.
- Veröffentlichung – Status des Events: Entwurf, Veröffentlicht, Abgesagt, Vergangen
- Datum & Zeit – Eventdatum (Pflicht), Beginn, Ende, Türöffnung
- Kategorie – Zuordnung zu einer Event-Kategorie (z.B. Konzert, Kurs, Lesung)
- Eventtyp – Veranstaltung oder Kurs-Serie. Bei Wahl von «Kurs-Serie» erscheint das Kurs-Panel (siehe Abschnitt 2.6).
- Kapazität – Maximale Gesamtkapazität des Events
- Sichtbarkeit – Öffentlich oder Privat (private Events erscheinen nicht im Programm)
Event speichern: Der Button «Event speichern» (oder «Event erstellen» bei neuen Events) speichert alle Angaben. Das Event ist erst nach Setzen des Status auf «Veröffentlicht» im Frontend sichtbar.
CSV-Import: Über die Event-Liste kann pro Event ein CSV-Import für Buchungen gestartet werden (z.B. für die Migration bestehender Reservierungen).
2.3 Kategorien
Unter Kategorien werden Event-Kategorien verwaltet. Jede Kategorie hat:
- Name – Anzeigename (z.B. «Konzert», «Workshop», «Lesung»)
- Slug – URL-taugliche Kurzform (wird automatisch generiert)
- Farbe – Farbcode für das Kategorie-Badge auf der Event-Detailseite
- Sortierung – Reihenfolge in der Filterleiste
Kategorien erscheinen als farbige Badges auf den Event-Detailseiten und als Filteroptionen auf der Programmseite.
2.4 Buchungen
Die Buchungsübersicht zeigt alle Buchungen in einer filterbaren Tabelle.
Spalten:
- Buchungscode (z.B. VWT-A1B2C3D4)
- Besucher (Name, verlinkt zum Besucherprofil)
- Event
- Ticket-Art
- Anzahl
- Status
- Zahlungsart
- Datum
Buchungsstatus:
| Status | Bedeutung |
|---|---|
| Bestätigt | Buchung gültig, Ticket wurde versandt |
| Ausstehend | Zahlung ausstehend oder manuelle Bestätigung nötig |
| Warte auf Bestätigung | E-Mail-Bestätigung bei Gast-Buchung noch ausstehend |
| Storniert | Buchung wurde storniert, Plätze wieder freigegeben |
| Eingecheckt | Ticket wurde am Einlass gescannt |
Admin-Buchung erstellen: Über den Button «Neue Buchung» kann der Admin eine Buchung manuell erfassen – inklusive Auswahl von Event, Ticket-Art, Besucher (bestehend oder neu) und Anzahl. Dies ist nützlich für telefonische Reservierungen oder Sondergäste.
Kurs-Anmeldungen: Im Buchungsbereich gibt es einen separaten Tab für Kurs-Anmeldungen mit den Aktionen «Abmelden» und «Reaktivieren».
2.5 Warteliste
Die Warteliste zeigt alle aktiven Wartelisten-Einträge, gruppiert nach Event.
Anzeige pro Eintrag:
- Position auf der Warteliste
- Name und E-Mail des Besuchers
- Status (wartend, angeboten, abgelaufen, bestätigt)
- Zeitstempel
Admin-Aktionen:
- Platz anbieten – Dem nächsten Wartenden wird ein Platz angeboten (E-Mail mit Bestätigungslink)
- Direkt buchen – Admin bucht den Wartenden direkt, auch bei voller Kapazität (Überbuchung)
- Von Warteliste entfernen – Eintrag löschen
Automatisches Verhalten:
Wenn ein Platz frei wird (z.B. durch Stornierung), wird dem nächsten Wartenden automatisch ein Angebot per E-Mail zugesandt. Der Wartende hat dann eine konfigurierbare Frist (Standard: 24 Stunden), um den Platz zu bestätigen. Läuft die Frist ab, wird das Angebot dem Nächsten weitergereicht.
2.6 Kurse
Kurse werden als spezielle Eventtypen behandelt. Unter Kurse findet man die Kurs-Serie-Übersicht.
Kurs erstellen: Ein Kurs wird über das Event-Formular erstellt, indem der Eventtyp auf «Kurs-Serie» gesetzt wird. Daraufhin erscheint das Kurs-Panel mit zusätzlichen Einstellungen:
- Plätze pro Termin – Kapazität je Einzeltermin (leer = unbegrenzt)
- Anmeldefrist – Stunden vor Kursbeginn, bis wann eine Anmeldung möglich ist (Standard: 24h)
- Preis-Typ – Gratis, Kollekte oder Festpreis (alternativ über Ticket-Arten steuerbar)
- Wiederholungsmuster – Wöchentlich, 14-täglich oder monatlich
- Wochentag – An welchem Tag der Kurs stattfindet
- Startdatum / Enddatum – Zeitraum der Serie
- Termine generieren – Button zum automatischen Erstellen der Einzeltermine basierend auf dem Muster
Terminverwaltung:
Nach dem Generieren erscheint eine Liste aller Einzeltermine. Einzelne Termine können ausgeschlossen werden (z.B. Ferien, Feiertage) mit Angabe eines Grundes. Ausgeschlossene Termine werden durchgestrichen dargestellt.
Kurs-Anmeldungen im Admin:
Unter den Buchungen gibt es einen separaten Bereich für Kurs-Anmeldungen. Pro Termin sieht der Admin die Teilnehmerliste. Anmeldungen können storniert und reaktiviert werden.
2.7 Personen
Das Besucherverzeichnis (Menüpunkt «Personen») listet alle registrierten Besucher und Gäste.
Suchfunktion: Über das Suchfeld können Besucher nach Name oder E-Mail gefunden werden.
Besucherprofil im Admin: Ein Klick auf einen Besucher zeigt das Detailprofil:
- Stammdaten (Vorname, Name, E-Mail, Telefon, Adresse)
- Registrierungsdatum
- Alle Buchungen des Besuchers
- Kurs-Anmeldungen
- Wartelisten-Einträge
- Newsletter-Status
- Login-Sperre (falls Rate-Limiting ausgelöst wurde)
Aktionen:
- Stammdaten bearbeiten
- Login-Sperre aufheben
- Besucher löschen (DSGVO-konform mit Löschung aller zugehörigen Daten)
2.8 Einstellungen
Die Einstellungen sind in mehrere Tabs unterteilt:
Tab: Veranstalter
Zentrale Angaben zum Veranstaltungsort, die in allen Modulen verwendet werden:
- Name, Tagline/Claim
- Adresse (Strasse, PLZ, Ort, Land)
- Telefon, E-Mail, Website-URL
- Logo (Bild-Upload über die WordPress-Mediathek)
- Event-URL-Format (Platzhalter:
{YYYYMMDD},{YYYY},{MM},{DD}) - Standard-Kapazität (Vorgabewert für neue Events)
- Standard-Stornofrist (in Stunden vor Eventbeginn)
- AGB-Seite (URL zur AGB-Seite, wird in Formularen angezeigt)
- Anthropic API-Key (für KI-gestützte SEO-Vorschläge)
Tab: Farben
Farbschema für Frontend und E-Mails:
- Primärfarbe (Buttons, Links, Akzente)
- Akzentfarbe
- Hintergrundfarbe
Tab: Tickets
Einstellungen zur Ticketverwaltung:
- Maximale Tickets pro Buchung (globaler Standardwert)
Tab: Zahlung
Konfiguration der Zahlungsanbieter:
- Abendkasse – Immer aktiviert (Reservierung online, Bezahlung vor Ort)
- Payrexx – Online-Zahlung (Instance-Name, API-Key, Prefix). Payrexx bündelt TWINT, Kreditkarten und weitere Zahlungsmittel.
- PayPal – Online-Zahlung (Client-ID, Secret, Sandbox-Modus)
Tab: E-Mails
Konfiguration des E-Mail-Versands:
- Absender-Name und Absender-E-Mail
- E-Mail-Vorlagen (Buchungsbestätigung, Erinnerung, Warteliste, Stornierung, Kurs-Erinnerung)
Tab: Sicherheit
Sicherheitseinstellungen:
- Rate-Limiting für Besucher-Login (Anzahl Versuche, Sperrdauer)
- Session-Laufzeit
Tab: Testmodus
Der Testmodus ermöglicht das Testen der gesamten Suite, ohne echte Buchungen oder E-Mails auszulösen:
- Testmodus aktivieren/deaktivieren
- E-Mail-Umleitung (alle E-Mails gehen an eine Test-Adresse)
- Hinweis-Banner im Frontend und Admin
Tab: Wartung
Wartungsfunktionen für die Datenbank:
- Tabellen-Status und Zähler (Buchungen, Zahlungen, Warteliste, Kurs-Anmeldungen)
- Bereinigungsfunktionen
Tab: Brevo
Synchronisation mit Brevo (Sendinblue) für Newsletter-Kontakte. Kontakte mit Newsletter-Opt-in werden automatisch mit der konfigurierten Brevo-Liste synchronisiert.
3. Besucherbereich
Der Besucherbereich umfasst alle öffentlich zugänglichen Seiten.
3.1 Programmseite
Die Programmseite zeigt alle kommenden Veranstaltungen in chronologischer Reihenfolge. Sie wird über den Shortcode
Ein spannender Abend für Neugierige, Skeptische und Entdecker:innenKünstliche Intelligenz ist längst im Alltag angekommen. Sie schreibt Texte, beantwortet Fragen, erstellt…
Gönn dir eine Stunde bewusste Bewegung, Atem und Entspannung in ruhiger, persönlicher Atmosphäre in der Villa Wellentanz. Die Lektion ist…
«Benny’s from Heaven» ist bewusst doppeldeutig: eine Anspielung auf den Jazzsong und den Film «Pennies from Heaven» mit Bing Crosby…
Gönn dir eine Stunde bewusste Bewegung, Atem und Entspannung in ruhiger, persönlicher Atmosphäre in der Villa Wellentanz. Die Lektion ist…
Entspannt in den Samstag starten – mit Bewegung, Atem und einem feinen Frühstück.Wir laden dich herzlich zum Yoga-Frühstück in der…
Gönn dir eine Stunde bewusste Bewegung, Atem und Entspannung in ruhiger, persönlicher Atmosphäre in der Villa Wellentanz. Die Lektion ist…
Gönn dir eine Stunde bewusste Bewegung, Atem und Entspannung in ruhiger, persönlicher Atmosphäre in der Villa Wellentanz. Die Lektion ist…
Vier Musiker, unzählige Klangwelten: Walti Grimm und seine Musiker laden zu einem unvergesslichen Konzertabend ein, der die Grenzen zwischen Genres,…
Wenn Oldtime-Jazz nach New Orleans klingt, aber aus dem Zürcher Oberland kommt, dann sind die Highlanders Jazzband auf der Bühne:…
Clara Schumann – Robert Schumann – Johannes BrahmsEin musikalisch-literarischer Abend mit Klavierwerken, Briefen und Tagebuchauszügen Drei Namen, drei Stimmen, ein emotionales…
Der zweifache Gewinner des German Blues Award, Thomas Scheytt, bringt die Klassiker des Blues und Boogie Woogie auf die Bühne…
on Träumen und StürmenZum wiederholten Mal sind Thomas Grossenbacher (Violoncello) und Yulia Miloslavskaya (Klavier) in der Villa Wellentanz zu Gast.… eingebunden.
Vortrag
Künstliche Intelligenz verstehen und erleben
Kurs
Yoga am Donnerstagabend
Konzert
BENNY’S FROM HEAVEN - Jazz und Swing der Extraklasse
Kurs
Yoga am Donnerstagabend
Kurs
Yoga Frühstück
Kurs
Yoga am Donnerstagabend
Kurs
Yoga am Donnerstagabend
Konzert
Walter Grimm & Freunde – Musikalischer Streifzug durch Länder, Stile und Zeiten
Konzert
Highlanders Jazzband live
Konzert
Im Dreieck
Konzert
Blues & Boogie Woogie auf höchstem Niveau
Konzert
Thomas Grossenbacher, Violoncello & Yulia Miloslavskaya, Piano
Funktionen:
- Kategorie-Filter (z.B. nur Konzerte anzeigen)
- Event-Karten mit Bild 1, Titel, Datum und Uhrzeit
- «Ausverkauft / Warteliste»-Badge bei ausgebuchten Events
- Verlinkung zur Event-Detailseite
- Paginierung bei vielen Events
Saison-Programm: Alternativ gibt es eine kompakte Saison-Übersicht via
, die alle Events der aktuellen Saison (September–Juli) mit kleinen Thumbnails und Datum auflistet.
Archiv: Vergangene Events können über
19 vergangene Veranstaltungen in einer separaten Archiv-Ansicht angezeigt werden.März 2026
Februar 2026
Januar 2026
November 2025
Juni 2025
Januar 2025
Oktober 2024
September 2024
3.2 Event-Detailseite
Jedes veröffentlichte Event hat eine eigene Detailseite unter der konfigurierten URL (z.B. /events/20260328/).
Inhalt der Detailseite:
- Kategorie-Badge (farbig)
- Titel
- Datum und Uhrzeiten (Türöffnung, Beginn, Ende)
- Beschreibung
- Beide Event-Bilder
- Ticket-Informationen (verfügbare Ticket-Arten, Preise, Restplätze)
- Buchungsformular oder Wartelisten-Formular (bei Ausverkauft)
- iCal-Download-Link (Termin zum Kalender hinzufügen)
Status-Banner:
- Bei abgesagten Events: rotes Banner «Diese Veranstaltung wurde abgesagt»
- Bei vergangenen Events: graues Banner «Diese Veranstaltung hat bereits stattgefunden»
- Nach erfolgreicher Buchung: grünes Banner mit Buchungscode
- Nach erfolgreicher Zahlung: Bestätigungsmeldung
3.3 Buchungsablauf
Der Buchungsablauf hängt davon ab, ob der Besucher eingeloggt ist oder nicht.
Eingeloggter Besucher
- Ticket-Art und Anzahl wählen – Gewünschte Ticket-Art auswählen und Anzahl festlegen
- Zahlungsart wählen (nur bei Festpreis-Tickets) – Abendkasse, TWINT/Kreditkarte (via Payrexx) oder PayPal
- Buchen klicken – Buchung wird erstellt
- Bestätigung – Buchungsbestätigung mit Buchungscode erscheint auf der Seite. Bestätigungs-E-Mail mit PDF-Ticket wird versandt.
Nicht eingeloggter Besucher / Gast
- Ticket-Art und Anzahl wählen
- Anmelde-Optionen: Der Besucher kann sich anmelden (Login), registrieren oder als Gast buchen
- Gast-Buchung: Vorname, Name und E-Mail eingeben (Telefon optional)
- Zahlungsart wählen (bei Festpreis)
- E-Mail bestätigen – Bei Gast-Buchungen muss die E-Mail-Adresse zunächst bestätigt werden. Der Gast erhält eine E-Mail mit Bestätigungslink.
- Nach Bestätigung: Ticket-PDF wird per E-Mail zugesandt. In der Bestätigungs-E-Mail befindet sich auch ein Link zur Kontoerstellung.
Bestehende Buchungen
Wenn ein eingeloggter Besucher die Event-Seite eines bereits gebuchten Events besucht, werden seine bestehenden Buchungen oberhalb des Buchungsformulars angezeigt (Ticket-Art, Anzahl, Status). Bei Gratis- und Kollekte-Tickets kann der Besucher hier innerhalb der Stornierungsfrist stornieren. Bei kostenpflichtigen Tickets wird der Hinweis «Stornierung nur über den Veranstalter» angezeigt.
Zahlungsablauf (Festpreis-Tickets)
- Abendkasse: Buchung wird sofort als «Bestätigt» gespeichert. Bezahlung erfolgt vor Ort.
- Payrexx (TWINT/Kreditkarte): Weiterleitung zur Payrexx-Zahlungsseite. Nach erfolgreicher Zahlung wird die Buchung automatisch bestätigt und das Ticket per E-Mail versandt.
- PayPal: Weiterleitung zur PayPal-Zahlungsseite. Nach Abschluss wird die Buchung bestätigt.
Bei abgebrochener oder fehlgeschlagener Zahlung wird der Besucher zur Event-Seite zurückgeleitet mit entsprechender Fehlermeldung. Die Buchung bleibt als «Ausstehend» bestehen und kann storniert werden.
3.4 Kurs-Anmeldung
Kurs-Serien zeigen auf der Event-Detailseite die nächsten Termine in einer übersichtlichen Liste.
Pro Termin wird angezeigt:
- Wochentag und Datum
- Uhrzeit (Beginn – Ende)
- Verfügbare Plätze
- Anmelde-Button (oder «Ausgebucht» wenn voll)
- «Angemeldet»-Badge falls bereits angemeldet
Anmeldung:
- Eingeloggte Besucher klicken einfach auf «Anmelden» beim gewünschten Termin.
- Nicht eingeloggte Besucher können sich anmelden, registrieren oder als Gast anmelden (analog zur Event-Buchung).
- Bei Kursen mit Ticket-Arten wird vorab die gewünschte Ticket-Art gewählt.
- Nach der Anmeldung wird eine Bestätigungs-E-Mail mit PDF-Ticket versandt.
Abmeldung: Im Besucher-Profil unter «Meine Tickets» können Kurs-Anmeldungen innerhalb der Anmeldefrist storniert werden.
3.5 Warteliste
Wenn ein Event ausverkauft ist, wird anstelle des Buchungsformulars das Wartelisten-Formular angezeigt.
Auf die Warteliste setzen:
- Eingeloggte Besucher klicken auf «Auf die Warteliste setzen»
- Gäste geben Name und E-Mail ein und bestätigen per E-Mail-Link
- Die aktuelle Warteposition und die Anzahl der bereits Wartenden werden angezeigt
Wenn ein Platz frei wird:
- Der Besucher erhält eine E-Mail mit einem Bestätigungslink
- Über den Link gelangt er auf die Event-Seite, wo der Platz reserviert ist
- Der Besucher muss innerhalb der konfigurierten Frist bestätigen
- Nach Ablauf der Frist verfällt das Angebot und der nächste Wartende wird benachrichtigt
Von der Warteliste abmelden: Direkt auf der Event-Seite (wenn eingeloggt und auf der Warteliste stehend) über den Button «Von Warteliste abmelden».
3.6 Mein Konto
Die Seite /mein-konto/ dient als Einstiegspunkt für Besucher. Je nach Status wird angezeigt:
Nicht eingeloggt: Login / Registrierung
Login-Tab:
- E-Mail-Adresse und Passwort eingeben
- Link «Passwort vergessen?» für den Passwort-Reset per E-Mail
Registrierung-Tab:
- Vorname, Name, E-Mail (Pflicht), Telefon (Pflicht)
- Passwort und Passwort-Bestätigung (min. 8 Zeichen)
- Newsletter-Opt-in (Checkbox)
- AGB-Zustimmung
- Nach der Registrierung wird eine Bestätigungs-E-Mail versandt
Gast-Konto erstellen:
Gäste, die über die Buchungs-E-Mail den Link «Konto erstellen» anklicken, gelangen auf eine spezielle Seite, auf der sie nur noch ein Passwort setzen müssen. Alle bestehenden Gastdaten und Buchungen werden automatisch übernommen.
Eingeloggt: Profil
Das Besucher-Profil hat drei Tabs:
Tab «Meine Tickets»:
- Kommende Veranstaltungen mit aktiven Buchungen (Ticket-Art, Anzahl, Status, Storno-Button bei Gratis/Kollekte)
- Kurs-Anmeldungen (aktuelle und vergangene Termine)
- Wartelisten-Einträge
- Ticket-Download (PDF mit QR-Code)
- Vergangene Veranstaltungen (ausgeblendet, aufklappbar)
- Hinweis bei unvollständigem Profil
Tab «Meine Daten»:
- Vorname, Name bearbeiten
- E-Mail-Adresse (schreibgeschützt – Änderung nur über den Veranstalter)
- Telefonnummer
- Adresse (Strasse, PLZ, Ort)
- Newsletter-Opt-in/-Out
Tab «Sicherheit»:
- Passwort ändern
- Konto löschen (DSGVO-konform, alle Daten werden dauerhaft entfernt)
4. Einlass-Scanner
Der Einlass-Scanner ist eine mobile-optimierte Seite zum Einchecken von Besuchern am Veranstaltungstag. Er ist nur für eingeloggte WordPress-Administratoren zugänglich und wird über den Shortcode Zugriff nur für Administratoren. eingebunden (üblicherweise auf einer separaten Seite wie /scanner/).
Bedienung
Zwei Eingabemodi:
- Kamera-Tab: Halte den QR-Code des Tickets vor die Geräte-Kamera. Der Scanner erkennt den Code automatisch und führt den Check-in durch.
- Manuell-Tab: Buchungscode manuell eingeben (Format:
VWT-XXXXXXXXoderCS-XXXXXXfür Kurs-Tickets) und auf «Prüfen» klicken.
Ergebnis-Anzeige:
Nach dem Scan erscheint ein Ergebnis-Bereich mit:
- Name des Besuchers
- Event-Titel
- Ticket-Art und Anzahl
- Buchungsstatus
- Bei Mengentickets (quantity > 1): prominentes Mengen-Badge
Mögliche Ergebnisse:
- Grün (Erfolg): Check-in erfolgreich durchgeführt
- Orange (Warnung): Ticket wurde bereits eingecheckt (mit Zeitstempel des ersten Check-ins)
- Rot (Fehler): Buchungscode nicht gefunden oder Buchung storniert
Check-in-Zähler: Oben rechts wird die Anzahl der in dieser Sitzung durchgeführten Check-ins angezeigt.
Log: Im unteren Bereich werden die letzten Check-ins chronologisch aufgelistet (Name, Zeit, Mengen-Badge).
Tipps für den Einlass
- Den Scanner am besten auf einem Smartphone oder Tablet im Vollbild-Modus öffnen
- Gute Beleuchtung verbessert die Kamera-Erkennung
- Bei Problemen mit der Kamera zum Manuell-Tab wechseln
- Bei Mengentickets (z.B. 2× Normalpreis) auf das Mengen-Badge achten
5. E-Mail-Benachrichtigungen
Die Suite versendet folgende automatische E-Mails über WordPress wp_mail() via Brevo (SMTP):
| Auslöser | |
|---|---|
| Buchungsbestätigung | Nach erfolgreicher Buchung (mit PDF-Ticket als Anhang) |
| Gast-Buchung: E-Mail bestätigen | Nach Gast-Buchung (Link zur E-Mail-Bestätigung) |
| Gast-Konto: Einladung | In der Buchungsbestätigung (Link zur Kontoerstellung) |
| Kurs-Anmeldebestätigung | Nach Kurs-Anmeldung (mit PDF-Ticket) |
| Wartelisten-Bestätigung | Eintrag auf Warteliste bestätigt |
| Wartelisten-Angebot | Platz frei geworden, Bestätigungslink mit Frist |
| Stornierungsbestätigung | Buchung wurde storniert |
| Registrierungsbestätigung | Nach Besucher-Registrierung (Aktivierungslink) |
| Passwort zurücksetzen | Passwort-Reset angefordert |
| Event-Erinnerung | Konfigurierbar (z.B. 24h vor Event) |
| Kurs-Erinnerung | Vor dem nächsten Kurstermin |
Alle E-Mails verwenden HTML-Templates im Corporate Design des Veranstalters (Logo, Farben aus Einstellungen).
6. Häufige Fragen
Wie ändere ich die Reihenfolge der Events auf der Programmseite?
Events werden chronologisch nach Datum sortiert. Die Reihenfolge ergibt sich automatisch aus dem Eventdatum.
Was passiert, wenn ein Event ausverkauft ist?
Das Buchungsformular wird durch das Wartelisten-Formular ersetzt. Auf der Programmseite erscheint das Badge «Ausverkauft / Warteliste».
Kann ich ein Event über die Kapazität hinaus buchen?
Ja, als Administrator. Über die Warteliste kann direkt gebucht werden (Überbuchung), oder über die manuelle Admin-Buchung.
Wie funktioniert die Stornierung?
Gratis- und Kollekte-Tickets können vom Besucher selbst storniert werden, solange die Stornierungsfrist nicht abgelaufen ist. Kostenpflichtige Tickets können nur durch den Administrator storniert werden. Bei jeder Stornierung wird geprüft, ob Wartende auf der Warteliste stehen – falls ja, wird automatisch ein Angebot versandt.
Was ist der Unterschied zwischen einem «Gast» und einem «registrierten Besucher»?
Gäste buchen ohne Konto (nur Name + E-Mail). Sie können ihr Gast-Konto nachträglich in ein vollständiges Konto umwandeln, indem sie den Link in der Buchungsbestätigungs-E-Mail nutzen und ein Passwort setzen. Alle bisherigen Gast-Buchungen werden dann dem neuen Konto zugeordnet.
Wo finde ich die Ticket-PDFs?
Ticket-PDFs werden automatisch an die Buchungsbestätigungs-E-Mail angehängt. Besucher können Tickets auch jederzeit in ihrem Profil unter «Meine Tickets» herunterladen.
Wie setze ich den Testmodus ein?
Unter Einstellungen → Testmodus. Im Testmodus werden alle E-Mails an die konfigurierte Test-Adresse umgeleitet. Ein deutliches Banner weist auf den aktiven Testmodus hin.
7. Installationsanleitung für Techniker
7.1 Systemvoraussetzungen
| Komponente | Anforderung |
|---|---|
| WordPress | Aktuelle Version (6.x) |
| PHP | 8.x (getestet mit 8.3) |
| Datenbank | MySQL / MariaDB |
| Webserver | Nginx (oder Apache) mit HTTPS |
| PHP-Extensions | mbstring, gd, json, mysqli, openssl |
| Composer-Pakete | tecnickcom/tcpdf, setasign/fpdi, chillerlan/php-qrcode |
| SMTP via Brevo (Sendinblue), konfiguriert über WP Mail SMTP oder vergleichbares Plugin |
7.2 Server-Umgebung (Referenz)
Die Referenzinstallation läuft auf folgendem Setup:
- Server: server.imaago.ch (IP: 89.58.54.109)
- Webserver: Nginx
- PHP-FPM: php8.3-fpm
- Benutzer: web-vwt (Dateieigentümer)
- Webroot Produktion: /data/www/www.villa-wellentanz.ch
- Webroot Beta: /data/www/www.villa-wellentanz.ch
- Datenbank Produktion: wellentanz
- Datenbank Beta: wellentanz_beta
7.3 Erstinstallation
Schritt 1: Composer-Abhängigkeiten installieren
Auf dem Server im WordPress-Rootverzeichnis:
cd /data/www/www.villa-wellentanz.ch
php composer.phar require tecnickcom/tcpdf
php composer.phar require setasign/fpdi
php composer.phar require chillerlan/php-qrcode
Die Composer-Pakete werden im vendor/-Verzeichnis des WordPress-Roots installiert und von den Plugins über den Autoloader geladen.
Schritt 2: Plugins installieren
Erstinstallation via ZIP-Upload:
- Im WordPress-Admin unter Plugins → Installieren → Plugin hochladen
- Zuerst
vwt-core.ziphochladen und aktivieren - Dann
vwt-events.ziphochladen und aktivieren
Wichtig: vwt-core muss vor vwt-events aktiviert werden. vwt-events prüft beim Laden, ob VWT_CORE_VERSION definiert ist, und deaktiviert sich andernfalls.
Schritt 3: Plugin-Aktivierung
Bei der Aktivierung werden automatisch alle Datenbanktabellen erstellt:
vwt-core Tabellen:
- wp_vwt_visitors
- wp_vwt_visitor_sessions
- wp_vwt_visitor_meta
- wp_vwt_settings
vwt-events Tabellen:
- wp_vwt_events
- wp_vwt_event_meta
- wp_vwt_event_categories
- wp_vwt_ticket_types
- wp_vwt_bookings
- wp_vwt_waitlist
- wp_vwt_courses
- wp_vwt_course_dates
- wp_vwt_course_exclusions
- wp_vwt_course_signups
- wp_vwt_payments
Schritt 4: WordPress-Seiten anlegen
Folgende Seiten müssen in WordPress erstellt werden (sofern nicht vorhanden). Als Seiteninhalt wird jeweils der angegebene Shortcode-Name in eckigen Klammern eingetragen, z.B. für die Seite «Mein Konto» schreibt man in den Editor:
Anmelden
Konto erstellen
| Seite | Slug | Shortcode-Name |
|---|---|---|
| Mein Konto | /mein-konto/ | vwt_account |
| Programm | /programm/ | vwt_events |
| Archiv | /archiv/ | vwt_events_archive |
| Scanner | /scanner/ | vwt_scanner |
Optional:
| Seite | Slug | Shortcode-Name |
|---|---|---|
| Saison-Programm | /saison/ | vwt_season_program |
Schritt 5: Permalinks aktualisieren
Nach der Installation unter Einstellungen → Permalinks einmal auf «Änderungen speichern» klicken, damit die Rewrite-Rules für Event-URLs (/events/YYYYMMDD/) registriert werden.
Schritt 6: Grundkonfiguration
Im Admin unter dem neuen Menüpunkt → Einstellungen:
- Veranstalter-Tab: Name, Adresse, Logo, Kontaktdaten eintragen
- Farben-Tab: Primärfarbe, Akzentfarbe, Hintergrundfarbe setzen
- Zahlung-Tab: Gewünschte Zahlungsanbieter konfigurieren (Payrexx-Zugangsdaten, PayPal-Credentials)
- E-Mails-Tab: Absendername und Absender-E-Mail konfigurieren
7.4 Shortcode-Referenz
Die folgenden Shortcodes werden von den Plugins bereitgestellt. Sie sind bereits auf den entsprechenden WordPress-Seiten eingebunden (siehe Schritt 4) und müssen im Normalbetrieb nicht angepasst werden. Diese Referenz dient der technischen Dokumentation.
Shortcodes werden im WordPress-Editor in eckigen Klammern geschrieben, z.B. für vwt_events schreibt man in den Editor:
Ein spannender Abend für Neugierige, Skeptische und Entdecker:innenKünstliche Intelligenz ist längst im Alltag angekommen. Sie schreibt Texte, beantwortet Fragen, erstellt…
Gönn dir eine Stunde bewusste Bewegung, Atem und Entspannung in ruhiger, persönlicher Atmosphäre in der Villa Wellentanz. Die Lektion ist…
«Benny’s from Heaven» ist bewusst doppeldeutig: eine Anspielung auf den Jazzsong und den Film «Pennies from Heaven» mit Bing Crosby…
Gönn dir eine Stunde bewusste Bewegung, Atem und Entspannung in ruhiger, persönlicher Atmosphäre in der Villa Wellentanz. Die Lektion ist…
Entspannt in den Samstag starten – mit Bewegung, Atem und einem feinen Frühstück.Wir laden dich herzlich zum Yoga-Frühstück in der…
Gönn dir eine Stunde bewusste Bewegung, Atem und Entspannung in ruhiger, persönlicher Atmosphäre in der Villa Wellentanz. Die Lektion ist…
Gönn dir eine Stunde bewusste Bewegung, Atem und Entspannung in ruhiger, persönlicher Atmosphäre in der Villa Wellentanz. Die Lektion ist…
Vier Musiker, unzählige Klangwelten: Walti Grimm und seine Musiker laden zu einem unvergesslichen Konzertabend ein, der die Grenzen zwischen Genres,…
Wenn Oldtime-Jazz nach New Orleans klingt, aber aus dem Zürcher Oberland kommt, dann sind die Highlanders Jazzband auf der Bühne:…
Clara Schumann – Robert Schumann – Johannes BrahmsEin musikalisch-literarischer Abend mit Klavierwerken, Briefen und Tagebuchauszügen Drei Namen, drei Stimmen, ein emotionales…
Der zweifache Gewinner des German Blues Award, Thomas Scheytt, bringt die Klassiker des Blues und Boogie Woogie auf die Bühne…
on Träumen und StürmenZum wiederholten Mal sind Thomas Grossenbacher (Violoncello) und Yulia Miloslavskaya (Klavier) in der Villa Wellentanz zu Gast.…
Vortrag
Künstliche Intelligenz verstehen und erleben
Kurs
Yoga am Donnerstagabend
Konzert
BENNY’S FROM HEAVEN - Jazz und Swing der Extraklasse
Kurs
Yoga am Donnerstagabend
Kurs
Yoga Frühstück
Kurs
Yoga am Donnerstagabend
Kurs
Yoga am Donnerstagabend
Konzert
Walter Grimm & Freunde – Musikalischer Streifzug durch Länder, Stile und Zeiten
Konzert
Highlanders Jazzband live
Konzert
Im Dreieck
Konzert
Blues & Boogie Woogie auf höchstem Niveau
Konzert
Thomas Grossenbacher, Violoncello & Yulia Miloslavskaya, Piano
vwt-core Shortcodes
| Shortcode-Name | Beschreibung |
|---|---|
| vwt_account | Kombinierte Login-/Registrierungsseite und Profil (Hauptseite für /mein-konto/) |
| vwt_login | Nur Login-Formular |
| vwt_register | Nur Registrierungsformular |
| vwt_profile | Nur Profil-Ansicht (leitet zum Login um, wenn nicht eingeloggt) |
vwt-events Shortcodes
| Shortcode-Name | Parameter | Beschreibung |
|---|---|---|
| vwt_events | per_page=»12″, category=»», show_filter=»true», show_past=»false» | Programmseite mit Event-Karten, Kategorie-Filter und Paginierung |
| vwt_event | id=»», date=»» | Einzelnes Event anzeigen (via ID oder Datum im Format YYYYMMDD) |
| vwt_events_archive | per_page=»20″, year=»» | Archiv vergangener Events |
| vwt_season_program | category=»», image_size=»60″ | Kompakte Saison-Übersicht (September–Juli) |
| vwt_scanner | – | Einlass-Scanner (nur für Administratoren) |
Shortcode-Parameter-Beispiele
Parameter werden innerhalb der eckigen Klammern nach dem Shortcode-Namen angegeben:
vwt_events per_page="6" → nur 6 Events pro Seite
vwt_events category="konzert" → nur Konzerte anzeigen
vwt_events_archive year="2025" → Archiv eines bestimmten Jahres
vwt_season_program image_size="80" → Saison-Programm mit grösseren Bildern
7.5 Updates / Datei-Deployment
Einzelne Dateien werden per SCP auf den Server übertragen:
LOKAL (im Download-Verzeichnis):
scp dateiname.php jpk@server.imaago.ch:/tmp/
SERVER:
mv /tmp/dateiname.php /data/www/www.villa-wellentanz.ch/wp-content/plugins/vwt-events/pfad/dateiname.php
sudo chown web-vwt:web-vwt /data/www/www.villa-wellentanz.ch/wp-content/plugins/vwt-events/pfad/dateiname.php
sudo systemctl restart php8.3-fpm
Bei mehreren Dateien: alle scp-Befehle zusammen, dann alle mv- und chown-Befehle zusammen, am Ende einmal sudo systemctl restart php8.3-fpm.
7.6 Datenbank-Schema-Updates
Die Plugins führen Datenbank-Updates automatisch durch. Bei jeder Aktivierung und bei Versionsänderungen wird die DB-Schema-Version geprüft und bei Bedarf aktualisiert (dbDelta). Zusätzlich gibt es Spalten-Checks als Sicherheitsnetz, die unabhängig von der Versionsnummer fehlende Spalten nachträglich anlegen.
7.7 Dateistruktur
wp-content/plugins/
├── vwt-core/
│ ├── vwt-core.php # Hauptdatei, Plugin-Header
│ ├── admin/
│ │ ├── class-vwt-admin.php # Admin-Menü-Registrierung
│ │ ├── class-vwt-admin-dashboard.php # Dashboard
│ │ ├── class-vwt-admin-settings.php # Einstellungen
│ │ ├── class-vwt-admin-visitors.php # Besucherverzeichnis
│ │ ├── class-vwt-admin-widgets.php # WP-Dashboard-Widgets
│ │ └── class-vwt-admin-maintenance.php
│ ├── includes/
│ │ ├── class-vwt-core.php # Core-Klasse, Autoloader
│ │ ├── class-vwt-activator.php # DB-Schema bei Aktivierung
│ │ ├── class-vwt-visitor.php # Besucher-Model
│ │ ├── class-vwt-visitor-session.php # Session-Verwaltung
│ │ ├── class-vwt-settings.php # Einstellungs-API
│ │ ├── class-vwt-email.php # E-Mail-Versand
│ │ ├── class-vwt-email-templates.php # E-Mail-Vorlagen
│ │ ├── class-vwt-pdf-base.php # PDF-Basisklasse (TCPDF)
│ │ ├── class-vwt-qr-code.php # QR-Code-Generierung
│ │ ├── class-vwt-ajax-handler.php # AJAX-Basis mit Nonce
│ │ ├── class-vwt-form-validator.php # Formular-Validierung
│ │ ├── class-vwt-payment-interface.php # Payment-Gateway-Interface
│ │ ├── class-vwt-brevo-sync.php # Brevo-Newsletter-Sync
│ │ └── class-vwt-pwa.php # Progressive Web App
│ ├── public/
│ │ ├── class-vwt-public.php # Frontend-Controller
│ │ ├── class-vwt-visitor-auth.php # Login/Register/Reset
│ │ └── class-vwt-visitor-profile.php # Profil-Verwaltung
│ ├── templates/
│ │ ├── admin/ # Admin-Templates (dashboard, settings, visitors)
│ │ ├── emails/ # E-Mail-HTML-Templates
│ │ └── frontend/ # Frontend-Templates (account, profile, login)
│ └── uninstall.php
│
├── vwt-events/
│ ├── vwt-events.php # Hauptdatei, Plugin-Header
│ ├── admin/
│ │ ├── class-vwt-events-admin.php # Events-Admin-Controller
│ │ ├── class-vwt-admin-events.php # Event-CRUD
│ │ ├── class-vwt-admin-bookings.php # Buchungsverwaltung
│ │ ├── class-vwt-admin-courses.php # Kursverwaltung
│ │ ├── class-vwt-admin-tickets.php # Ticket-Arten AJAX
│ │ ├── class-vwt-admin-waitlist.php # Warteliste Admin
│ │ ├── class-vwt-admin-event-categories.php
│ │ ├── class-vwt-admin-import.php # CSV-Import
│ │ └── class-vwt-admin-wallet-settings.php
│ ├── includes/
│ │ ├── class-vwt-events.php # Events-Hauptklasse
│ │ ├── class-vwt-event.php # Event-Model
│ │ ├── class-vwt-booking.php # Buchungs-Model
│ │ ├── class-vwt-ticket-type.php # Ticket-Typ-Model
│ │ ├── class-vwt-ticket-pdf.php # Ticket-PDF-Generierung
│ │ ├── class-vwt-waitlist.php # Warteliste-Model
│ │ ├── class-vwt-course.php # Kurs-Model
│ │ ├── class-vwt-course-date.php # Kurstermin-Model
│ │ ├── class-vwt-course-signup.php # Kursanmeldung-Model
│ │ ├── class-vwt-course-exclusion.php # Datumsausschlüsse
│ │ ├── class-vwt-event-category.php # Kategorie-Model
│ │ ├── class-vwt-payment.php # Zahlungs-Model
│ │ ├── class-vwt-payment-payrexx.php # Payrexx-Integration
│ │ ├── class-vwt-email-notifications.php # E-Mail-Trigger
│ │ ├── class-vwt-wallet-pass.php # Apple/Google Wallet (vorbereitet)
│ │ ├── class-vwt-events-activator.php # DB-Schema bei Aktivierung
│ │ └── class-vwt-events-deactivator.php
│ ├── public/
│ │ ├── class-vwt-events-public.php # Frontend-Controller + Shortcodes
│ │ ├── class-vwt-booking-form.php # Buchungsformular-Handler
│ │ ├── class-vwt-course-signup-handler.php # Kursanmeldung-Handler
│ │ ├── class-vwt-waitlist-handler.php # Warteliste-Handler
│ │ ├── class-vwt-scanner.php # Einlass-Scanner
│ │ ├── class-vwt-ticket-download.php # Ticket-PDF-Download
│ │ ├── class-vwt-profile-tickets.php # Tickets im Profil
│ │ └── class-vwt-wallet-download.php # Wallet-Pass-Download
│ ├── templates/
│ │ ├── admin/ # Admin-Templates (events, bookings, courses, waitlist)
│ │ └── frontend/ # Frontend-Templates (event-detail, booking-form, scanner)
│ └── uninstall.php
7.8 Sicherheitshinweise
- Alle Formulare verwenden WordPress-Nonces (CSRF-Schutz)
- Besucher-Passwörter werden mit bcrypt gehasht (
password_hash/password_verify) - Alle Datenbankabfragen verwenden Prepared Statements (
$wpdb->prepare()) - Rate-Limiting auf dem Besucher-Login (konfigurierbar)
- Gast-Konvertierung verwendet einmalige, gehashte Tokens (SHA-256,
hash_equals()) - Logout verwendet aktionsspezifische Nonces (
vwt_logout_nonce) - Tokens für E-Mail-Bestätigung und Passwort-Reset haben eine begrenzte Gültigkeitsdauer
7.9 Datenbank-Client
Für Datenbank-Abfragen und Analysen wird DBeaver als DB-Client verwendet (kein mysql CLI).
7.10 Backup-Empfehlung
- Tägliches Datenbank-Backup (insbesondere die
wp_vwt_*-Tabellen) - Plugin-Verzeichnisse in regelmässigem Dateisystem-Backup einschliessen
- Vor jedem Update: Snapshot der Datenbank und der Plugin-Dateien
7.11 Fehlerbehebung
Plugins laden nicht:
- Prüfen ob vwt-core vor vwt-events aktiviert ist
- PHP-Fehlerlog prüfen:
tail -f /var/log/php8.3-fpm.log(oder Nginx-Errorlog) - Prüfen ob Composer-Abhängigkeiten installiert sind:
ls vendor/tecnickcom/tcpdf/
Event-URLs funktionieren nicht (404):
- Permalinks unter Einstellungen → Permalinks neu speichern
- Nginx-Konfiguration prüfen (try_files muss auf index.php zeigen)
E-Mails werden nicht versandt:
- WP Mail SMTP Plugin konfiguriert und aktiv?
- Brevo-SMTP-Zugangsdaten korrekt?
- Test-E-Mail über WP Mail SMTP versenden
Scanner funktioniert nicht:
- Als WordPress-Administrator eingeloggt?
- HTTPS aktiv? (Kamera-Zugriff erfordert HTTPS)
- Browser-Berechtigung für Kamera erteilt?
Zahlungen kommen nicht durch:
- Payrexx-Credentials in den Einstellungen korrekt?
- Webhook-URL bei Payrexx konfiguriert?
- Testmodus in Payrexx vs. Produktivmodus prüfen
