=== Custom Quicktag Editor by Volade ===
Contributors: volade
Tags: quicktags, editor, tinymce, classic-editor, html
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Add custom Quicktag buttons to the Classic Editor HTML and Visual toolbars. Presets, JSON import/export, per post type.

== Description ==

**Custom Quicktag Editor by Volade** replaces abandoned AddQuicktag with a modern UI. Create custom HTML buttons for the Classic Editor **Text (HTML)** and **Visual** tabs — no coding required.

Fork successor to AddQuicktag (100K+ installs). Fixed for **WordPress 6.0+** (`QTags` loading order).

**Key features:**

* Custom buttons: label, start/end HTML tags, tooltip, access key, order
* HTML editor (Quicktags) + Visual editor (TinyMCE menu)
* Per post type, comment, and widget targeting
* 22 one-click presets with category filters (content, layout, semantic, dev, media)
* Dynamic {{placeholders}} — year, date, site name, post title, author, etc.
* HTML snippet library, toolbar groups, post status rules (Volade connected)
* WordPress REST API: `cqe/v1/buttons` and `cqe/v1/presets` (local, no usage fees)
* JSON import / export (no account required)
* Hide core WordPress Quicktags (Volade account)
* Role and category visibility rules (V+)
* Usage log (V+)
* Developer filters: `cqe_buttons`, `cqe_admin_pages`
* AddQuicktag migration (database + .wpaq), WP-CLI, multisite network defaults
* Gutenberg block editor sidebar + Classic block Quicktags bridge
* ACF WYSIWYG field support

= No account (free) =

* Up to **10 custom buttons**
* Presets, import/export
* HTML + Visual editor injection
* Per post type checkboxes
* Settings under **Settings → Custom Quicktags**

= Free Volade account (optional) =

* **Unlimited** custom buttons
* Hide core Quicktags
* Comment editor and text widget editors
* Volade ecosystem: catalog, missions, XP

= V+ Premium (optional paid subscription) =

* Role-based button visibility
* Category-conditional buttons (posts)
* TinyMCE toolbar row (1–4)
* Custom Dashicons on buttons
* Button usage log + clear
* Billed through [volade.com](https://volade.com) via Stripe (only if you subscribe)

= Volade ecosystem =

The bundled **Volade SDK** is optional: **core Quicktag features work without any Volade account.**

= Classic Editor =

Works with the [Classic Editor](https://wordpress.org/plugins/classic-editor/) plugin and the Classic block in Gutenberg. Install Classic Editor if your site uses the block editor by default.

= Translations =

English (default). Locale files ready for French, Spanish, German, Brazilian Portuguese, and Italian.

== Installation ==

1. Upload the `custom-quicktag-editor-by-volade` folder (with `volade-sdk/` included) to `/wp-content/plugins/`
2. Activate the plugin via the Plugins menu
3. Open **Settings → Custom Quicktags** (or **Volade → Custom Quicktags** if SDK is active)
4. Add buttons or apply a preset, then edit a post in Classic Editor

== External services ==

This plugin may connect to **Volade** (`https://volade.com/api`) when you use optional Volade features (account, catalog, subscriptions). No data is sent until you create a Volade account.

**Service:** Volade API (`https://volade.com/api`)

**Data sent (when applicable):**

* Account registration/login: pseudo, email, local user ID (password stored hashed locally only)
* Subscription sync / checkout: user ID, email, selected plan (checkout handled on volade.com / Stripe)
* Referrals: referrer and referred user IDs, referral code
* Reviews: plugin slug, rating, review text
* Health check: none (endpoint ping only)

**When:** Only after you sign in to Volade or subscribe to V+. Optional admin branding requires explicit opt-in under **Volade → Settings**. No notifications are shown on the public site.

**Disable:** Do not create a Volade account. Quicktag features remain fully usable within free tier limits.

Developers may override the API URL with the `VOLADE_API_URL` constant in `wp-config.php`.

== Privacy ==

**Local data:** Button configurations are stored in the `cqe_settings` WordPress option. Optional button usage log (V+ Premium) is stored in `cqe_button_usage_log`. Volade account data (pseudo, email, password hash, XP, badges, activity, subscriptions) is stored in your WordPress database when you use the optional Volade account system.

**Export / erasure:** Signed-in users can export their Volade data (JSON) from **Volade → Settings**. Account deletion requests are handled per the [Volade privacy policy](https://volade.com/en/confidentialite).

**Uninstall:** Deleting the plugin removes Quicktag settings, usage log, and all Volade SDK tables, options, and scheduled tasks created by this plugin.

**Cookies:** A `volade_token` HTTP-only cookie is set when you sign in to Volade (admin only).

== Frequently Asked Questions ==

= Do I need a Volade account? =

No. Up to 10 buttons, presets, and JSON import/export work immediately.

= Does this work with Gutenberg? =

Yes — in three ways: a **sidebar panel** to insert HTML blocks, **Quicktags in the Classic block**, and optional **ACF WYSIWYG** fields. Native block editing only; page builders (Elementor, Divi, Beaver Builder) are not supported.

= Elementor or page builders? =

Not supported. Those tools use proprietary editors, not WordPress Quicktags. Use their built-in HTML widgets or stay on Classic Editor / Gutenberg for custom Quicktags.

= AddQuicktag migration? =

Use **Backup → Migrate from AddQuicktag** to import from `rmnlQuicktagSettings` or upload a `.wpaq` export. CLI: `wp cqe import-addquicktag`.

= WP 6.0 QTags error? =

This plugin uses `wp_enqueue_script` with `quicktags` dependency — the recommended fix for "QTags is not defined".

== Changelog ==

= 1.0.0 =
* Custom Quicktag CRUD with HTML + Visual editors, drag-and-drop reorder, duplicate, search
* 22 presets with category filters, HTML snippet library, dynamic {{placeholders}}
* Modern admin UI: hero header, stats bar, tabs, live toolbar preview, sticky save
* JSON import/export and per-button JSON export
* AddQuicktag migration (database + .wpaq file)
* Gutenberg sidebar panel + Classic block Quicktags bridge
* ACF WYSIWYG fields, frontend preset CSS, dashicons (V+)
* Toolbar groups, post status and capability rules (Volade connected)
* WordPress REST API `cqe/v1/buttons` and `cqe/v1/presets` (local)
* Multisite network settings, WP-CLI commands, French translation
* WP 6.0+ safe QTags injection
* Hide core quicktags, comments, widgets (Volade tiers)
* Role/category rules, TinyMCE row, usage log (V+)
* Volade SDK optional, full uninstall cleanup
