=== Leuchter.ORG Business Zitate ===
Contributors: leuchter
Donate link: https://business-zitate.de
Tags: quotes, business, sidebar, gutenberg-block, widget
Requires at least: 5.8
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.3.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Embed curated business quotes from business-zitate.de on your WordPress site. Shortcode, Gutenberg block and classic widget.

== Description ==

Leuchter.ORG Business Zitate is the official WordPress plugin for [business-zitate.de](https://business-zitate.de), a curated German-language collection of business quotes operated by Leuchter.ORG. Display a daily or random business quote on your site, optionally filtered by category.

**Features**

* Shortcode `[leucbuzi_quote]` for pages, posts and text widgets
* Gutenberg block "Leuchter.ORG Business Zitat" with live preview
* Classic widget for sidebars
* Configurable: quote of the day or random quote, optionally limited to a single category
* Free color choice (background color matches your design; text color is calculated automatically based on contrast)
* All links return to business-zitate.de with UTM parameters
* No cookies, no tracking pixels, no advertising in the WordPress admin

The plugin embeds the quote widget via iframe from business-zitate.de. The plugin itself does not set any cookies on your site and does not store any personal data.

Translations included: German (de_DE, source), English (en_US), French (fr_FR), Spanish (es_ES), Italian (it_IT).

== External services ==

This plugin connects to **business-zitate.de**, a service operated by Leuchter.ORG (Daniel Leuchter, Germany). The connection is required for the core functionality: displaying the quotes. The following connections are made:

**1. Quote embed (required, frontend)**

Every page that contains the shortcode, block or widget loads an iframe from `https://business-zitate.de/embed/quote`. When the iframe loads, the visitor's browser transmits the following data to business-zitate.de (just like for any other external resource):

* IP address
* User-Agent
* Referrer URL (restricted by `referrerpolicy="no-referrer-when-downgrade"`)
* The display parameters set via shortcode/block (type, category, color)

No personal data of your visitors is stored in databases. No cookies are set on your WordPress site by this plugin.

**2. Category list (required, admin)**

When you open the plugin settings under "Settings → Leuchter.ORG Business Zitate" or the Gutenberg block, the plugin makes a single request (cached for one hour) to `https://business-zitate.de/api/categories` to fetch the current list of available categories. Only standard HTTP headers are transmitted (your server's IP address, the WordPress User-Agent).

**3. Anonymous usage statistics (optional, DISABLED by default)**

You can explicitly enable "Anonymous usage statistics" in the plugin settings. Only then will the plugin send the following data to `https://business-zitate.de/api/plugin/ping` on activation, deactivation and once every 24 hours when an admin page is loaded:

* Event name (`plugin_activated`, `plugin_deactivated`, `plugin_admin_view`)
* Hostname of your site (`home_url()`)
* Plugin version
* WordPress version

This data is used solely to measure plugin reach. By default this feature is **disabled** and no data is transmitted.

**Legal:** Privacy policy of business-zitate.de: <https://business-zitate.de/datenschutz>. Terms of service: <https://business-zitate.de/nutzungsbedingungen>. A Data Processing Agreement (DPA / AVV) under Art. 28 GDPR is available on request — contact hi@business-zitate.de.

== Installation ==

1. Download the plugin ZIP and upload it via "Plugins → Add New → Upload Plugin" in WordPress.
2. Activate the plugin.
3. Configure defaults under "Settings → Leuchter.ORG Business Zitate".
4. Use the shortcode `[leucbuzi_quote]`, the Gutenberg block, or the classic widget.

== Frequently Asked Questions ==

= How much does the plugin cost? =

Nothing. Both the plugin and the use of the widget are free of charge.

= Do I need an account? =

No. No registration, no API key required.

= Is visitor data transmitted? =

Yes. When the iframe loads, the visitor's IP address, User-Agent and referrer are transmitted to business-zitate.de — just like for any external resource. No cookies are set and no personal data is stored. See the "External services" section for details.

= Can I customize the design to match my site? =

Yes. In the settings you choose a key color for the background; text contrast is calculated automatically. Each shortcode/block can override colors, type and category individually.

= Which shortcode attributes are supported? =

`[leucbuzi_quote type="daily|random" category="slug" color="#hex" width="100%" height="260"]`

= How often does the quote of the day change? =

Daily at midnight (UTC). Within a calendar day, every visitor sees the same quote.

= Does the plugin send telemetry? =

By default, **no**. If you explicitly enable it in the settings, it sends anonymous usage statistics (hostname, plugin version, WP version). See the "External services" section for details.

== Changelog ==

= 1.3.2 =
* Add `de_DE` translation file (identity translation; source language is German). German WordPress installations now load the matching `.mo` automatically and translate.wordpress.org no longer reports the plugin as "not yet translated to German".

= 1.3.1 =
* Fix: text domain in plugin header was still set to the previous slug `leuchter-business-zitate` and is now correctly `leuchterorg-business-zitate` (matches the slug, all gettext calls and the `/languages` files)
* Fix: shortcode example in FAQ updated to `[leucbuzi_quote]`

= 1.3.0 =
* Moved inline `<script>` from admin settings page into a separate file (`assets/js/admin.js`) and enqueued it via `wp_enqueue_script()` (WordPress.org review feedback)
* Unified ALL code prefixes to a single distinctive 8-character prefix `leucbuzi`:
  - Constants: `LOBZP_*` -> `LEUCBUZI_*`
  - Namespace: `LeuchterOrgBusinessZitate\` -> `Leucbuzi\`
  - Options/transients: `lobzp_*` -> `leucbuzi_*`
  - Shortcode: `[leuchterorg_business_zitat]` -> `[leucbuzi_quote]`
  - Widget id: `leuchterorg_business_zitate_widget` -> `leucbuzi_widget`
  - Variables in uninstall.php: `$lobzp_*` -> `$leucbuzi_*`
  - HTML field IDs in admin: `bz_*` / `lobzp_*` -> `leucbuzi_*`

= 1.2.0 =
* Display name changed to "Leuchter.ORG Business Zitate" (Leuchter.ORG is the operator's brand and domain)
* Slug changed to `leuchterorg-business-zitate` to match the contributor handle and the operator's domain
* New shortcode: `[leucbuzi_quote]`
* New Gutenberg block name: `leuchterorg-business-zitate/widget`
* All prefixes updated accordingly: constants `LOBZP_*`, namespace `LeuchterOrgBusinessZitate\`, options/transients `lobzp_*`, widget id `leuchterorg_business_zitate_widget`
* Text domain updated to `leuchterorg-business-zitate`
* Translations regenerated for en_US, fr_FR, es_ES, it_IT

= 1.1.0 =
* Renamed plugin to "Leuchter Business Zitate" for distinctiveness
* Added unique 4+ character prefixes for all globals, constants, namespaces and stored data
* Added `leuchter` to readme contributors

= 1.0.3 =
* Fully prefix global variables in uninstall.php

= 1.0.2 =
* Add /languages folder with .pot template and translations
* Translate readme.txt to English

= 1.0.1 =
* Switch telemetry to strict opt-in

= 1.0.0 =
* First public release

== Upgrade Notice ==

= 1.3.2 =
Adds the German translation file. Recommended for German installations.

= 1.3.1 =
Fixes text domain mismatch in plugin header — required for translations to load on translate.wordpress.org.

= 1.3.0 =
Shortcode renamed from `[leuchterorg_business_zitat]` to `[leucbuzi_quote]`. Please update any pages that used a previous beta version. Inline admin script moved to a separate file per WordPress.org guidelines.

= 1.2.0 =
Plugin renamed to "Leuchter.ORG Business Zitate". Shortcode is now `[leucbuzi_quote]` — please update if you used a previous beta.
