=== Wunschbox ===
Contributors: (dein wordpress.org benutzername)
Tags: wunschbox, radio, webradio, musik, wunsch, song request, request, lautbox
Requires at least: 5.8
Tested up to: 6.6
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Eine moderne und stabile Wunschbox für Webradios. Einfach für Hörer, leistungsstark für Moderatoren.

== Description ==

Die Wunschbox ist eine komplette Neuentwicklung und bietet eine stabile, sichere und moderne Lösung für Webradios, die ihren Hörern eine Stimme geben möchten. Hörer können unkompliziert Musikwünsche und Grüße über ein simples Formular einreichen, während Moderatoren und Admins eine maßgeschneiderte Verwaltungsoberfläche erhalten.

Das Highlight ist ein interaktives, externes Widget, das speziell für die Einbindung in professionelle Sende-Software wie mAirList oder RadioBOSS entwickelt wurde.

**Hauptfunktionen im Überblick:**

* **Einfaches Einreichungsformular:** Hörer können über einen Shortcode auf jeder beliebigen Seite ihren Namen, einen Wunschsong und einen Grußtext hinterlassen.
* **Zentrales Admin-Dashboard:** Eine speziell entwickelte Verwaltungsseite im WordPress-Backend (statt der unübersichtlichen Standard-Ansicht), die alle aktiven Wünsche anzeigt und schnelle Aktionen erlaubt.
* **Klares Status-System:** Jeder Wunsch durchläuft einen nachvollziehbaren Workflow mit den Status: "Wartend", "Wird gesucht" und "Gespielt".
* **Interaktives externes Widget:** Eine geheime, token-geschützte URL liefert eine für Sende-Software optimierte, interaktive Ansicht der aktiven Wünsche. Der Status kann direkt aus dem Widget geändert werden.
* **Sicherheitsfeatures:** Alle Formulare sind mit Nonces gegen CSRF-Angriffe geschützt. Das externe Widget ist durch einen langen, zufälligen und jederzeit neu generierbaren Token abgesichert.
* **Datenbank-Pflege:** Administratoren können alle als "gespielt" markierten Wünsche mit einem Klick endgültig aus der Datenbank entfernen, um diese sauber zu halten.

== Installation ==

1.  Lade den `lautbox-wunschbox`-Ordner in das `/wp-content/plugins/`-Verzeichnis deiner WordPress-Installation hoch oder installiere die ZIP-Datei über das Plugin-Menü.
2.  Aktiviere das Plugin über das "Plugins"-Menü in WordPress.
3.  **Wichtig:** Nach der ersten Aktivierung, gehe zu **Wunschbox -> Einstellungen**. Dort findest du die automatisch generierte, geheime URL für dein externes Widget.
4.  Erstelle eine neue Seite (z.B. "Wunsch einreichen") und füge in den Inhaltsbereich den folgenden Shortcode ein: `[lautbox_wunschbox_formular]`
5.  Das war's! Deine Wunschbox ist einsatzbereit.

== Funktionen im Detail ==

**Shortcode: `[lautbox_wunschbox_formular]`**

* **Funktion:** Fügt das Formular zum Einreichen von Wünschen auf einer beliebigen Seite oder in einem Beitrag ein.
* **Verwendung:** Erstelle eine Seite und füge diesen Shortcode im Inhaltseditor ein, um deinen Hörern die Wunschbox zugänglich zu machen.
* **Berechtigung:** Kann von allen Besuchern (auch Gästen) verwendet werden.

**Admin-Dashboard**

* **Ort:** Direkt im WordPress-Adminmenü unter dem Punkt "Wunschbox".
* **Funktionen:**
    * Zeigt alle aktiven Wünsche (Status "Wartend" und "Wird gesucht") übersichtlich an.
    * Ermöglicht das Ändern des Status zu "Wird gesucht", "Gespielt" oder das Verschieben in den Papierkorb ("Löschen").
    * Zeigt eine Liste der 50 zuletzt gespielten Wünsche als Archiv an.
    * **Nur für Administratoren:** Ein Button, um alle Wünsche aus dem "Gespielt"-Archiv endgültig zu löschen.

**Externes Widget**

* **Funktion:** Eine minimalistische, interaktive Webseite, die speziell für die Einbettung in andere Programme (z.B. mAirList, RadioBOSS) entwickelt wurde. Sie nutzt Bootstrap 5 für eine optimale, responsive Darstellung.
* **URL:** Die URL ist geheim und wird auf der Seite **Wunschbox -> Einstellungen** angezeigt. Behandle diese URL wie ein Passwort.
* **Interaktivität:** Du kannst den Status von Wünschen direkt aus dem Widget heraus auf "Gespielt" setzen oder Wünsche löschen, ohne die Sende-Software verlassen zu müssen.
* **Sicherheit:** Falls der Token kompromittiert wird, kann ein Administrator auf der Einstellungsseite jederzeit einen neuen generieren, wodurch die alte URL sofort ungültig wird.

== Changelog ==

= 1.0.0 =
* Erste stabile Version
* Beinhaltet: Custom Post Type, Status-System, benutzerdefiniertes Admin-Dashboard, Frontend-Formular via Shortcode.
* Beinhaltet: Interaktives, token-geschütztes externes Widget mit Bootstrap 5 Styling.
* Beinhaltet: Admin-Funktion zum endgültigen Löschen alter Wünsche.
* Beinhaltet: Einstellungsseite zum Anzeigen der Widget-URL und zum Neu-Generieren des Tokens.
