## 0.5.17 – Update Delivery Test
- Test-Release zur Prüfung der Update-Auslieferung über die Rent-a-Pastor-Plattform.
- Plugin-Version auf 0.5.17 angehoben, damit WordPress das Update gegenüber 0.5.16 eindeutig erkennt.
- Release-Paket bereinigt: internes Entwicklungslog wird nicht mehr mit ausgeliefert.
- Keine fachliche Funktionsänderung an Onboarding, Schema, Matching oder Partnerdaten-Synchronisation.
- PHP-Syntaxprüfung bestanden.

## 0.5.16 – Public Event Data Preparation
- Social-Media- und öffentliche Profilfelder ergänzt: Instagram, Facebook, Pinterest, YouTube, TikTok, LinkedIn und Xing.
- Social-Profile werden beim Speichern als URLs bereinigt und an die Mutterplattform übertragen.
- Partner-Payload enthält jetzt `same_as` als URL-Liste und `social_profiles` mit Plattformnamen.
- Übernachtungs- und Wohnmobilfelder im Payload auf die tatsächlichen Optionsnamen gemappt (`hotel_available`, `camper_parking`) und zusätzlich mit Alias-Feldern gesendet.
- Datenqualitäts-Metadaten ergänzt: Schema-Payload-Version, letzter Prüfzeitpunkt und Quelle.
- Frontend-Schema berücksichtigt die erweiterten Social-Profile für `sameAs`.


## 0.5.15 – Regression Fix & Step 2 Stability
- Release-Candidate-Stand wiederhergestellt: KI-Fit bleibt aus dem Menü entfernt.
- Trauredner-Service bleibt veröffentlichte Unterseite der gewählten Hochzeitsseite.
- Fortschrittslogik bleibt dynamisch und zeigt nach Schritt 3 100 %.
- Fatal Error in Schritt 2 behoben: falscher Verweis `tri_state_fields` auf `tri_fields` korrigiert.
- Datenvollständigkeit aus v0.5.13 bleibt erhalten.

## v0.5.12 – Release Candidate: Dashboard & Market Ready UX

- Plugin-Version auf 0.5.12 angehoben.
- Übersicht berechnet den Fortschritt robuster aus tatsächlich abgeschlossenen Schritten.
- Übersicht zeigt nach veröffentlichter Trauredner-Service-Seite 100 % und eine Abschlussmeldung.
- Schritt 0 wurde aufgeräumt: Updatekanal und technische API-Basis werden nicht mehr angezeigt.
- Entwicklungs-, Test- und Pilotformulierungen aus der Oberfläche entfernt.
- Trauredner-Service bleibt veröffentlichte Unterseite der ausgewählten Hochzeitsseite.
- Schritt 3 nutzt jetzt den marktreiferen Button „Speichern & Veröffentlichen“.
- Sitemap-Check gegen undefinierte Variablen abgesichert.
- Dashboard zeigt die installierte Plugin-Version.

## 0.5.9 – GPS AJAX Stability Fix

- GPS-Ermittlung nutzt jetzt zuerst eine kleine ZIP-only-Geodatei.
- Verhindert HTTP-500-Probleme durch zu große JSON-Dekodierung auf Shared Hosting.
- PLZ 63500 / Seligenstadt wird direkt aus lokalem Index aufgelöst.
- City-Fallback bleibt nur ohne PLZ aktiv.

# Wedding AI Engine Changelog

## 0.5.7 – Lokale GEO-Datenbank & GPS-Fix
- Rent-a-Pastor-DACH-Ortsdatenbank erneut aus dem Mutterplugin übernommen.
- Kompakter PLZ-/Ortsindex ergänzt: `data/ortsdaten-plz-index.json`.
- GPS-Button nutzt jetzt zuerst den lokalen Index statt die große vollständige JSON-Datei.
- Schritt 1 übernimmt fehlende GPS-Koordinaten beim Speichern automatisch aus der lokalen Ortsdatenbank, wenn PLZ/Ort vorhanden sind.
- AJAX-Fehlermeldungen für den GPS-Test geben jetzt zumindest HTTP-Status aus.
- Beispiel Seligenstadt/63500 wird über PLZ zuverlässig aufgelöst.

## 0.5.5 – Field Test Registration & Update Setup

- Schritt 0 als echte Feldversuch-Einrichtung erweitert.
- Plattformstatus über `GET /platform/info` ergänzt.
- Updatekanal `stable`/`beta` vorbereitet.
- Automatische Updates bleiben optional und werden nur bei gesetztem Haken erlaubt.
- Sandboxmodus für Testinstallationen ergänzt.
- Plugin-Installation erhält eine dauerhafte interne Instance-ID.
- Partner-Registrierung bleibt bewusst aktiv durch den Anwender: Erst Schritt 2 sendet Daten an Rent-a-Pastor.
- Partner-Payload erweitert um Sandbox, Updatekanal und Instance-ID.
- PHP-Syntaxprüfung bestanden.


## 0.5.4 – Field Test Setup & Update Channel

- Schritt 0 als echte Feldtest-Einrichtung erweitert.
- Auswahl der bestehenden Hochzeitsseite bereits in Schritt 0 möglich.
- Button „Speichern und Test starten“ speichert Auswahl und startet den KI-/Sichtbarkeitscheck.
- In Schritt 0 kann ein eigener Rent-a-Pastor-API-Endpunkt hinterlegt werden.
- Option für automatische Updates ergänzt.
- Eigener Update-Checker vorbereitet: Abfrage über den Rent-a-Pastor Platform Core, WordPress-Updateanzeige und optionale automatische Pluginupdates.
- Schritt 2 kann Testdaten an den Rent-a-Pastor Platform Core senden und spätere Aktualisierungen über gespeicherte API-Zugangsdaten ausführen.
- Partner-UUID, API-Key, API-Secret, Sync-Status und letzte Synchronisation werden lokal gespeichert.
- Devlog und Changelog ergänzt.

# Changelog

## v0.4.10 – Human Content & Layout Polish
- Eckig/Rund wirkt jetzt global auf Landingpage-Elemente, nicht nur auf das Matchingtool.
- Raum-/Bereichsbilder werden groß ausgespielt: ein Bild über volle Breite, zwei Bilder je zur Hälfte.
- Doppelter Bildteaser „Feiern Sie/Euch in unseren Räumen...“ wurde entfernt.
- Raumtexte wurden zu einem zusammenhängenden Fließtext überarbeitet.
- Wiederholende Generator-Sätze wie „[Raumname] bietet Ihnen...“ wurden entfernt.
- Personenanzahl und Preisrahmen werden im Raumtext fett hervorgehoben.
- PHP-Syntaxprüfung bestanden.



## v0.4.9 – Step Save Data Preservation Fix

- Fehler behoben: Beim Speichern bzw. Neugenerieren in Schritt 2 wurden Raum-/Bereichsdaten aus Schritt 1 nicht mehr überschrieben oder geleert.
- Ursache: Die zentrale Sanitizer-Funktion hat `rooms` bei jedem Options-Speichern auf ein leeres Array gesetzt, auch wenn das aktuelle Formular gar keine `rooms[]`-Felder gesendet hat.
- Zusätzlich abgesichert: Checkbox-Felder werden nur noch aktualisiert, wenn sie im aktuellen Formular tatsächlich vorhanden sind.
- Ziel: Jeder Schritt speichert nur seine eigenen Felder. Daten aus anderen Schritten bleiben erhalten.
- PHP-Syntaxprüfung bestanden.


## v0.4.8 – Ceremony Image Teaser & Schema Review
- Vor dem Abschnitt „Unser Service für Eure/Ihre Trauredner-Suche“ werden bis zu zwei ausgewählte Bereichs-/Raumbilder ausgespielt.
- Untertitel je nach Du/Sie-Auswahl: „Feiert in unseren Räumen Eure Trauung“ bzw. „Feiern Sie in unseren Räumen Ihre Trauung“.
- Schema- und Datenausgabe geprüft: Hochzeitsseite erhält Location-/Venue-Schema aus Schritt 1, Traurednerseite erhält FAQPage, Matching-Service, Dataset- und Kooperationsschema.
- Keine Änderung an der Matchinglogik.
# v0.4.6 – Match Cards, Entfernung & Bildausschnitt

- Rednerkarten zeigen jetzt Name, Kurzbeschreibung und Entfernung, sofern die öffentlichen Rednerdaten passende Entfernungs- oder Geodaten liefern.
- Matching-Abfrage nutzt bei jedem Klick die aktuell im Shortcode ausgegebenen Standortdaten der Eventlocation und hängt einen Cache-Buster an die Anfrage.
- 16:9-Bilder werden im quadratischen Bildrahmen rechts ausgerichtet beschnitten.
- Kartentexte wurden menschlicher formuliert und der Button lautet nun „Trauredner kennenlernen“.
- Changelog und internes Devlog ergänzt.

# Changelog

## 0.4.2 – Matching Required & Display Shape

- Auswahl „Matchingtool anzeigen“ aus Schritt 2 entfernt.
- Das Matchingtool ist jetzt fester Bestandteil der Trauredner-Landingpage.
- Neue Auswahl für die Darstellung des Matchingtools: rund/weich oder eckig/klar.
- Erste inhaltliche Überschrift im Shortcode entfernt, damit die Seite direkt mit dem redaktionellen Einstieg startet.
- Hinweis ergänzt, dass Rednerprofile externe URLs auf Rent-a-Pastor sind.
- Page-Titel der Testseite auf „Trauredner-Service für Eure Hochzeit“ angepasst.

## 0.4.1 – Human Content Polish

- Button zur Hochzeitsseite entfernt.
- Hochzeitsseite wird natürlich im Fließtext verlinkt.
- Technische Begriffe aus der Besucherseite entfernt.
- Längere und menschlichere Textblöcke.

## 0.4.3 – Live Matching Test & Structured Partnership Schema
- Erster testweiser Live-Zugriff auf die öffentliche Rent-a-Pastor-Rednerdatenbank.
- Das Matching nutzt den Ort der Eventlocation im Hintergrund; keine sichtbare Ortsauswahl mehr.
- Die Zeremonieart ist fest auf freie Trauung / Trauredner gesetzt und wird nicht abgefragt.
- Rednerprofile werden als externe Rent-a-Pastor-Profilseiten gekennzeichnet.
- Schema-Ausgabe der Trauredner-Seite erweitert: FAQPage, WebApplication/Service, Dataset und Kooperationshinweis mit rent-a-pastor.com.
- Matchingdarstellung bleibt über rund/eckig steuerbar.

## 0.4.4 – Matching-Mischpult aus Rent-a-Pastor-Logik

- Matchingbereich stärker an das Rent-a-Pastor-Mischpult angelehnt.
- Ortsauswahl und Zeremonieart bleiben vollständig ausgeblendet.
- Ort und Zeremonieart werden im Hintergrund aus den Eventlocation-Daten bzw. fest aus „Freie Trauung“ gezogen.
- Sichtbare Hinweise „Ausgangspunkt“ und „Zeremonie“ entfernt.
- Hauptregler und erweiterter Bereich für Stil, Humor, christliche Elemente, Ritualtiefe, Individualität, Gästeeinbindung, Spontaneität und Musikdramaturgie ergänzt.
- Öffentliche Rednerdatenbank bleibt die Datenquelle für die Testausgabe.


## v0.4.5 – Match Card Polish & Image Mapping
- Match-Karten robuster gegen verschachtelte API-Daten gemacht.
- Ausgabe von `[object Object]` verhindert.
- Bildfelder werden rekursiv aus typischen API-Strukturen ausgelesen.
- Rednerbilder werden quadratisch dargestellt.
- Fallback-Texte für Du/Sie sprachlich verbessert.
- Fallback-Bild bleibt nur erhalten, wenn wirklich kein Bildfeld gefunden wird.


## v0.4.7 – Real Matching Engine & Distance Fix
- Entfernung wird nicht mehr aus möglichen API-Feldern übernommen, sondern aus Eventlocation- und Redner-Koordinaten lokal neu berechnet.
- Geodaten aus dem Rent-a-Pastor-Core wurden für die PLZ-/Ortsauflösung ins Partnerplugin übernommen.
- Matching-Ergebnisse werden nach Entfernung sortiert, solange keine Regler verändert wurden.
- Nach Änderung der Regler wird nach Match-Prozent und danach nach Entfernung sortiert.
- Suchradius wird beim Filtern berücksichtigt, damit weit entfernte Redner bei lokalen Tests nicht mehr in die ersten Ergebnisse rutschen.
- Rednerkarten wurden reduziert: Name, „Trauredner aus Ort“, Match-Prozent, Entfernung und Button.
- Lange generische Beschreibungstexte auf den Rednerkarten entfernt.

## 0.5.0 – AI Visibility Check & Smart Setup

- Neuer Schritt 0: KI- & Sichtbarkeitscheck für die bestehende Hochzeitsseite.
- Neuer Einrichtungsablauf: Schritt 1 Eventlocation, Schritt 2 kostenloses Eventlocation-Profil, Schritt 3 optionaler Trauredner-Service.
- Schritt 1 erweitert um GPS-Koordinaten mit Button „Adresse prüfen und GPS-Koordinaten übernehmen“.
- Schritt 1 erweitert um Öffnungszeiten mit Wochenplan und Terminoptionen.
- Schritt 1 erweitert um verknüpfte Seiten: Kontakt, Galerie, Preise, Übernachtung, Anfahrt, AGB, Datenschutz und Impressum.
- Schema-Ausgabe der ausgewählten Hochzeitsseite erweitert um GeoCoordinates, OpeningHoursSpecification, ContactPoint und SameAs.
- Dashboardtexte und Nutzerführung stärker auf Laien, Sichtbarkeit und Eventlocation-Profil ausgerichtet.
- Internes Setup auf die neue Plattformlogik vorbereitet.


## Version 0.5.1 – Progress Logic Fix

- Fehler behoben: Schritt 2 zeigte fälschlich bereits 100 % KI-Basisoptimierung an.
- Fortschrittslogik zentralisiert: Schritt 1 = 35 %, Schritt 2 = 75 %, Schritt 3 = 100 %.
- Gesamtbewertung erreicht 100 % erst nach erzeugter Trauredner-Service-Seite.
- Dashboard-Kachel für Schritt 2 von 100 % auf 75 % korrigiert.


## Version 0.5.2 – Critical Admin Fix

- Kritischen Fehler in Schritt 2 behoben.
- Ursache: Die Fortschrittslogik verwies auf `self::PROGRESS_STEPS`, die Konstante war aber nicht im Code definiert.
- Fortschrittswerte jetzt als kompatible statische Klassenvariable eingebunden.
- Schritt 2 bleibt bei 75 %, Schritt 3 bei 100 %.

## 0.5.3 - Schema-only Wedding Page Output
- Schritt 1 Button in 'Speichern und KI-Grundoptimierung erstellen' umbenannt.
- Bestehende Hochzeitsseite wird über WordPress-Seite bevorzugt statt URL-Feld ausgewählt.
- Strukturierte Daten werden automatisch nur auf der ausgewählten Hochzeitsseite ausgegeben.
- Sichtbare Inhalte der Hochzeitsseite bleiben unverändert.
- FAQ-Informationen aus Schritt 1 werden auf der Hochzeitsseite ausschließlich als FAQPage-Schema ausgegeben.
- Fallback-URL bleibt optional für Sonderfälle erhalten.


## 0.5.6 – Field Test UX & Schema Output Fix

- Schema-Ausgabe auf der ausgewählten Hochzeitsseite robuster gemacht.
- Hochzeitsseite wird per Post-ID und zusätzlich per URL-Abgleich erkannt.
- Admin-Kommentar im Quelltext ergänzt, wenn Wedding-AI-Schema aktiv ist.
- Schritt 1 speichert nun über eigenen Admin-Post-Handler und springt nach dem Speichern zurück zum aktiven Abschnitt.
- Schritt 2 hat nur noch einen Button: „Speichern & Senden“.
- Schritt 3 hat nur noch einen Button: „Speichern & Erstellen“.
- Fehler bei der Trauredner-Seitenerstellung werden abgefangen und als Admin-Meldung angezeigt statt als kritischer Fehler.
- GPS-Ortsauflösung toleranter gemacht, z. B. „Seligenstadt“ vs. „Seligenstadt, Hessen“.
- Nächster-Schritt-Buttons ergänzt.

## 0.5.8 - Aktivierungsfix & kompakte GEO-Datenbank
- Entfernt die große vollständige Ortsdatenbank aus dem Partnerplugin, um Installations- und Aktivierungsprobleme auf Shared-Hosting-Umgebungen zu vermeiden.
- Nutzt für GPS und Entfernungslogik ausschließlich den kompakten PLZ-/Ortsindex.
- Frontend-Geocoding greift nicht mehr auf die entfernte große JSON-Datei zu.
- Lokale GPS-Auflösung für PLZ/Ort bleibt erhalten.


## v0.5.10 - Schema Output & Cache Purge Fix
- Behebt den Feldtestfall, dass nach Schritt 1 auf der ausgewählten Hochzeitsseite kein Wedding-AI-Schema im Quelltext sichtbar war.
- Schema-Ausgabe jetzt mit zusätzlichem Footer-Fallback, falls ein Theme oder Plugin die Head-Ausgabe ungewöhnlich behandelt.
- Ausgabe enthält Debug-Kommentar und data-wae-version für Admin-Prüfung.
- Nach dem Speichern wird versucht, bekannte Cache-Plugins zu leeren, insbesondere WP Fastest Cache, W3TC, WP Rocket und LiteSpeed.
- Schema-Zielseite wird weiterhin über Post-ID und URL-Abgleich geprüft.

## v0.5.11 – Dashboard, Sitemap & Published Service Page
- KI-Fit-Menüpunkt entfernt; Übersicht ist jetzt das zentrale Dashboard.
- Fortschritt berechnet sich dynamisch aus 4 Einrichtungsschritten und zeigt nach Schritt 3 korrekt 100 %.
- Trauredner-Service-Seite wird nicht mehr als Entwurf, sondern veröffentlicht erstellt.
- Trauredner-Service wird standardmäßig als Unterseite der gewählten Hochzeitsseite unter `/trauredner/` angelegt.
- KI-Check prüft nun auch, ob eine XML-Sitemap vorhanden ist.
- Falls keine Sitemap gefunden wird, kann eine einfache Wedding-AI-Sitemap aktiviert werden.
- Updateprüfung wird zusätzlich einmal täglich per WordPress-Cron vorbereitet; Cache der Updateprüfung jetzt 24 Stunden.


## v0.5.13 – Vollständigere Datenübertragung
- Partner-Payload für die öffentliche Eventlocation-Datenbank erweitert.
- Raum-/Bereichsbilder werden nicht mehr nur als WordPress-Media-ID gesendet, sondern zusätzlich als vollständige Bild-URLs mit Metadaten.
- Verknüpfte Seiten werden strukturiert übertragen: Hochzeitsseite, Kontakt, Galerie, Preise, Übernachtung, Anfahrt, AGB, Datenschutz und Impressum.
- Service- und Ausstattungsmerkmale werden zusätzlich flach übertragen, damit die Mutterplattform sie leichter normalisieren und im öffentlichen Schema ausgeben kann.
- Landingpage-URL, Ansprache und Darstellungsform werden im Payload ergänzt.
