Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/davidmat92/tixomat-plugin/archive/refs/heads/main.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
Zentrales Event-Management mit integriertem Ticketing-System, Saalplan-Editor, Support-CRM und automatischer WooCommerce-Synchronisation.
Version: 1.33.1 Autor: MDJ Veranstaltungs UG (haftungsbeschraenkt) Voraussetzungen: WordPress 6.x, WooCommerce 8.x (HPOS-kompatibel)
Features
Event-Verwaltung
- Mehrtaegige Events mit Einlass-/Start-/Endzeit
- 6 automatische Status-Typen (Verfuegbar, Ausverkauft, Vergangen, VVK geschlossen, Abgesagt, Verschoben)
- 3 Vorverkaufs-Modi: Manuell, Datum, Offset (Stunden vor Event)
- Event-Duplizierung mit automatischem Re-Sync
- Serien/Wiederkehrende Events (woechentlich, 2-woechentlich, monatlich, manuell)
- 9-Tab Event-Editor + 5-Schritt Wizard fuer neue Events
- Automatische Archivierung nach konfigurierbarer Frist
Ticketing (Dual-Mode)
- Standalone: Eigenes Ticket-System mit 12-stelligen alphanumerischen Codes
- QR-Code Generierung und Scanning (Format:
GL-{EVENT_ID}-{CODE}) - PDF-Tickets mit visuellem Template-Editor (14 positionierbare Felder)
- Kryptische Download-URLs mit 64-Zeichen Hex-Token
- Ticket-Transfer zwischen Personen
Saalplan-System
- Visueller Saalplan-Editor (Reihen, Sektionen, Einzelplaetze)
- Echtzeit-Verfuegbarkeitspruefung
- 15-Minuten Reservierungs-Timeout
- Best-Available Sitzplatz-Vorschlaege
- Integration in Ticket-Selector und Checkout
Ticket-Vorlagen
- Drag & Drop Template-Editor mit Live-Vorschau
- 14 Felder: Event-Name, Datum, Uhrzeit, Einlass, Ort, Adresse, Kategorie, Preis, Name, E-Mail, Code, Bestellnummer, Sitzplatz, Custom-Text
- QR-Code und Barcode mit proportionaler Skalierung
- Erweiterte Eigenschaften: Rotation, Deckkraft, Hintergrundfarbe, Rahmen, Zeichenabstand, Zeilenhoehe, Textumwandlung
- 3 Modi: Global, Vorlage (CPT), Custom (pro Event), Keine
- Wiederverwendbare Vorlagen als eigener Custom Post Type
Preisgestaltung
- Unbegrenzte Ticket-Kategorien pro Event
- Dynamische Preisphasen (Early Bird, Last Minute, etc.)
- Mengenrabatte (ab X Tickets, % oder Festbetrag)
- Bundle-Deals (Festpreis-Pakete)
- Multi-Event Combo-Tickets
- WooCommerce Coupon-Integration
Gruppen-Buchungen
- Gruppenbuchungen mit optionalem Cost-Splitting
- Konfigurierbare Min/Max Gruppengroessen
- Individuelle Zahlungslinks fuer Teilnehmer
Checkout & Warenkorb
- Eigener Multi-Step Checkout (ersetzt WooCommerce-Standard)
- Echtzeit-Preisberechnung (Rabatte, Steuern)
- Express-/One-Click Checkout Modal
- Abandoned Cart Recovery mit E-Mail-Benachrichtigungen
- Optionaler Newsletter-Signup beim Checkout
- Eigenstaendige Warenkorb-Seite per
[tix_cart]Shortcode - Mini-Cart Drawer (Slide-in von rechts) mit Live-Badge per WooCommerce Fragments
- Tischreservierung im Checkout und Warenkorb (wenn fuer Event aktiviert)
- Specials-Upsell im Checkout und Warenkorb
Check-in System
- Browser-basierter QR-Code Scanner
- Echtzeit-Validierung: 12-stellige Codes, Legacy-Codes, QR-Format
- Gaesteliste mit Suche, Import, manuellen Eintraegen
- Teilweiser Check-in (z.B. 3 von 5 eingecheckt)
- Self-Service QR-Seite fuer Gaeste
- Massen-E-Mail an Teilnehmer
- CSV-Export der Gaesteliste
Support-System (CRM)
- CPT-basierte Support-Tickets mit Status-Verwaltung
- Multi-Tab Admin-Dashboard (Anfragen, Kundensuche, Statistiken)
- Kundensuche: E-Mail -> Bestellungen/Tickets, Bestellnummer -> Details, Code -> Ticket
- Nachrichten-Threading (Kunde, Admin, interne Notizen)
- Frontend-Kundenportal per Shortcode
- Optionaler Floating Chat-Widget
- Quick-Actions: Ticket erneut senden, Inhaber aendern, Ticket oeffnen
E-Mail System
- White-Label E-Mails (eigener Absender, Logo, Footer)
- E-Mail-Typen: Bestellbestaetigung, Erinnerung, Follow-up, Abandoned Cart, Ticket-Transfer
- Konfigurierbare Erinnerungen (X Tage vor/nach Event)
Kalender
- Interaktiver Kalender mit Event-Filterung nach Kategorie
- Monats- und Listenansicht
- iCal-Export fuer Kalender-Sync
Weitere Features
- Newsletter-System mit Subscribe/Unsubscribe
- FAQ-Akkordeon pro Event
- Countdown-Timer zum Event/Vorverkauf
- Embed-Widget fuer externe Seiten (iframe)
- Upsell/Cross-Sell (Events + Produkte)
- Spenden-/Charity-Integration (pro Event, % vom Warenkorb)
- Admin-Statistiken mit Charts und KPIs
- Dashboard-Widget mit anstehenden Events
- POS-System / Abendkasse (Tablet-SPA mit PIN-Login, Barzahlung, EC, QR-Tickets)
- Tischreservierung mit Kalender, Zahlungsmodi und WooCommerce-Integration
Custom Post Types
| CPT | Slug | Oeffentlich | Beschreibung |
|---|---|---|---|
| Events | event |
Ja | Haupt-Event-Objekt mit allen Metadaten |
| Locations | tix_location |
Ja | Veranstaltungsorte mit Adresse |
| Organizer | tix_organizer |
Ja | Veranstalter-Kontaktdaten |
| Tickets | tix_ticket |
Nein | Individuelle Tickets (QR-Code, PDF) |
| Ticket-Vorlagen | tix_ticket_tpl |
Nein | Wiederverwendbare Ticket-Designs |
| Newsletter | tix_subscriber |
Nein | Newsletter-Abonnenten |
| Abandoned Carts | tix_abandoned_cart |
Nein | Unvollstaendige Bestellungen |
| Support-Tickets | tix_support_ticket |
Nein | Kundenanfragen mit Nachrichtenverlauf |
Shortcodes
| Shortcode | Parameter | Beschreibung |
|---|---|---|
[tix_ticket_selector] |
id |
Ticket-Auswahl mit Warenkorb |
[tix_checkout] |
— | Multi-Step Checkout |
[tix_calendar] |
category, view |
Event-Kalender |
[tix_checkin] |
id |
QR-Scanner & Gaesteliste |
[tix_seatmap] |
id |
Saalplan-Auswahl |
[tix_my_tickets] |
— | Benutzer-Ticket-Dashboard |
[tix_support] |
— | Kunden-Support-Portal |
[tix_faq] |
id |
FAQ-Akkordeon |
[tix_upsell] |
id |
Cross-Sell Bereich |
[tix_embed] |
id, style |
Embed-Widget (minimal/full) |
[tix_newsletter] |
event_id, label |
Newsletter-Formular |
[tix_countdown] |
id, style |
Countdown-Timer |
[tix_group_booking] |
id |
Gruppenbuchungs-Formular |
[tix_cart] |
checkout_url |
Eigenstaendige Warenkorb-Seite |
[tix_table_reservation] |
— | Tischreservierung SPA (Kalender → Buchung) |
[tix_table_button] |
event_id |
Tischreservierungs-Dialog oeffnen |
[tix_pos] |
— | POS / Abendkasse (Tablet-optimiert) |
Integrationen
| System | Beschreibung |
|---|---|
| WooCommerce | Automatische Produkt-Synchronisation mit Varianten |
| Airtable | REST API Sync fuer Ticketdaten |
| Supabase | PostgreSQL REST API Sync |
| Breakdance | Alle Meta-Felder als Dynamic Data verfuegbar |
| SEO | Open Graph + JSON-LD Structured Data |
Einstellungen (11 Tabs)
| Tab | Inhalt |
|---|---|
| Design | Farben, Typografie, Border-Radius, Button-Style |
| Ticket-Selector | Darstellungsstil, Countdown, Verfuegbarkeit |
| FAQ | Akkordeon/Listen-Stil, Icon, Farben |
| Checkout | Checkout-Seite, Warenkorb-Timeout, AGB |
| Express-Checkout | One-Click Kauf aktivieren |
| Meine Tickets | Ticket-Seite, Transfer, Download |
| Absender, Logo, Erinnerungen, Follow-up | |
| Check-in | Check-in Seite, Scanner-Aufloesung |
| Ticket-Vorlage | Hintergrundbild, Felder positionieren |
| Sync | Airtable/Supabase Zugangsdaten |
| Erweitert | Ticket-System, Loeschenschutz, Debug, Support, POS/Abendkasse |
Dateistruktur
tixomat/
├── tixomat.php Haupt-Plugin-Datei
├── DOCUMENTATION.md Technische Dokumentation
├── README.md
├── includes/ 55 PHP-Klassen
│ ├── class-tix-cpt.php CPTs + Taxonomien + Admin UI
│ ├── class-tix-metabox.php Event-Editor (9 Tabs + Wizard)
│ ├── class-tix-sync.php WooCommerce Sync
│ ├── class-tix-settings.php Einstellungen (11 Tabs)
│ ├── class-tix-columns.php Admin-Spalten, CSV-Export
│ ├── class-tix-frontend.php Cron, OG/JSON-LD, Dashboard
│ ├── class-tix-checkout.php Checkout, Abandoned Cart
│ ├── class-tix-ticket-selector.php Ticket-Auswahl Frontend
│ ├── class-tix-calendar.php Kalender, iCal-Export
│ ├── class-tix-checkin.php QR-Scanner, Gaesteliste
│ ├── class-tix-emails.php White-Label E-Mail-System
│ ├── class-tix-faq.php FAQ-Akkordeon
│ ├── class-tix-my-tickets.php Benutzer-Ticket-Dashboard
│ ├── class-tix-upsell.php Cross-Sell/Upsell
│ ├── class-tix-tickets.php Ticket-CPT, PDF-Generierung
│ ├── class-tix-ticket-template.php Visueller Template-Editor
│ ├── class-tix-ticket-template-cpt.php Wiederverwendbare Vorlagen
│ ├── class-tix-ticket-transfer.php Ticket-Umbuchung
│ ├── class-tix-ticket-db.php Ticket-Datenbank
│ ├── class-tix-group-booking.php Gruppenbuchungen + Splitting
│ ├── class-tix-group-discount.php Mengenrabatte, Bundles, Combos
│ ├── class-tix-dynamic-pricing.php Zeitbasierte Preisphasen
│ ├── class-tix-series.php Wiederkehrende Events
│ ├── class-tix-embed.php iframe Embed-Widget
│ ├── class-tix-cleanup.php Loeschenschutz, Bereinigung
│ ├── class-tix-support.php Support-CRM + Kundenportal
│ ├── class-tix-docs.php In-Admin Dokumentation
│ ├── class-tix-seatmap.php Saalplan-Editor & Reservierung
│ ├── class-tix-statistics.php Admin-Statistiken
│ ├── class-tix-sync-airtable.php Airtable-Integration
│ ├── class-tix-sync-supabase.php Supabase-Integration
│ ├── class-tix-cart.php Warenkorb-Shortcode + Mini-Cart
│ ├── class-tix-specials.php Specials-Upsell (Checkout + Cart)
│ ├── class-tix-table-reservation.php Tischreservierung (SPA + Checkout)
│ ├── class-tix-pos.php POS / Abendkasse
│ ├── class-tix-modal-checkout.php Modal-Checkout
│ ├── class-tix-event-page.php Event-Detailseite
│ ├── class-tix-content-guard.php KI-Inhaltspruefung
│ ├── class-tix-social-proof.php Social Proof Notifications
│ ├── class-tix-share.php Social-Sharing Buttons
│ ├── class-tix-exit-intent.php Exit-Intent Popup
│ ├── class-tix-feedback.php Post-Event Feedback
│ ├── class-tix-raffle.php Gewinnspiel-System
│ ├── class-tix-waitlist.php Warteliste
│ ├── class-tix-timetable.php Timetable / Programm
│ ├── class-tix-vip.php VIP-Erweiterungen
│ ├── class-tix-campaign-tracking.php Campaign Tracking
│ ├── class-tix-campaign-analytics.php Campaign Analytics
│ ├── class-tix-marketing-export.php Marketing Export
│ ├── class-tix-organizer-dashboard.php Veranstalter-Dashboard
│ ├── class-tix-promoter.php Promoter-System
│ ├── class-tix-promoter-admin.php Promoter Admin
│ ├── class-tix-promoter-dashboard.php Promoter Dashboard
│ ├── class-tix-promoter-db.php Promoter Datenbank
│ ├── class-tix-promoter-signup.php Promoter Signup
├── assets/
│ ├── css/ 30+ Stylesheets + Minified
│ ├── js/ 30+ JavaScript-Dateien + Minified
│ └── fonts/ OpenSans, RobotoMono (TTF)
└── .github/
└── workflows/
└── deploy.yml Auto-Deploy via GitHub Actions
Deployment
Push auf main triggert automatisch GitHub Actions:
git push origin main
→ GitHub Actions (rsync)
→ Server: /wp-content/plugins/tixomat/
Konfiguration: .github/workflows/deploy.yml
Technologie
- WordPress 6.x mit nativen APIs (keine externen Frameworks)
- WooCommerce 8.x (HPOS-kompatibel) fuer E-Commerce
- GD Library fuer PDF/Ticket-Rendering mit TrueType-Fonts
- Vanilla JavaScript (kein React/Vue)
- CSS Custom Properties (
--tix-*) fuer vollstaendiges Theming - REST APIs: Airtable, Supabase (optionale Sync-Ziele)
Sicherheit
- Nonce-Verifizierung auf allen AJAX-Endpunkten und Formularen
- Capability-Checks (
manage_optionsfuer Admin-Aktionen) - Input-Sanitierung (
sanitize_text_field,sanitize_email, etc.) - Output-Escaping (
esc_html,esc_attr,esc_url, etc.) - Prepared Statements via
$wpdb->prepare() - Token-basierte Ticket-Downloads (64-Zeichen Hex statt vorhersehbarer URLs)
- Gast-Zugangsschluessel fuer Support-Tickets