362 lines
8.5 KiB
Markdown
362 lines
8.5 KiB
Markdown
---
|
|
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
|
|
<div class="pension-details">
|
|
<p><strong>Boxengroesse:</strong> [kurs_field name="box_groesse"]</p>
|
|
<p><strong>Weidegang:</strong> [kurs_field name="weidegang" default="Nein"]</p>
|
|
<p><strong>Futter:</strong> [kurs_field name="futter_art"]</p>
|
|
<p><strong>Preis:</strong> [kurs_field name="preis_pro_tag" suffix=" EUR/Tag"]</p>
|
|
</div>
|
|
```
|
|
|
|
#### 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: `<span class="kurs-location">Reiterhof Beispiel</span>`
|
|
|
|
**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
|
|
<div class="kurs-details">
|
|
<p><strong>Datum:</strong> [kurs_field name="start_date" format="d.m.Y"]</p>
|
|
<p><strong>Uhrzeit:</strong> [kurs_field name="start_time"] - [kurs_field name="end_time"] Uhr</p>
|
|
<p><strong>Ort:</strong> [kurs_field name="location"]</p>
|
|
<p><strong>Preis:</strong> [kurs_field name="price" format="price"]</p>
|
|
</div>
|
|
|
|
<!-- Nur fuer Online-Coaching anzeigen -->
|
|
<div class="coaching-info">
|
|
[kurs_field name="coaching_dauer" prefix="Dauer: " suffix=" Minuten" wrapper="p"]
|
|
</div>
|
|
|
|
<!-- Nur fuer Webinar Live anzeigen -->
|
|
<div class="webinar-info">
|
|
[kurs_field name="aufzeichnung_tage" prefix="Aufzeichnung nach " suffix=" Tagen verfuegbar" wrapper="p"]
|
|
</div>
|
|
```
|
|
|
|
---
|
|
|
|
## [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.
|