=== WebIndustry Safe Editor ===
Contributors: webindustry
Tags: client portal, content approval, agency, gutenberg, elementor, wpbakery
Requires at least: 6.8
Tested up to: 7.0.3
Requires PHP: 8.2
Stable tag: 1.2.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Give clients controlled access to approved Gutenberg, WPBakery, and Elementor fields without exposing the normal page editor.

== Description ==

WebIndustry Safe Editor lets an agency map exact content fields as Safe Zones. Assigned clients edit those fields in a focused portal without receiving access to the normal page builder.

The Free edition includes one active profile, one assigned page, three active Safe Zones, direct publishing, Activity, and field-only restore. Pro adds approval workflow, approver access, workflow email notifications, and unlimited profiles, pages, and Safe Zones. End clients never see pricing or license controls.

= Main features =

* Guided setup for the first client handoff.
* Server-verified Gutenberg, WPBakery, and Elementor field mapping.
* Direct-publish and approval workflows.
* Scoped Media Library image selection and upload.
* Field-only restore, activity history, and notifications.
* Object-level authorization, idempotency, leases, verification, and compensation.
* English and Bosnian (`bs_BA`) interfaces.
* Single-site and multisite lifecycle support.
* Administrator-only Free/Pro comparison with current limit usage.

== Installation ==

1. Back up the database and `wp-content`.
2. Upload the plugin ZIP from Plugins > Add New > Upload Plugin.
3. Activate WebIndustry Safe Editor.
4. Open Safe Editor > Setup and complete the guided steps.
5. Test one low-risk Safe Zone before assigning production content.

== Frequently Asked Questions ==

= Does a client receive normal WordPress page-edit access? =

No. Assignment adds only a direct Safe Editor portal capability and leaves the client's existing WordPress or WooCommerce role unchanged. Temporary exact-page save permission is granted only inside the verified persistence operation and removed immediately.

= What happens when a mapped field moves or changes structure? =

The mapping fails closed. An administrator must inspect and explicitly remap that Safe Zone.

= Does the plugin send telemetry or contact an external service automatically? =

The plugin sends no telemetry, advertising, workflow content, or client content. A Free installation with a configured license sends its license key, site URL, random installation ID, and plugin version to WebIndustry for activation and twice-daily status checks. Static Pro packages make no license request.

= Does deactivation or uninstall delete data? =

Deactivation never deletes data. Uninstall preserves data by default. Complete removal occurs only if an administrator first enables the explicit uninstall-removal setting.

= Which Elementor versions are supported? =

Version 1.2.1 supports verified Classic Elementor fields from 3.20.x through 4.2.x, plus the exact Atomic Heading contract in 4.2.x. It also supports selected Proactive/Case Addons PXL content widgets. Unknown contracts fail closed. Gutenberg and WPBakery operation do not require Elementor.

= Which WPBakery fields are supported? =

Version 1.2.1 supports Paragraph and Heading content inside Text Block elements, Custom Heading text, Button labels and links, and Single Image Media Library selections stored in standard WPBakery shortcodes. Unsupported theme-specific shortcodes stay locked.

== Privacy ==

The plugin stores profiles, assignments, mapped zones, changes, snapshots, operations, source locks, and audit events in the WordPress database. It can send workflow email through the site's configured WordPress mail transport. It collects no telemetry. Remotely activated licenses send only the minimum license verification fields listed above. WordPress personal-data exporter and eraser integrations are included.

== Changelog ==

= 1.2.1 =
* Uses the central webindustry.ba licensing API for server-verified PayPal subscription status.
* Keeps PayPal Client Secret out of every customer plugin and frontend request.
* Supports the separated Sandbox/Live webhook architecture without changing local Safe Editor data.

= 1.2.0 =
* Connects Free to the WebIndustry-hosted PayPal checkout and domain-bound license service.
* Adds administrator license activation, refresh, deactivation, expiry status, and a fixed seven-day connection grace period.
* Unlocks Pro without replacing the plugin while preserving every profile, mapping, change, and snapshot.
* Keeps PayPal credentials on the WebIndustry server and sends no workflow content or telemetry.

= 1.1.0 =
* Adds a real Free edition with server-enforced limits: one active profile, one assigned page, and three active Safe Zones.
* Keeps direct publishing, Activity, field restore, and all supported builders available in Free.
* Reserves approval workflow, approver access, workflow email notifications, and unlimited capacity for Pro.
* Adds current Free usage meters, contextual upgrade prompts, and a transparent PayPal checkout preview.
* Preserves existing profiles, mappings, content, changes, and snapshots when switching package editions.
* Does not claim live payment or automatic license delivery before the WebIndustry checkout service is connected.

= 1.0.3 =
* Expands verified Classic Elementor compatibility from 3.20.x through 4.2.x while keeping Atomic content version-gated.
* Adds field-specific Proactive/Case Addons PXL Heading, Text Editor, Button, Image, and Icon Box Safe Zones.
* Keeps PXL menus, forms, sliders, post grids, layout, style, and unsupported repeater data locked.
* Adds Mapper diagnostics for detected Elementor version, widget types, and setting keys instead of a generic empty result.
* Preserves existing 1.0.2 Elementor Classic mappings during the compatibility upgrade.

= 1.0.2 =
* Adds fail-closed WPBakery shortcode discovery and exact field-scoped publish and restore.
* Supports Text Block paragraphs/headings, Custom Heading, Button label/link, and Single Image fields.
* Improves the empty Mapper explanation and Help system status for builder compatibility.
* Adds WPBakery unit, integration, performance, browser, and accessibility coverage.

= 1.0.1 =
* Adds a client handoff panel with portal, login, password-reset and test links.
* Adds a WooCommerce My Account "Edit website" entry without changing the customer's WooCommerce role.
* Adds safe permanent profile deletion for profiles with no change history; archived/history-bearing profiles stay recoverable.
* Adds an administrator-only Plan & License screen identifying this package as Safe Editor Pro.
* Improves profile readiness indicators, direct access synchronization and client onboarding guidance.

= 1.0.0 =

* Production release with guided setup, Gutenberg and Elementor Safe Zones, approval/direct workflows, Media Library support, notifications, activity, restore, operations settings, Help/system status, WebIndustry branding, Bosnian localization, multisite lifecycle support, and release hardening.
