=== Media Alt Text Sync ===
Contributors: bergeritsolutions
Tags: alt text, seo, accessibility, media, images
Requires at least: 5.9
Tested up to: 6.9
Requires PHP: 8.0
Stable tag: 2.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Syncs alt texts from the media library into all posts and pages automatically.

== Description ==

**Media Alt Text Sync** scans all your posts, pages and custom post types for embedded images and compares the `alt` attribute in the content with the alt text stored in the WordPress media library. With one click you can sync everything at once.

**Supported editors & block builders:**
* Native Gutenberg blocks (Image, Gallery, Cover, Media & Text, …)
* UAGB (Ultimate Addons for Gutenberg)
* Kadence Blocks
* Classic Editor (TinyMCE / HTML)

= Free Features =
* Scan up to **50 images** across all posts and pages
* Visual overview: which images are in sync, which are out of sync
* One-click bulk apply: push all media library alt texts into your content
* Deutsch / English (fully translated)

= Pro Features =
* **Unlimited images** – no scanning limit
* **Auto-Sync** – whenever you update an alt text in the media library, it is instantly applied to all posts that use the image
* **Scheduled Sync** – automatic WP-Cron sync (hourly / twice daily / daily / weekly)
* **Relative URL conversion** – convert absolute upload URLs to relative URLs for better portability
* **Full Block JSON support** – patches alt text inside Gutenberg block comment attributes
* Priority email support

= Pro Plans =
* Monthly: €3 / month
* Yearly: €29 / year (best value)
* Lifetime: €79 one-time

== Installation ==

1. Upload the `media-alt-text-sync` folder to `/wp-content/plugins/`
2. Activate the plugin through the **Plugins** screen in WordPress
3. Go to **Settings → Alt Text Sync**
4. Click **Apply now** to sync all alt texts

For Pro: enter your license key in the **Pro License** section and click **Activate**.

== Frequently Asked Questions ==

= Will this overwrite alt texts I have set manually in posts? =

Yes. The plugin uses the alt text stored in the **media library** as the single source of truth and overwrites any alt text in the post content. Make sure your media library alt texts are correct before applying.

= Does it work with page builders like Elementor or Divi? =

Currently the plugin scans standard WordPress post content (`post_content`). Page builders that store their data in custom tables or custom fields are not supported yet.

= Can I use the Pro license on multiple sites? =

Each license key is valid for **one domain**. You can transfer a license to another domain by using the **Deactivate / Transfer** button in the plugin settings.

= What happens when my subscription expires? =

Pro features are deactivated. Your content and all synced alt texts remain intact. You can re-subscribe at any time to unlock Pro features again.

= Is the plugin compatible with Multisite? =

The plugin works on individual sites within a multisite network. Each site requires its own Pro license.

== Screenshots ==

1. Dashboard with sync statistics and out-of-sync image overview
2. One-click apply button to sync all alt texts at once
3. Pro license activation screen
4. Upgrade to Pro panel with plan selection

== Changelog ==

= 2.0.0 =
* New: Pro license system with Auto-Sync, Scheduled Sync and Relative URL conversion
* New: Upgrade panel with plan selection directly in the plugin settings
* New: License activate / deactivate / transfer workflow
* New: WP-Cron scheduled sync (hourly, twice daily, daily, weekly)
* New: Full Deutsch / English translation
* Improved: DB query caching with wp_cache_get / wp_cache_set
* Improved: All output escaped to WordPress coding standards
* Improved: wp_safe_redirect() used throughout
* Improved: wp_parse_url() replaces parse_url()

= 1.2.0 =
* Added UAGB and Kadence Blocks support
* Added Block-JSON alt text patching
* Added relative URL conversion tool

= 1.0.0 =
* Initial release

== Upgrade Notice ==

= 2.0.0 =
Major update with Pro license system and Auto-Sync. Fully backwards compatible – no data migration needed.
