=== Lovely AI Image Labels ===
Contributors: michaelquedzuweit
Tags: ai, image label, transparency, woocommerce, elementor
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.8.24
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Add responsive AI image labels, information popups, and labeled downloads to WordPress images.

== Description ==

Lovely AI Image Labels assigns image-label profiles to supported JPEG, PNG, or WebP images in the WordPress Media Library. Free supports standard WordPress output, Gutenberg blocks, classic content, WooCommerce product images, galleries, local image links, and dynamically loaded content. Pro adds Elementor images, Elementor backgrounds, and extended builder recognition; individual builder combinations are confirmed only after testing against an installed builder version.

= Original protection and derivatives =

Original image files are never overwritten. Images remain unchanged on standard pages and receive a clickable HTML overlay. On download, the plugin creates or refreshes a separate protected image derivative containing the AI label, popup heading, and popup text.

= Links and downloads =

Normal image links and existing lightboxes keep using the unchanged frontend image. Only an explicit labeled-image download uses the signed derivative with the label, information heading, and information text burned into the downloaded copy.

= Design and fonts =

You can configure the font family, font weight, letter spacing, capitalization, corner radius, size, margin, colors, opacity, position, and information icon. The selectable catalog contains 16 bundled local fonts in exactly two supported weights: Regular 400 and Bold 700. Complete local WOFF2 files power the browser preview, and local TTF files power protected image derivatives. No remote font request is made.

= Display locations =

Two independent settings control whether labels and their information popups are shown on WordPress and gallery thumbnails or on product cards in WooCommerce shop and product archive views. Both locations remain enabled by default. Disabling either setting changes only the frontend display; media assignments and derivative files remain unchanged.

= Videos remain unchanged =

Videos are intentionally left unchanged. Lovely AI Image Labels Pro does not label, replace, process, download, or modify video files.

= Edition =

Lovely AI Image Labels Pro includes Elementor images and backgrounds, advanced profiles and design options, extended builder support, bulk assignment, and lightbox support. Labeled image downloads and standard WordPress, Gutenberg, and WooCommerce image labels are available in both Free and Pro. The plugin code is released under GPL v2 or later. Commercial services such as distribution, updates, or support do not change the GPL rights for the plugin code.

= Privacy =

Image processing remains local on your WordPress server; image files and label text are not sent to Lovely AI Image Labels for rendering. The direct Free edition contacts wp-ai-label.com only to check for and download Free updates. Lovely AI Image Labels uses the Freemius SDK for optional Free-version usage consent and for Pro purchase, license activation, account management, and protected Pro updates. The activation screen explains the transmitted site and account data before consent or license activation. The public REST lookup accepts no more than 50 local upload URLs per request and does not expose file-system paths.

= Important =

Lovely AI Image Labels provides tools for visibly labeling selected images. It does not provide legal advice or guarantee compliance with any specific law, regulation, or disclosure requirement.

== Installation ==

1. Go to Plugins > Add New > Upload Plugin and select the ZIP file.
2. Activate the plugin.
3. Go to Media > Lovely AI Image Labels and review the profiles and appearance.
4. Assign labels to the desired images in the Media Library.
5. Let WP-Cron process queued derivatives, or use the manual batch button.

When upgrading from Free to Pro, use Upgrade to Pro in the WordPress dashboard. The link opens the Freemius checkout directly without requiring the optional usage opt-in. After purchase, download the Pro ZIP from the Freemius email, upload and activate it through Plugins > Add New Plugin > Upload Plugin. Pro then deactivates the Free edition while preserving settings and media assignments.

== Frequently Asked Questions ==

= Are original files modified? =

No. Labeled image downloads are created in a separate protected derivatives directory.

= Can every direct original URL be blocked? =

Media links generated by the plugin or detected in the DOM are changed to signed derivatives. WordPress cannot portably and completely block a known static uploads URL entered directly without additional web-server or CDN rules.

= Does the plugin load external fonts? =

No. All 16 selectable font families are bundled locally, and the plugin makes no remote font request.

= Under which license is the plugin released? =

Lovely AI Image Labels Pro is released under GPL v2 or later.

== Changelog ==

= 1.8.24 =
* Replaces both Free upgrade actions with a direct Pro ZIP upload action after a completed purchase is detected.
* Shows the existing email and upload reminder instead of sending paid customers through checkout again.

= 1.8.22 =
* Restores the WordPress reminder to upload Premium after opening the hosted Freemius checkout.
* Reloads the original WordPress tab after returning from the checkout tab so the next installation step is visible.

= 1.8.21 =
* Confirms automatic Free updates from wp-ai-label.com using the restored secure update channel.
* Keeps every Free upgrade action on the hosted Freemius Lifetime checkout in a new browser tab.

= 1.8.19 =
* Restores secure Free update delivery from wp-ai-label.com with SHA-256 package verification.
* Sends every Free upgrade action directly to the Freemius Lifetime checkout in a new browser tab.

= 1.8.18 =
* Adds fixed, two-line Lovely AI Image Labels branding to public Free labels.
* Carries the same Free branding into generated labeled image downloads.
* Switches the Free build from WordPress.org mode to direct distribution through wp-ai-label.com and Freemius.

= 1.8.17 =
* Updated the visible product name to Lovely AI Image Labels.

= 1.8.16 =
* Removed website-only updater and automatic premium installer code from the WordPress.org package.
* Limited manual Pro installation guidance to Lovely AI Image Labels and plugin-management screens.
* Resolved the reported WordPress.org internationalization issue.

= 1.8.15 =
* Remembers the manual Pro installation step before opening checkout so the upload guidance survives every Freemius return path.

= 1.8.14 =
* Reliably shows the manual Pro ZIP installation guidance after the Freemius checkout, including standard checkout returns and already connected paid licenses.

= 1.8.13 =
* Prevents a fatal error when Freemius supplies an empty pricing URL while WordPress builds the admin menu.

= 1.8.12 =
* Sends every upgrade action directly to checkout without requiring a Free opt-in first.
* Keeps the manual Pro ZIP installation guidance required for the WordPress.org edition.

= 1.7.58 =
* Selects EUR by default through Freemius' official currency filter.
* Places the approximate VAT-inclusive price directly inside the Freemius pricing page.
* Keeps pricing, checkout, tax calculation, and licensing on the standard Freemius flow.

= 1.7.57 =
* Restores the official Freemius pricing and checkout flow for every Free upgrade action.
* Adds a prominent approximate VAT-inclusive price above the Freemius pricing table.
* Removes the custom pricing redirect introduced in 1.7.55.

= 1.7.56 =
* Prevents an admin-area fatal error when Freemius supplies an empty pricing URL while building its menu.

= 1.7.55 =
* Replaced the confusing net-price plan table with one clear Pro upgrade page.
* Shows an approximate EUR 14 VAT-inclusive price before opening the Freemius checkout.
* Routes all Free upgrade actions through the same price explanation and secure checkout.

= 1.7.54 =
* Cleared WordPress Plugin Checker translation and documented-query findings without changing plugin behavior.

= 1.8.7 =
* Switched every Free upgrade button to Freemius' standard in-dashboard pricing and checkout flow.
* New Free installations see Freemius' optional opt-in once; existing installations are not interrupted on update.
* Skipping opt-in no longer sends Upgrade buttons back to the connection screen.
* Paying Free installations receive one consistent manual Pro ZIP upload step.

= 1.8.6 =
* Restored the complete settings-page layout after the public plugin-name change.
* Settings assets now use the stable technical page slug instead of a display-name-derived screen ID.

= 1.8.5 =
* Renamed the visible plugin name to Lovely AI Image Labels for WordPress.org compatibility.
* Unified all Free upgrade links around the same checkout and manual Pro installation flow.
* The Pro upload reminder now appears only after a verified checkout return, not when checkout is merely opened.

= 1.8.4 =
* Highlights the post-checkout email instructions and sends subsequent Upgrade actions directly to the Pro ZIP upload screen.
* Uses the WordPress.org-compatible mq-ai-image-labels text domain consistently.

= 1.8.3 =
* Added a persistent, user-friendly post-checkout notice with direct Pro ZIP upload instructions.

= 1.8.2 =
* Fixed Profile 1 custom label text such as "KI" being mistaken for a legacy default after saving.

= 1.8.1 =
* Upgrade links now open the Freemius checkout directly without requiring the optional telemetry opt-in.
* Premium installation remains manual for WordPress.org compliance, with clear post-purchase instructions.

= 1.8.0 =
* Prepared the Free edition for distribution and updates through WordPress.org.
* Removed the self-hosted Free updater and automatic Premium package installation from the Free plugin flow.

= 1.7.48 =
* Test release for verifying the direct WordPress update action introduced in 1.7.47.

= 1.7.47 =
* Fixes double-encoded security nonces in the direct Free-to-Pro upgrade and installed-Pro activation links.
* Adds a direct Update now action to the Free plugin row when a newer self-hosted release is available.

= 1.7.46 =

* First update delivered automatically to self-hosted Lovely AI Image Labels Free installations.

= 1.7.45 =

* Uses the public wp-ai-label.com manifest page for secure Free update discovery.

= 1.7.44 =

* First Free release delivered through the secure self-hosted WordPress update channel.

= 1.7.43 =

* Adds a secure self-hosted update channel for Free installations downloaded from wp-ai-label.com.
* Verifies Free update packages with SHA-256 before WordPress installs them.
* Keeps Premium updates exclusively on Freemius and prepares a later handoff to WordPress.org.

= 1.7.42 =

* Route the Freemius Upgrade menu through a dedicated direct-checkout action without a pricing-page redirect loop.

= 1.7.41 =

* Route every Freemius Upgrade menu link directly to account connection, Pro installation/activation, or checkout as appropriate.
* Remove the intermediate pricing-page step from the WordPress admin Upgrade link.

= 1.7.40 =
* Sends connected Free users directly to the Freemius checkout instead of the intermediate pricing page.
* Sends customers who already own Pro directly to installation or activation.

= 1.7.39 =
* Verifies delivery of Free and Pro updates through the standard Freemius update channel.

= 1.7.38 =
* Activates an already installed Pro package directly instead of opening an installer dialog without an activation action.
* Keeps the official Freemius installer as the fallback when the Pro package is not installed yet.

= 1.7.37 =
* Fixes the 1.7.36 startup error by safely registering the Pro-install notice.
* Keeps unconfirmed Freemius accounts in the connection flow before checkout.
* Adds an official Install Lovely AI Image Labels Pro action when a confirmed paid license still runs Free.

= 1.7.36 =
* Restored the official Freemius connection and checkout flow for Free-to-Pro upgrades.
* Added a clear connection label and a manual Pro-installation notice when a paid license is active but Free is still running.

= 1.7.35 =
* Pass checkout template data through a reference-safe variable so the anonymous Free-to-Pro checkout opens without a PHP fatal error.

= 1.7.34 =
* Keep Free updates available after skipping data sharing and open the purchase checkout directly when the user later chooses Upgrade to Pro.

= 1.7.33 =
* Preserve a first-time Freemius account connection when the initial response does not include plan data, so paid checkout can continue into the automatic Pro installer.

= 1.7.32 =
* Prevent the bundled Freemius SDK from crashing during first opt-in when its plan list is temporarily unavailable.

= 1.7.31 =
* Restore Freemius ownership of its Account and Pricing pages and migrate every legacy unconnected state through the official activation flow.

= 1.7.30 =
* Migrate legacy Freemius anonymous-mode installs once through the official connection flow without changing plugin settings or profiles.

= 1.7.29 =
* Restore the standard Freemius connection redirect for fresh Free installations.

= 1.7.28 =
* Align the Freemius integration with the self-hosted dashboard configuration.

= 1.7.27 =
* Prevented Free and Pro global functions from being declared in the same activation request.
* Kept the Freemius edition handoff ahead of all shared classes and plugin functions.

= 1.7.26 =
* Prevents a fatal class collision while WordPress hands activation from an active Free copy to Pro.
* Starts an explicitly requested automatic Pro installation immediately instead of waiting through Freemius's countdown.

= 1.7.25 =
* Starts the Freemius Pro installer once after Free is updated on a site that already owns an active Pro license.
* Avoids repeated redirects after a failed installation while allowing a later license change to retry the installer.

= 1.7.24 =
* Continues a successful Free checkout directly into Freemius's automatic Pro installer without a second activation button.
* Lets the Lovely AI Image Labels premium installer replace an existing inactive Pro directory before activation.
* Keeps Free active when installation fails and preserves settings, profiles, and media assignments during the Pro handoff.

= 1.7.23 =
* Elementor image and background labels now require Pro.
* Free keeps the Elementor controls visible as a Pro notice with a direct upgrade button.
* Detected classic page builders show a Free/Pro compatibility notice; Free suppresses labels inside their builder output.
* Media Library assignments remain unchanged and continue to work for standard WordPress and Gutenberg images in Free.

= 1.7.22 =
* Restored the Freemius in-dashboard Free-to-Pro flow so a connected purchase can automatically install, activate, and license Pro.
* Enabled Freemius-hosted updates for Free installations that are not distributed through WordPress.org.
* Automatically deactivates older Lovely AI Image Labels Free and Pro basenames while preserving all settings, profiles, and media assignments.

= 1.7.21 =
* Keeps the green Upgrade to Pro menu entry attached to its registered WordPress admin page, preventing permission errors.
* Starts the connected one-site Lifetime checkout from that page while retaining the automatic Pro installation context.

= 1.7.20 =
* Stops creating a second clean cover image during the native right-click flow.
* Keeps the existing image on the protected burned-in source until the next normal interaction, so labels remain visible without an unlabeled duplicate.

= 1.7.19 =
* Registers the internal Freemius Lifetime checkout in every Free state, including after Opt Out.
* Sends both the blue settings button and the single green Upgrade to Pro menu link through the same working checkout route.
* Prevents duplicate checkout rendering when Freemius has already registered the route.

= 1.7.18 =
* Keeps one green Upgrade to Pro submenu visible in Free, including anonymous Freemius installations.
* Removes a duplicate Freemius Upgrade submenu when both menu sources are present.

= 1.7.17 =
* Uses Freemius anonymous mode in Free so buyers skip the technical opt-in screen without losing the WordPress installation context.
* Returns every Upgrade to Pro action to the in-dashboard Lifetime checkout, allowing Freemius to connect the purchased license and offer automatic Pro installation.
* Keeps the hosted checkout only as a fallback when the Freemius SDK checkout is unavailable.

= 1.7.16 =
* Routes every Free upgrade through the public Freemius Lifetime checkout, including domains with an older Freemius registration.
* Prevents WordPress permission errors caused by stale connected-checkout state.

= 1.7.15 =
* Keeps Free activation inside the normal Lovely AI Image Labels onboarding instead of redirecting to the technical Freemius opt-in screen.
* Retains Freemius license onboarding for the Pro package.

= 1.7.14 =
* Opens the hosted Freemius Lifetime checkout immediately for unregistered Free users, without a technical opt-in step before purchase.
* Keeps the connected in-dashboard checkout for already registered installations.

= 1.7.13 =
* Forces the Freemius reconnect screen for every unregistered Free state, including interrupted opt-in attempts.
* Removes Freemius's duplicate annual Upgrade action so buyers see one clear Lifetime upgrade path.

= 1.7.12 =
* Explains the one-time Freemius connection before checkout in plain language.
* Opens the Lifetime checkout automatically after the buyer selects Allow & Continue, without requiring a second Upgrade click.

= 1.7.11 =
* Sends unregistered Free installations to the Freemius connection screen before checkout.
* Uses the connected Lifetime checkout after registration so Freemius can install Pro and activate the purchased license automatically.
* Keeps the hosted checkout as a fallback when the Freemius SDK is unavailable.

= 1.7.10 =
* Lets Freemius register its connected checkout handler before routing the visible Upgrade menu to it.
* Fixes the invalid wp-admin destination produced by 1.7.9 while preserving automatic Pro installation after purchase.

= 1.7.9 =
* Uses the connected Freemius Lifetime checkout so eligible WordPress sites can automatically install Pro and activate the purchased license.
* Keeps the hosted checkout as a fallback when the Freemius SDK is unavailable.

= 1.7.8 =
* Redirects the Freemius-generated Upgrade menu to the hosted Lifetime checkout as well as the Studio buttons.

= 1.7.7 =
* Sends Free users directly to the hosted Freemius Lifetime checkout instead of the loading-only WordPress pricing screen.

= 1.7.6 =
* Keeps the protected image active between right pointer-down and the browser's native context-menu action.
* Recognizes URL-only Elementor image widgets used by imported and older layouts.

= 1.7.5 =
* Embeds Elementor image metadata in the initial page markup so labels can appear without waiting for the REST lookup.
* Anchors archive labels to untransformed layout geometry so Elementor hover effects no longer move them.
* Keeps the protected labeled source active while the browser handles native “Open image in new tab” and “Save image as” actions.

= 1.7.4 =
* Uses GD first for PNG and WebP protected copies to avoid black output from affected ImageMagick servers, while retaining the auto-orienting ImageMagick path for JPEG.

= 1.7.3 =

* Fixed activation when upgrading directly from a legacy Pro package installed in the Free plugin directory.
* Added the official Freemius Free-to-Pro basename handoff.
* Packaged Pro under the configured `mq-ai-image-labels-premium` paid slug so Free and Pro replace each other safely.

= 1.7.1 =

* Restored a clear Free-to-Pro preview and Freemius lifetime upgrade action.
* Added an explicit license-activation action when the Pro package is installed without an active license.
* Kept the browser's native image context menu while routing “Open image in new tab” and “Save image as” to the protected labeled derivative.
* Kept normal frontend images and original Media Library files unchanged.

= 1.7.0 =

* Established the canonical Lovely AI Image Labels source baseline and normalized frontend runtime asset names.

= 1.6.8 =

* Added the information-popup heading and text to protected labeled image downloads.
* Added a download action to the information popup and on-demand derivative generation.
* Extended CSS-background detection for Divi, WPBakery, Beaver Builder, Bricks, Oxygen, Breakdance, Kadence, GenerateBlocks, Avada, and SiteOrigin.
* Kept original Media Library files, normal frontend images, image links, and lightboxes unchanged; burned-in copies are download-only.
* Added same-host HTTP/HTTPS tolerance for sites whose stored WordPress URL has not yet been migrated to HTTPS.
* Prevented failed public renders from being retried indefinitely and cleaned failed temporary derivative directories.

= 1.6.6 =

* Added a live settings preview and a modern Studio admin for label appearance.
* Added 16 local fonts with exactly two supported weights: Regular 400 and Bold 700.
* Added custom icon color controls and renderer-font repair for protected image derivatives.
* Preserved image-only behavior and made no remote font request.

= 1.6.5 =

* Added the exact shared label and information-popup visual component used by the Pro frontend and the local Free preview.
* The local Free preview uses that shared component and stores nothing.

= 1.6.4 =

* Added a visible Lovely AI Image Labels menu with Getting Started, Label Images, and Settings shortcuts.
* Added a one-time activation guide and direct plugin-row links.

= 1.6.3 =

* Updated release metadata and versioned frontend asset names for the 1.6.4 image-label release.

= 1.6.2 =

* Removed legacy edition-based branding from labels, popups, previews, and image derivatives.
* Kept Free and Pro differentiated by their actual feature sets.

= 1.6.1 =

* Removed local video selection, scanning, playback integration, and derivative generation.
* Removed the FFmpeg and FFprobe dependency and related server checks.
* Preserved all image features, including profiles, designs, Elementor images and backgrounds, WooCommerce, bulk assignment, lightbox support, and labeled image downloads.
* Existing video files and old metadata are left untouched during the update.
* Updated all current documentation for image-only behavior.

= 1.6.0 =

* Label local MP4, WebM, and QuickTime sources in the Media Library.
* Permanently labeled MP4/H.264/AAC video derivatives using FFmpeg.
* Labeled JPEG, PNG, and WebP download derivatives.
* Signed inline and download delivery with byte-range support.
* General REST batch lookup for up to 50 local media URLs.
* Universal scanner for images, Picture/Source, videos, local media links, and CSS backgrounds.
* Responsive media viewer for regular left clicks; existing lightboxes and modified clicks remain unchanged.
* Video labels remain visible in native fullscreen; a transparent hitbox opens the information popup in the embedded preview.
* Safe waiting-state display without an unlabeled video fallback.
* WP-Cron queue with locks, error isolation, retries, and manual batch processing.
* Server-side status display for FFmpeg, FFprobe, overlay, H.264, AAC, and the local renderer font.
* Improved horizontal image centering and responsive viewer and video presentation.
* Independent visibility controls for thumbnails and WooCommerce shop archives.
* AI label controls for self-hosted Elementor Video widgets, including safe global Media Library assignment.
* Free and Pro are distributed as separate GPL packages with clearly separated feature sets.

= 1.5.0 =

* Renamed to Lovely AI Image Labels and prepared separate Free and Freemius-managed Pro distributions.
* Font and shape design options plus a responsive HTML overlay.
