--- id: shortcodes title: Shortcodes icon: code-slash description: Alle verfuegbaren Shortcodes fuer Frontend und Templates section: Tipps & Support tags: [Shortcodes, Frontend, Templates, Kadence] related: [features, kursarten/uebersicht] order: 63 --- # Shortcodes Alle verfuegbaren Shortcodes fuer das Kurs-Booking Plugin. --- ## Uebersicht | Shortcode | Beschreibung | |-----------|--------------| | `[kurs_cards]` | Kurs-Cards Grid mit Filter | | `[kurs_booking_form]` | Buchungsformular | | `[kurs_booking_button]` | Buchungs-Button | | `[kurs_booking_status]` | Buchungsstatus-Meldungen | | `[kurs_field]` | Einzelnes Kurs-Feld ausgeben | | `[kurs_video_access]` | Video-Zugangsseite | | `[kurs_video]` | Video-Player | | `[video_pakete]` | Video-Pakete Uebersicht | | `[video_paket]` | Einzelnes Video-Paket | --- ## [kurs_cards] Zeigt Veranstaltungen als responsive Card-Grid mit optionalem Filter. ### Attribute | Attribut | Standard | Beschreibung | |----------|----------|--------------| | `show_filter` | `true` | Filter anzeigen (Kategorie, Monat) | | `columns` | `3` | Anzahl Spalten (2, 3 oder 4) | | `limit` | `12` | Maximale Anzahl Veranstaltungen | | `category` | `""` | Nach Kategorie filtern (Slug) | | `month` | `""` | Nach Monat filtern (YYYY-MM) | | `orderby` | `date` | Sortierung (`date`, `title`) | | `order` | `ASC` | Reihenfolge (`ASC`, `DESC`) | ### Beispiele ``` [kurs_cards] [kurs_cards show_filter="true" columns="3" limit="12"] [kurs_cards category="praesenz-kurs" limit="6"] [kurs_cards month="2025-01" columns="4"] ``` --- ## [kurs_field] **NEU** - Gibt ein einzelnes Meta-Feld eines Kurses aus. Ideal fuer Kadence Templates und Custom Layouts. ### Attribute | Attribut | Standard | Beschreibung | |----------|----------|--------------| | `name` | *erforderlich* | Feldname (z.B. `coaching_dauer`) | | `id` | aktueller Post | Kurs-ID (optional) | | `prefix` | `""` | Text vor dem Wert | | `suffix` | `""` | Text nach dem Wert | | `format` | auto | Format: `date`, `time`, `datetime`, `price` oder Datumsformat | | `default` | `""` | Standardwert wenn Feld leer | | `wrapper` | `""` | HTML-Element: `span`, `div`, `p`, `strong`, `em` | | `class` | `""` | CSS-Klasse fuer Wrapper | ### Standard-Felder Diese Felder sind fuer alle Kurse verfuegbar: | Name | Beschreibung | |------|--------------| | `start_date` | Startdatum | | `end_date` | Enddatum | | `start_time` | Startzeit | | `end_time` | Endzeit | | `location` | Veranstaltungsort | | `max_participants` | Max. Teilnehmer | | `price` | Preis | | `deposit_percent` | Anzahlung in % | | `produktart` | Produktart-ID | | `zoom_link` | Zoom-Link | | `zoom_meeting_id` | Zoom Meeting-ID | | `zoom_passcode` | Zoom Passcode | | `instructor` | Reitlehrer/in | | `horse` | Pferd | ### Produktart-spezifische Felder #### G) Webinar Live | Name | Beschreibung | |------|--------------| | `aufzeichnung_verfuegbar` | Aufzeichnung vorhanden (1/0) | | `aufzeichnung_tage` | Tage bis Aufzeichnung verfuegbar | | `aufzeichnung_zugang_tage` | Zugang zur Aufzeichnung (Tage) | #### H) Workshop Online / I) Coaching Online | Name | Beschreibung | |------|--------------| | `coaching_dauer` | Coaching-Dauer in Minuten | #### J) Online-Unterricht | Name | Beschreibung | |------|--------------| | `unterricht_dauer` | Unterrichtsdauer in Minuten | | `unterricht_technik` | Technische Voraussetzungen | #### K) Video-Analyse | Name | Beschreibung | |------|--------------| | `video_max_length` | Max. Videolaenge in Minuten | | `feedback_format` | Feedback-Format | | `turnaround_days` | Bearbeitungszeit in Werktagen | #### L) Beratung | Name | Beschreibung | |------|--------------| | `beratung_art` | Beratungsart | | `beratung_dauer` | Gespraechsdauer in Minuten | | `beratung_wochen` | Begleitungsdauer in Wochen | | `beratung_kanal` | Bevorzugter Kanal | ### Eigene Produktarten und Felder Der `[kurs_field]` Shortcode ist **vollstaendig dynamisch** - er unterstuetzt nicht nur die vordefinierten Produktarten (A-L), sondern auch alle selbst erstellten. #### Workflow fuer eigene Produktarten 1. **Produktart anlegen** - Einstellungen → Dienstleistungen → "Neue Produktart" - z.B. `M) Reitkurs Spezial` mit ID `reitkurs_spezial` 2. **Felder zuweisen** - Einstellungen → Buchungsfelder → Neues Feld erstellen - Produktart-Checkboxen: Nur `M) Reitkurs Spezial` aktivieren - z.B. Feld `stallmiete` (number) 3. **Shortcode verwenden** ``` [kurs_field name="stallmiete" suffix=" EUR/Tag"] ``` #### Beispiel: Eigene Produktart **Produktart:** `M) Pferde-Pension` (ID: `pferde_pension`) **Eigene Felder:** | Feldname | Typ | Beschreibung | |----------|-----|--------------| | `box_groesse` | select | Boxengroesse (S/M/L) | | `weidegang` | checkbox | Weidegang inklusive | | `futter_art` | select | Futterart | | `preis_pro_tag` | number | Tagespreis | **Shortcodes im Template:** ```html

Boxengroesse: [kurs_field name="box_groesse"]

Weidegang: [kurs_field name="weidegang" default="Nein"]

Futter: [kurs_field name="futter_art"]

Preis: [kurs_field name="preis_pro_tag" suffix=" EUR/Tag"]

``` #### Feldbaum nutzen Um alle verfuegbaren Felder fuer eine Produktart zu sehen: 1. Einstellungen → Buchungsfelder 2. Filter auf gewuenschte Produktart setzen 3. Button "Baum anzeigen" klicken 4. Optional: Als JSON/Markdown/CSV exportieren ### Beispiele **Einfache Ausgabe:** ``` [kurs_field name="coaching_dauer"] ``` Ausgabe: `60` **Mit Prefix und Suffix:** ``` [kurs_field name="coaching_dauer" prefix="Dauer: " suffix=" Minuten"] ``` Ausgabe: `Dauer: 60 Minuten` **Datum formatieren:** ``` [kurs_field name="start_date" format="d.m.Y"] [kurs_field name="start_date" format="l, d. F Y"] ``` Ausgabe: `15.01.2025` oder `Mittwoch, 15. Januar 2025` **Preis formatieren:** ``` [kurs_field name="price" format="price"] ``` Ausgabe: `350,00 EUR` **Mit Wrapper und CSS-Klasse:** ``` [kurs_field name="location" wrapper="span" class="kurs-location"] ``` Ausgabe: `Reiterhof Beispiel` **Standardwert wenn leer:** ``` [kurs_field name="zoom_link" default="Link wird noch bekannt gegeben"] ``` **Fuer anderen Kurs:** ``` [kurs_field name="price" id="123" format="price"] ``` ### Kadence Template Beispiel In einem Kadence Element/Template fuer Single-Kurs: ```html

Datum: [kurs_field name="start_date" format="d.m.Y"]

Uhrzeit: [kurs_field name="start_time"] - [kurs_field name="end_time"] Uhr

Ort: [kurs_field name="location"]

Preis: [kurs_field name="price" format="price"]

[kurs_field name="coaching_dauer" prefix="Dauer: " suffix=" Minuten" wrapper="p"]
[kurs_field name="aufzeichnung_tage" prefix="Aufzeichnung nach " suffix=" Tagen verfuegbar" wrapper="p"]
``` --- ## [kurs_booking_form] Vollstaendiges 3-Schritt Buchungsformular. ### Attribute | Attribut | Standard | Beschreibung | |----------|----------|--------------| | `id` | aktueller Post | Kurs-ID | ### Beispiel ``` [kurs_booking_form] [kurs_booking_form id="123"] ``` --- ## [kurs_booking_button] Zeigt den Buchungs-Button fuer einen Kurs. ### Attribute | Attribut | Standard | Beschreibung | |----------|----------|--------------| | `id` | aktueller Post | Kurs-ID | | `text` | "Jetzt buchen" | Button-Text | ### Beispiel ``` [kurs_booking_button] [kurs_booking_button text="Platz reservieren"] ``` --- ## [kurs_booking_status] Zeigt Buchungsstatus-Meldungen nach Redirect (z.B. nach Bestaetigung). ``` [kurs_booking_status] ``` --- ## [kurs_video_access] Video-Zugangsseite fuer Kunden mit gekauftem Video-Kurs. ``` [kurs_video_access] ``` --- ## [kurs_video] Eingebetteter Video-Player. ### Attribute | Attribut | Standard | Beschreibung | |----------|----------|--------------| | `id` | *erforderlich* | Video-ID | ``` [kurs_video id="456"] ``` --- ## [video_pakete] Zeigt alle verfuegbaren Video-Pakete. ``` [video_pakete] ``` --- ## [video_paket] Zeigt ein einzelnes Video-Paket. ### Attribute | Attribut | Standard | Beschreibung | |----------|----------|--------------| | `id` | *erforderlich* | Paket-ID | ``` [video_paket id="789"] ``` --- **Tipp:** Shortcodes koennen in Kadence Elements, Gutenberg-Bloecken und klassischen Widgets verwendet werden.