Skip to content

Commit

Permalink
wordpress doku update
Browse files Browse the repository at this point in the history
  • Loading branch information
jekuer committed Oct 17, 2024
1 parent 062e61c commit 66cc8da
Show file tree
Hide file tree
Showing 5 changed files with 146 additions and 6 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"vitepress": "^1.4.1"
},
"scripts": {
"dev": "vitepress dev",
"docs:dev": "vitepress dev",
"docs:build": "vitepress build",
"docs:preview": "vitepress preview --port 6789"
Expand Down
5 changes: 4 additions & 1 deletion src/application-manual/groups-and-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,10 @@ In all cases, you can always check the result at the dynamic preview.
Once created, you can always update the event on the detail page.
There, you basically find the same structure as on creation.

At the very top, you find a complete summary with everything you need for sharing and integration purposes. From email links to your auto-created landingpage and more. Here, you also find the link to the **analytics** dashboard for this event. This would be the overview of RSVP sign-ups in the RSVP case or analytics about when and how often people saved an event to their calendars (in the non-RSVP case).
At the very top, you find a complete summary with everything you need for sharing and integration purposes. From email links to your auto-created landingpage and more. Here, you also find the link to the [analytics](/application-manual/analytics.html) dashboard for this event. This would be the overview of RSVP sign-ups in the RSVP case or analytics about when and how often people saved an event to their calendars (in the non-RSVP case).

Also at the top, you have the option to set an event to private.
This will block the auto-generation of a landingpage and ics file, but will still allow you to generate ics files via API or use a button with [dynamic date properties in WordPress](/integration/wordpress.html#dynamic-connections).

::: warning Mind Auto-Adjustments
Depending on what you select as well as different cases on the user side, we automatically adjust some details. For example, when you create a recurring event, some calendar types will not show up, as not all do support this feature (in an Add to Calendar Button scope).
Expand Down
5 changes: 4 additions & 1 deletion src/de/application-manual/groups-and-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,10 @@ In allen Fällen kannst du das Ergebnis immer in der dynamischen Vorschau überp
Sobald erstellt, kannst du das Event jederzeit auf der Detailseite aktualisieren.
Dort findest du im Grunde die gleiche Struktur wie bei der Erstellung selbst vor.

Ganz oben findest du eine Zusammenfassung mit allem, was du für das Teilen und die Integration benötigst. Von E-Mail-Links bis zu deiner automatisch erstellten Landingpage und mehr. Hier findest du auch den Link zum Analytics-Dashboard für dieses Event. Das wäre die Übersicht über RSVP-Anmeldungen im RSVP-Fall oder **Statistiken** darüber, wann und wie oft Personen ein Event zu ihren Kalendern hinzugefügt haben (im Nicht-RSVP-Fall).
Ganz oben findest du eine Zusammenfassung mit allem, was du für das Teilen und die Integration benötigst. Von E-Mail-Links bis zu deiner automatisch erstellten Landingpage und mehr. Hier findest du auch den Link zum Analytics-Dashboard für dieses Event. Das wäre die Übersicht über RSVP-Anmeldungen im RSVP-Fall oder [Statistiken](/de/application-manual/analytics.html) darüber, wann und wie oft Personen ein Event zu ihren Kalendern hinzugefügt haben (im Nicht-RSVP-Fall).

Ebenfalls an oberster Stelle findest du die Option, ein Event als privat zu markieren.
Dies blockiert die automatische Generierung einer Landingpage und ICS-Datei, aber erlaubt dir weiterhin ICS-Dateien über die API zu generieren oder einen Button mit [dynamischen Datumseigenschaften in WordPress](/de/integration/wordpress.html#dynamische-verbindungen) zu verwenden.

::: warning Beachte automatische Anpassungen
Je nachdem, was du auswählst sowie je nach Nutzer-Situation, passen wir automatisch manche Details an. Beispiel: Wenn du ein wiederkehrendes Event erstellst, werden einige Kalendertypen nicht angezeigt, da nicht alle diese Funktion unterstützen (im Rahmen eines Add-to-Calendar-Buttons).
Expand Down
71 changes: 69 additions & 2 deletions src/de/integration/wordpress.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
outline: [2,3]
---

# Wie man die Buttons und RSVP-Formulare in WordPress nutzt

Expand All @@ -12,7 +15,13 @@ Installiere das [offizielle Paket aus dem WordPress Plugin-Verzeichnis](https://

Aktiviere das Plugin auf der WordPress "Plugin"-Seite.

## Schritt 3: Loslegen
## Schritt 3: PRO-Modus aktivieren

Nachdem du das Plugin aktiviert hast, findest du die Einstellungsseite unter `Einstellungen > Add to Calendar Button`.

Dort kannst du die "Pro"-Checkbox aktivieren, um das Plugin stets im PRO-Modus zu nutzen.

## Schritt 4: Loslegen

### A: Block

Expand All @@ -27,5 +36,63 @@ Du kannst nun ganz einfach den entsprechenden "Block" mit dem WordPress Gutenber
Alternativ kannst du auch den Shortcode `[add-to-calendar-button]` verwenden und den proKey direkt darin hinzufügen:

```
[add-to-calendar-button proKey="prokey-of-your-event"]
[add-to-calendar-button prokey="prokey-of-your-event"]
```

## Überschreiben von Einstellungen

Du kannst einige Attribute des Buttons über das entsprechende Eingabefeld überschreiben.

Weitere Informationen findest du in der [allgemeinen Integrations-Anleitung](/de/integration/general.html#einstellungen-uberschreiben).

## Dynamische Verbindungen

Zusätzlich kannst du die Termin-Informationen mit Meta-Feldern, Advanced Custom Fields (ACF) oder einem Shortcode (sofern dieser einen passenden Text ausgibt) verbinden.
Dies erlaubt dir, dass der Button dynamisch Informationen beinhaltet, die du auf der jeweiligen Seite generiert hast.

### Wie es mit dem Block funktioniert

Wenn du den Gutenberg-Block-Editor verwendest, kannst du die dynamischen Felder direkt in den Block-Einstellungen definieren.

1. Wähle den Datentyp aus, den du verwenden möchtest (Meta-Felder, ACF, oder Shortcode)
2. Wähle den Termin-Eingabe-Typ, den du benötigst ("Ganztags" würde nur ein Start- und optional ein End-Datum anbieten; Datum + Zeit würde auch Zeit-Eingaben anbieten; Datetime würde eine kombinierte Eingabe bieten, falls dein Feld Datum und Zeit gleichzeitig enthält).
3. Füge den Namen des Feldes, das du verbinden möchtest in das entsprechende Eingabefeld ein. Wenn du zum Beispiel ein ACF-Feld mit dem Namen "my-start-date" hast, würdest du "my-start-date" in das Startdatum-Feld einfügen.
4. Teste das Ganze über die Seitenvorschau.

### Wie es mit dem Shortcode funktioniert

Wenn du den Shortcode verwendest, kannst du die dynamischen Felder als Shortcode-Attribute definieren.
Du würdest einfach den Feldnamen (ähnlich wie beim Block-Editor) in das entsprechende Attribut einfügen.

Wenn du zum Beispiel ein ACF-Feld mit dem Namen "my-start-date" hast, würdest du den Shortcode wie folgt einfügen:
```
[add-to-calendar-button prokey="prokey-of-your-event" acf-startdate="my-start-date"]
```

*Wie du siehst wird der Feld-Typ mit "acf-", "mf-"" oder "sc-" vorangestellt.*

<br />

Du kannst dieses Schema für die folgenden Informationen verwenden:

* startdate (“YYYY-MM-DD”)
* starttime (“HH:MM”)
* enddate (“YYYY-MM-DD”)
* endtime (“HH:MM”)
* startdatetime (“YYYY-MM-DDTHH:MM” oder “YYYY-MM-DD HH:MM”)
* enddatetime (“YYYY-MM-DDTHH:MM” oder “YYYY-MM-DD HH:MM”)
* name
* description
* location
* timezone

### Was zu beachten ist!

::: warning Wie in der allgemeinen Anleitung erwähnt, führt das Überschreiben von Termin-Informationen (wie dem Startdatum) zu einem Daten-Konflikt, da die automatisch generierte Landingpage und ics-Datei nichts von deinen WordPress-Daten wissen!
:::

Du kannst dieses Problem umgehen, indem du das [Event als privat markierst](/de/application-manual/groups-and-events.html#detail-seite-1), wodurch keine Landingpage oder ics-Datei erzeugt.
Der Button wird dann nicht mit einer vorgebauten ics-Datei arbeiten, sondern diese beim Aufruf dynamisch erzeugen.

Dies birgt leider den Nachteil, dass du eine schlechtere Kompatibilität akzeptieren musst (bspw. unterstützt Chrome auf iOS keine dynamische ics-Generierung) und dass du keine Event-Speichervorgänge tracken kannst.
Leider gibt es keine Möglichkeit, dieses Problem zu umgehen.
70 changes: 68 additions & 2 deletions src/integration/wordpress.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
outline: [2,3]
---

# How to use Buttons and RSVP Forms with WordPress

Expand All @@ -12,7 +15,13 @@ Install the [official package from the WordPress Plugin Directory](https://wordp

At your WordPress "Plugins" page, activate the plugin.

## Step 3: Use it
## Step 3: Make it PRO

After activating the plugin, you can find its settings page at `Settings > Add to Calendar Button`.

There, you can check the "Pro" checkbox to have it always set in PRO mode.

## Step 4: Use it

### A: Block

Expand All @@ -27,5 +36,62 @@ Simply use the "Block" within the WordPress Gutenberg Block Editor.
Alternatively, you can also use the shortcode `[add-to-calendar-button]` and add the proKey directly to it:

```
[add-to-calendar-button proKey="prokey-of-your-event"]
[add-to-calendar-button prokey="prokey-of-your-event"]
```

## Overriding settings

You can override some attributes of the button via the respective input field.
Check [the respective section at the general integration guide](/integration/general.html#overwrite-settings) for more information on that.

## Dynamic connections

Additionally, you can also connect the date information with Meta Fields, Advanced Custom Fields (ACF), or any shortcode (that prints a proper string).
This way, you can make the button dynamic, showing information you somehow have generated on the respective page.

### How it works with the Block

When using the Gutenberg Block Editor, you can simply define the dynamic fields at the block settings.

1. Select the type of data field you want to use (Meta Fields, ACF, or Shortcode)
2. Select the type of date input you require (All-day would only offer input for a start and optional end date; date + time would also show time inputs; datetime would offer a combined input, where your field holds date and time at once).
3. At the respective input, add the name of the field you want to use. For example, if you have an ACF field called "my-start-date", you would put "my-start-date" into the start date field.
4. Preview and test.

### How it works with the Shortcode

When working with the shortcode, you can also define the dynamic fields as shortcode attributes.
You would simply put the field name (similar to the Gutenberg Block Editor) into the respective attribute.

For example, if you have an ACF field called "my-start-date", you would put it like this:
```
[add-to-calendar-button prokey="prokey-of-your-event" acf-startdate="my-start-date"]
```

*As you can see, the type of the field you want to link, gets prefixed with "acf-", "mf-", or "sc-", depending on the type of field.*

<br />

You can use this scheme for the following information:

* startdate (“YYYY-MM-DD”)
* starttime (“HH:MM”)
* enddate (“YYYY-MM-DD”)
* endtime (“HH:MM”)
* startdatetime (“YYYY-MM-DDTHH:MM” or “YYYY-MM-DD HH:MM”)
* enddatetime (“YYYY-MM-DDTHH:MM” or “YYYY-MM-DD HH:MM”)
* name
* description
* location
* timezone

### What to mind!

::: warning As pointed out at the general integration guide, overriding core information (like the date) leads to a data mismatch, as the automatically generated landingpage and ics file are not aware of your WordPress data!
:::

You can circumvent this by setting the [event to private](/application-manual/groups-and-events.html#detail-page-1), which will not auto-generate a landingpage or ics file.
The button will then not use a pre-built ics file, but instead generate one on the fly.

This comes with the downside, that you need to deal with worse compatibility (for example, Chrome on iOS does not like dynamic ics generation) and are not able to track saving events.
Unfortunately, there is no way around this by design.

0 comments on commit 66cc8da

Please sign in to comment.