Initial commit - Help Service for Coolify
This commit is contained in:
361
content/shortcodes.md
Normal file
361
content/shortcodes.md
Normal file
@@ -0,0 +1,361 @@
|
||||
---
|
||||
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.
|
||||
Reference in New Issue
Block a user