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/klerafukan/easyverein-go/archive/refs/heads/main.zipEasyverein Go ist ein WordPress-Plugin, das Mitglieder-, Gruppen-, Contact-Details- und Custom-Field-Daten aus der EasyVerein-API (v3.0) lokal in eigene Datenbanktabellen (wp_evg_*) spiegelt. Eingeloggte WordPress-Benutzer erhalten über einen Shortcode eine filterbare, sortierbare und exportierbare Mitgliedertabelle im Frontend. Der Admin-Bereich bietet vollständige Sync-Steuerung mit Fortschrittsbalken, Stop-Button und integriertem Log-Viewer.
Voraussetzungen
| Komponente | Mindestversion |
|---|---|
| WordPress | 5.8 |
| PHP | 7.4 |
| EasyVerein | Account mit API-Key (v3.0) |
Funktionsumfang
API-Sync mit EasyVerein
Alle Stamm- und Zuordnungsdaten werden in sechs aufeinanderfolgenden Phasen heruntergeladen und lokal gespeichert:
groups– Gruppen-Definitionencustom_fields– Custom-Field-Definitionenmembers_list– Mitgliederliste (Basisdaten)details– Detaildaten pro Mitglied (Contact-Details, Adresse usw.)member_cf– Custom-Field-Werte pro Mitgliedmember_groups– Gruppen-Zuordnungen pro Mitglied
API-Aufrufe erfolgen per Member (kein Bulk), um HTTP-429-Rate-Limiting zu vermeiden. Fehlertolerante Aufrufe mit automatischem Retry/Backoff sind eingebaut. Die WP-Option evg_last_sync_completed wird nach jedem abgeschlossenen Lauf aktualisiert.
Sync-Modi im Admin:
- Manueller Sync – startet einen vollständigen Lauf mit Fortschrittsbalken und Tick-by-Tick-Log; jederzeit per Stop-Button abbrechbar
- Quick-10-Test – verarbeitet nur 10 Mitglieder, schreibt in das Nightly-Präfix, ohne Produktivdaten zu berühren
- Nächtlicher Vollsync – täglich via WP-Cron (ca. 03:00 Uhr, per Checkbox aktivierbar)
- Nightly-Sync manuell simulieren – vollständiger Lauf in die Spiegel-Tabellen direkt aus dem Admin heraus
Automatische API-Token-Erneuerung
EasyVerein-API-Tokens sind 30 Tage gültig. Das Plugin erkennt den tokenRefreshNeeded-Response-Header und ruft automatisch GET /api/v3.0/refresh-token auf. Der erneuerte Token wird sofort gespeichert. Bei Erfolg und bei Fehler wird eine Benachrichtigungs-E-Mail an die hinterlegte Adresse gesendet. Im Admin-Bereich wird das Token-Alter farbcodiert angezeigt (grün / gelb / rot).
Frontend-Tabelle für Mitglieder
Der Shortcode [easyverein_table] rendert synchronisierte Mitglieder als sortierbare, paginierte Tabelle (100 Einträge/Seite) mit:
- Live-Suche über alle sichtbaren Spalten
- Gruppenfilter – gefiltert nach der benutzerbezogenen Gruppenfreigabe
- Custom-Field-Filter – nur freigeschaltete Feld/Wert-Kombinationen werden angeboten
- CSV-Export des aktuell gefilterten Ergebnisses
- Datenstand – letzter Sync-Zeitstempel in Berliner Zeit, über der Tabelle angezeigt
- Responsives Kartenlayout auf kleinen Viewports
- Sichtbarkeit beschränkt auf eingeloggte WordPress-Benutzer
Frontend-Kalender für Termine
Der Shortcode [evg_calendar] rendert einen interaktiven Monats-Kalender aus den synchronisierten EasyVerein-Terminen:
- Read-Only – zeigt standardmäßig nur öffentliche Termine (
is_public = 1) - Monat-Navigation mit Prev/Next-Tasten
- Farbige Event-Punkte pro Tag (Farbe = Kalender-Farbe aus EasyVerein)
- Tages-Popup beim Klick auf einen Tag mit Terminen (Zeit + Termin-Name)
- Detail-Modal beim Klick auf einen Termin (Titel, Kalender, Uhrzeit, Ort, Beschreibung)
- Kalender-Legende mit Farbzuordnung unterhalb des Grids
- Responsiv (mobile-gerecht), kein Login erforderlich
- AJAX-basiertes Laden pro Monat mit clientseitigem Cache (kein erneutes Laden beim Navigieren)
Benutzerbezogene Gruppenfreigabe
Admins legen im WordPress-Benutzerprofil fest, ob ein User alle EasyVerein-Gruppen oder nur eine definierte Teilmenge sieht. Die Einstellung wirkt sich auf den Gruppenfilter und die angezeigte Datenmenge im Frontend aus.
Custom-Field-Filter pro Benutzer
Im WordPress-Benutzerprofil lassen sich alle synchronisierten Feld/Wert-Kombinationen freischalten. Die Auswahl bestimmt, welche Merkmalsfilter im Frontend für diesen User sichtbar und aktiv sind.
Admin-Oberfläche
- Konfigurierbare API-Parameter (URL, Key) und Sync-Limits (Rate, Calls pro Tick, Seitenlimit)
- Separate Tabellen-Präfixe für manuellen und nächtlichen Sync
- Optionale E-Mail-Adresse für das Nachtlauf-Protokoll
- Debug-Modus schreibt API-Protokolle nach
wp-content/easyverein-debug/ - Nightly-Log-Viewer direkt im Admin (liest
nightly-YYYYMMDD-HHMMSS.log-Dateien) - Versionsnummer als fester Eintrag in der WordPress-Admin-Bar (
EVG X.X.X)
Installation & Setup
- Plugin-Ordner nach
wp-content/plugins/easyverein-gokopieren oder das Repository dort klonen. - Plugin im WordPress-Backend unter Plugins aktivieren. Das Datenbankschema (
wp_evg_*-Tabellen) wird automatisch viadbDelta()angelegt. - Unter Einstellungen → Easyverein Go den EasyVerein-API-Key sowie optional weitere Parameter (Rate-Limit, Seitenlimit, Tabellen-Präfixe, Log-E-Mail) eintragen und speichern.
- Erstsync über „Jetzt synchronisieren" starten oder den nächtlichen Sync per Checkbox aktivieren.
- Shortcode
[easyverein_table]in eine Seite oder einen Beitrag einfügen – nur eingeloggte Nutzer sehen die Tabelle. - Optional: Im jeweiligen WordPress-Benutzerprofil Gruppenfreigabe und Custom-Field-Filter konfigurieren.
Shortcode-Referenz
[easyverein_table]
[easyverein_table columns="first_name,family_name,email_private,phone,groups"]
Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
columns |
string | (Standardspalten aus EVG_Frontend::DEFAULT_COLUMNS) |
Kommagetrennte Liste der anzuzeigenden Spalten-Keys |
Verfügbare Spalten-Keys
| Key | Bezeichnung |
|---|---|
full_name |
Name (Vor- und Nachname kombiniert) |
first_name |
Vorname |
family_name |
Nachname |
email_private |
E-Mail-Adresse |
date_of_birth |
Geburtsdatum |
age |
Alter |
birth_year |
Jahrgang |
gender |
Geschlecht |
phone |
Telefon |
zip |
Postleitzahl |
city |
Ort |
street |
Straße |
address_suffix |
Adresszusatz |
group_name |
Gruppe (erste/primäre Gruppe) |
groups |
Alle Gruppen (kommasepariert) |
custom_fields |
Merkmale (Custom Fields) |
member_number |
Mitgliedsnummer |
contact_details |
Kontakt-Details |
updated_at |
Stand (letztes Datenbank-Update) |
Wird columns weggelassen, werden die in EVG_Frontend::DEFAULT_COLUMNS hinterlegten Standardspalten verwendet.
Kalender-Shortcode
[evg_calendar]
[evg_calendar title="Vereinstermine"]
[evg_calendar calendars="12,34" public_only="1"]
Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
title |
string | (leer) | Überschrift über dem Kalender |
calendars |
string | (alle) | Kommagetrennte Kalender-IDs (aus EasyVerein) zur Filterung |
public_only |
int | 1 |
1 = nur öffentliche Termine · 0 = alle Termine anzeigen |
Beispiele
[evg_calendar title="Termine im Mai"]
[evg_calendar calendars="5,12" public_only="1"]
Der Kalender kann auf beliebigen Seiten und Beiträgen eingebettet werden. Er benötigt keinen eingeloggten Benutzer.
WP-Cron & CLI
Der nächtliche Sync läuft als täglich geplantes WP-Cron-Event (evg_nightly_sync) um ca. 03:00 Uhr, sofern in den Einstellungen aktiviert.
WP-CLI-Befehle:
# Nightly-Sync sofort manuell auslösen
wp cron event run evg_nightly_sync
# Geplante Events prüfen
wp cron event list | grep evg_nightly_sync
Über Einstellungen → Easyverein Go → Tabellen-Präfix (nächtlich) lässt sich steuern, ob der Cron-Lauf in Spiegel-Tabellen (evg_nightly_*) oder direkt in die produktiven Tabellen (evg_*) schreibt.
Deployment (GitHub Actions)
Bei jedem Push auf main läuft der CI/CD-Workflow automatisch in zwei Schritten:
- Version-Bump – Die Patch-Version in
easyverein-go.phpundREADME.mdwird inkrementiert und als Commit zurück in den Branch geschrieben. - rsync-Deploy – Plugin-Dateien werden per SSH auf den Staging-Server übertragen.
Folgende GitHub-Secrets müssen im Repository hinterlegt sein:
| Secret | Beschreibung |
|---|---|
SSH_KEY |
Privater SSH-Schlüssel für den Deploy-User |
SSH_HOST |
Hostname / IP des Zielservers |
SSH_USER |
SSH-Benutzername |
SSH_PORT |
SSH-Port (Standard: 22) |
REMOTE_PATH |
Absoluter Pfad zum Plugin-Verzeichnis auf dem Server |
Entwicklung
- Kein Build-Schritt erforderlich – alle Dateien sind reines PHP/JS/CSS nach WordPress-Coding-Standards.
- Einstiegspunkt ist
easyverein-go.php; Klassen liegen unterincludes/. - Das Datenbankschema wird beim Plugin-Aktivieren via
dbDelta()angelegt und bei Updates automatisch migriert. - Debug-Logs werden ausschließlich bei aktiviertem Debug-Modus unter
wp-content/easyverein-debug/geschrieben – niemals dauerhaft in der Produktion aktivieren. - Nach Änderungen an der Sync-Logik stets einen vollständigen Lauf (inkl. Custom-Fields) durchführen und den Datenstand im Frontend prüfen.
- Git-Repository:
https://github.com/klerafukan/easyverein-go– Haupt-Branch:main
Plugin-Version: 3.2.25