=== suchen.tv Streaming Widget ===
Contributors: suchentv
Tags: streaming, mediathek, gutenberg, movie, embed
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.3.32
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Free German Mediathek first, then flatrate – live offers, blocks, editorial picks.

== Description ==

Show your readers **where to watch legally in Germany – free Mediathek first**.

The **suchen.tv** widget highlights German public media libraries first, then paid flatrate, rent or buy. Ideal if your site cares about **kostenlos streamen** and legal free options – not only subscription logos.

= Why blogs install it =

* **Mediathek-first:** Free offers are surfaced before subscriptions
* Live DE availability – no stale “where to stream” paragraphs
* Block editor + shortcodes – insert under a review in seconds
* After activation a published page **Kostenlose Mediathek** is created (search, categories, top films, leaving soon)
* Optional **Redaktionstipps:** your curated lists, live offers from suchen.tv
* Light theme by default, Schema.org Offers, lazy iframe – blog-friendly & DSGVO-aware

= Redaktionstipps – your lists, live free + paid offers =

Build curated movie lists under **suchen.tv → Listen**. Embed them as Redaktionstipps; readers still see Mediathek-first availability where it exists.

* Max. 10 lists × 20 titles each
* Search & add titles in the admin UI
* Block **suchen.tv Redaktionstipps** or `[suchentv_picks list="meine-horror"]`
* Only titles with posters; offers update automatically

= Features =

* Blocks: Streaming Widget, Listen-Widget, **Startseite**, **Redaktionstipps**
* Shortcodes: `[suchentv]`, `[suchentv_hub]`, `[suchentv_list]`, `[suchentv_picks]`
* Layouts: compact / standard / detail / card
* Themes: light (default) / dark
* Schema.org JSON-LD (Movie/TVSeries + Offers)
* Lazy-Load iframe, auto height, oEmbed, block patterns
* Partner ID, optional consent notice, Site Health check
* Optional: hide suchen.tv branding (readers stay on the blog)
* Admin guide: **suchen.tv → Anleitung**
* Updates: new ZIP from suchen.tv/embed, or wordpress.org once listed (no self-update ping)

= External service =

* HTTPS iframes from suchen.tv (`/widget/stream-box`, `/widget/list-box`, `/widget/picks`, `/widget/hub`)
* Editor search via WP REST proxy
* Optional Schema fetch to suchen.tv API (cached 12h)
* Privacy: https://suchen.tv/datenschutz · https://suchen.tv/impressum · https://suchen.tv/embed

= Trademarks =

This plugin is **not affiliated** with Netflix, Amazon, Disney, Joyn, ARD, ZDF, Arte or other providers. Those names appear only to identify availability lists (“list for …”). All trademarks belong to their owners.

== Installation ==

1. Install & activate. A published page **Kostenlose Mediathek** is created. The WordPress homepage and menus are not changed. Optionally tick “use as homepage” under suchen.tv → Settings.
2. Open **suchen.tv → Anleitung** for the click-by-click guide (H1, category blurbs, editorial lists).
3. Optional: add the page to a menu, or embed extra widgets with `/suchen` / `[suchentv id="550"]`.
4. Optional: **suchen.tv → Listen** – default list “Redaktionstipps” is created automatically; tick “show on homepage”.

== Frequently Asked Questions ==

= Does the plugin create a page? =

Yes. On activation it publishes **Kostenlose Mediathek** (search + live rails, Mediathek first). Homepage and menus stay yours. Optionally tick “Als WordPress-Homepage verwenden”. Draft the page under suchen.tv → Settings.

= Where do I edit the homepage headline? =

**suchen.tv → Einstellungen** (H1, intro, description per category). Some block themes hide page content on the front page – that is expected.

= Does it show free Mediathek offers? =

Yes. Free / Mediathek offers are prioritized in the widget when available for the title in Germany. Paid flatrate, rent and buy follow.

= Can I show my own film recommendations? =

Yes. A default list **Redaktionstipps** is created on first visit. Add more lists under suchen.tv → Listen, tick “Auf Startseite zeigen”, or embed with the Redaktionstipps block / `[suchentv_picks]` on a **normal** page (not the hub homepage).

= Does the plugin work offline without suchen.tv? =

No. Widget content is provided by suchen.tv as a documented third-party service.

= How do plugin updates work? =

Download a new ZIP from https://suchen.tv/embed or, once listed, update via wordpress.org. The plugin does not ping suchen.tv for updates (required for Plugin Check / directory review).

== Screenshots ==

1. Light card widget under a film review.
2. Block editor: large posters, insert and done.
3. List / Redaktionstipps with posters (light theme).

== Changelog ==

= 1.3.32 =
* Text domain aligned with wordpress.org slug (suchen-tv-streaming-widget)
* Tested up to WordPress 7.1

= 1.3.31 =
* Plugin Check: JSON-LD script context escaping (JSON_HEX_* / wp_get_inline_script_tag)
* Removed bundled de_DE .po/.mo – translations via translate.wordpress.org after approval
* Sanitize remote title data before Schema.org output

= 1.3.30 =
* Deploy ZIP is Plugin Check clean: no self-updater, no Update URI

= 1.3.29 =
* Plugin Check: escaping, Tested up to 7.0, no load_plugin_textdomain (directory), uninstall prefixes

= 1.3.28 =
* Directory-safe: homepage is never changed unless you opt in
* Third-party names only as “list for …” identifiers; trademark note in readme

= 1.3.27 =
* Category tabs: editable list headline + description per rail (Mediathek, Heute Abend, …)

= 1.3.26 =
* Privacy guidance for bloggers: Anleitung + settings box (mention suchen.tv in your privacy policy; optional on-page notice)

= 1.3.25 =
* Clearer help text: category blurbs live in WP settings and are sent into the hub iframe

= 1.3.24 =
* Paid titles (Abo/Leihen/Kauf) no longer keep the “Kostenlose Mediathek” heading

= 1.3.23 =
* Theme search (header magnifying glass) redirects to the streaming hub instead of empty WordPress post results

= 1.3.22 =
* Anleitung (Admin + /embed) auf den aktuellen Stand: Homepage-Texte, Default-Liste, Rails, Hub vs. Gutenberg

= 1.3.21 =
* Default editorial list “Redaktionstipps” (live Mediathek) on the homepage

= 1.3.20 =
* Editorial lists: checkbox “show on homepage” under the live hub

= 1.3.19 =
* Settings: optional description per hub category (Mediathek, Netflix, …)

= 1.3.18 =
* Settings: H1 and intro text above the streaming hub

= 1.3.17 =
* Hub iframe shrinks after opening a title (no leftover black band)

= 1.3.16 =
* Forces the hub on the homepage even when a block theme (e.g. Spiel) uses a front-page template without post content

= 1.3.15 =
* Install: Hub becomes the WordPress homepage (latest-posts default only)
* Overview shows all top categories as rails (Mediathek, leaving soon, tonight, Top Filme, Netflix, Prime, Disney+, Joyn)

= 1.3.14 =
* Hub iframe loads immediately (no blank about:blank)
* Admin bar link to the Kostenlose Mediathek page

= 1.3.13 =
* On install: publishes a page “Kostenlose Mediathek” (search, categories, top films)
* Does not change the WordPress homepage or menus (directory-review safe)
* Settings still let you draft the page or optionally use it as homepage

= 1.3.12 =
* Optional streaming start page: search, categories, top films, leaving soon
* Settings toggle to create/draft the page and optionally use it as the WP homepage

= 1.3.11 =
* Setting: hide suchen.tv branding (stay on the blog; provider click-outs remain)
* Tiny “Verfügbarkeit DE” instead of Powered-by when branding is off

= 1.3.10 =
* Default list setting (incl. random); set as default from Listen admin
* List widget / shortcode use site default when list is empty

= 1.3.9 =
* Admin: predefined live lists (Endet bald, Top Neuheiten…) + editorial templates (Top 5, Beste Filme)
* List widget: neu-auf-netflix, neu-auf-prime, besten-filme-netflix

= 1.3.8 =
* Fix: Admin Listen page stuck on „Lädt…“ (asset enqueue after top-level menu)

= 1.3.7 =
* Self-updates only when Update URI is suchen.tv; wporg build script strips updater

= 1.3.6 =
* Self-hosted auto-updates from suchen.tv (update API + WP updater hooks)

= 1.3.5 =
* Help: step-by-step „Top 5“ Redaktionstipps (Admin + embed guide)

= 1.3.4 =
* Plugin description focused on free Mediathek / kostenlos streamen (DE)

= 1.3.3 =
* Admin: Anleitung under suchen.tv – step-by-step install & embed

= 1.3.2 =
* Top-level admin menu „suchen.tv“ (Settings + Lists)

= 1.3.1 =
* Plugin list action links + welcome notice

= 1.3.0 =
* Curated editorial lists (Redaktionstipps)

= 1.2.0 =
* Card layout, Lazy-Load, Schema Offers, Patterns, oEmbed

= 1.1.2 =
* Block UX polish, CTA, how-to video

= 1.1.1 =
* Light theme, Schema.org, screenshots

== Upgrade Notice ==

= 1.3.32 =
Text domain fix for Plugin Check / wordpress.org slug.

= 1.3.31 =
wordpress.org review: JSON-LD escaping + no bundled translation files.

= 1.3.30 =
No self-update ping – Plugin Check / wordpress.org package. New versions via ZIP or Directory.

= 1.3.29 =
Plugin Check fixes for wordpress.org (escaping, WordPress 7.0 tested header).

= 1.3.28 =
Homepage stays yours after install. Provider names are labels only (“list for …”), not a partnership.

= 1.3.24 =
Commercial films no longer show the free Mediathek heading.

= 1.3.23 =
Film search in the theme header now opens the streaming hub, not an empty blog search.

= 1.3.22 =
Admin guide updated: homepage H1/intros, default Redaktionstipps, live category rails.

= 1.3.21 =
Default list “Redaktionstipps” is created automatically; or suchen.tv → Lists → “Default-Liste anlegen”.

= 1.3.20 =
Own lists on the streaming homepage: suchen.tv → Lists → “show on homepage”.

= 1.3.19 =
Optional description under each category rail: suchen.tv → Settings.

= 1.3.18 =
H1 and intro for the streaming homepage: suchen.tv → Settings.

= 1.3.17 =
Iframe height follows the title card – no empty black band.

= 1.3.16 =
Homepage shows search and category rails even with themes that hide page content.

= 1.3.15 =
Homepage is the streaming hub with all top categories. Uncheck in settings to keep your old front page.

= 1.3.14 =
Hub widget visible immediately; admin bar link to Kostenlose Mediathek.

= 1.3.13 =
Install and go: a published “Kostenlose Mediathek” page is created. Homepage and menus stay yours.

= 1.3.12 =
New: optional Streaming start page (search + categories + top films + leaving soon), on/off in plugin settings.

= 1.3.11 =
New setting: hide suchen.tv branding so readers stay on your post (provider links unchanged).

= 1.3.10 =
Default list (incl. random) for Listen-Widget; set under Einstellungen or Listen.

= 1.3.9 =
Predefined live lists + editorial templates (Top 5, Beste Filme) in Admin → Listen.

= 1.3.8 =
Fixes Listen admin UI stuck on loading.

= 1.3.7 =
wordpress.org packages: no self-updater; suchen.tv ZIP keeps auto-updates.

= 1.3.6 =
Auto-updates from suchen.tv until wordpress.org listing.

= 1.3.5 =
Clearer Top-5 / Redaktionstipps steps under suchen.tv → Anleitung.

= 1.3.4 =
Clearer Mediathek-first positioning for blog admins and wordpress.org.

= 1.3.3 =
New: suchen.tv → Anleitung with step-by-step install & embed guide.

= 1.3.2 =
Admin menu „suchen.tv“ in the left sidebar.

= 1.3.1 =
Plugin list links and welcome tip after activation.

= 1.3.0 =
New: editorial lists with live streaming offers.
