=== Pay4All Pro ===
Contributors: pay4all
Tags: order form, categories, tickets, abandoned cart, twint
Requires at least: 5.9
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 2.6.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Advanced features for Pay4All Shop: categories with quantity rules, brands, tickets (QR codes), abandoned cart recovery, multilingual and TWINT.

== Description ==

**Pay4All Pro** is a companion extension to the free Pay4All Shop plugin. It unlocks the following advanced features (each one absent from — or greyed out in — the free version):

* **Categories and quantity rules** — group your products by category and set order rules per category: minimum, maximum, by multiple (case of 6), minimum + multiple, exact quantity. Each category has a multilingual label and a display order adjustable via drag-and-drop.
* **Brands** — a second taxonomy (grape varieties, estates, producers…) with the same quantity rules as categories.
* **Colour customisation** — the "Couleur" tab in Réglages becomes editable: change the form background, field colours, step colours, button colours, and 8 pre-built palettes.
* **Multilingual (FR / DE / IT / EN)** — the Langue tab unlocks the four languages simultaneously. Every product title, delivery method, e-mail template and confirmation panel gets its own per-language override.

= Trial and licence =

Pay4All Pro is distributed directly from Pay4All.net (not through WordPress.org). Every install begins with a **30-day free trial** — every feature above unlocks at activation, no licence key required. After the trial the merchant activates the site's domain from the pay4all.net checkout; the plugin then checks the licence every 48 hours.

= Coming soon =

The following features ship in the archive but are not wired up in 2.0.0 pending a joint Free-plugin patch:

* Ticket product type + QR-code validation + Billets admin page
* Abandoned cart capture, recovery e-mail, admin page
* Client-side product filter widget on the form
* XLSX export
* Automatic updates from Pay4All.net

== Installation ==

1. Download the ZIP from Pay4All.net/my-account.
2. Upload it via *Extensions › Ajouter › Téléverser une extension*.
3. Activate. All Pro features unlock immediately for the 30-day trial.
4. Open *Pay4All SHOP › Licences* to see the trial countdown and activate your licence when ready.

== Requirements ==

Pay4All Shop (the free plugin, from WordPress.org) must be installed and active. Pay4All Pro is not a standalone plugin — it extends the free version.

== Frequently Asked Questions ==

= Does the trial require a credit card? =

No. Activating the plugin starts the 30-day trial locally — no data is sent to Pay4All.net until you initiate the activation from the Licences page.

= What happens after 30 days if I do nothing? =

The Pro-only features gate off and Pay4All Shop returns to its free-version behaviour. The colour tab and the multilingual picker grey out; the Catégories / Marques taxonomies remain in the sidebar as Pro teasers again. No data is lost — categories and brand terms stay in the database.

= How do I renew a licence? =

From *Pay4All SHOP › Licences*, click « Activer ma licence sur Pay4All.net ». You'll land on the checkout with your domain and installation ID pre-filled.

== Changelog ==

= 2.6.0 =
* New newsletter statistics : tracking pixel + click redirects records opens, clicks and unsubscribes on every send. Per-campaign stats page with aggregate counters (open rate, click rate, CTOR, unsubscribe rate), an SVG line chart of activity per day and a paginated recipients table (filter by status, e-mail search, CSV export).
* Newsletter list : « Actions » column replaced by a « Statistics » shortcut.

= 2.5.0 =
* New multilingual **Newsletter** feature (Pay4All Shop >= 2.13.0) : per-language editor (FR/DE/IT/EN) with TinyMCE + clickable variables, free / product / promo templates, per-language CTA, throttled spooler (default 20 mails per 15 min), scheduling popup (send now or later), one-click unsubscribe endpoint and admin notification when broadcast completes.
* New product type **Donations** on the Pay4All Shop product editor : preset amounts + optional custom amount, no quantity, dedicated drag-drop editor.

= 2.3.3 =
* Fix i18n: "Age verification required" label and description on the WC product screen were not translated (wrong text domain + FR source strings). Now routed through the pay4all-age-verification catalog with proper English msgids.

= 2.3.2 =
* Age verification (WooCommerce integration) : follow-up to Pay4All Age 1.4.0 (liveness selfie video). Admin lightbox on the WC order screen now plays the recorded 5 s video inline with autoplay + loop muted, displays the expected 4-digit challenge code above the player for visual cross-check, and exposes a single « Demander au client de renvoyer les photos et la vidéo » button (dropped the per-photo checkbox flow). The OR-choice widget at checkout now pre-selects whichever step the merchant put first in the drag-drop order.

= 2.3.1 =
* Fix : « Ask the customer to resend the photos » checkboxes now appear reliably on the WooCommerce order screen, including when the current photos live in the customer's account bucket rather than the order bucket. Pairs with Pay4All Age 1.3.1.

= 2.3.0 =
* New **PDF invoices and delivery notes** unlocked at Pay4All Shop 2.7.0. When VAT is on the invoice PDF is generated automatically at checkout and attached to the customer + admin confirmation e-mails ; a matching delivery-note PDF (without prices) is downloadable from the order detail screen for shipment preparation. Merchant-configurable : logo (height in cm), C5 / C6 window position and side (right - Swiss standard - or left mirrored layout), envelope preview, and full merchant identity block. Dompdf ships bundled with this Pro release.

= 2.2.0 =
* Trial anchor moved server-side (SaaS `domain_trials` table) — the 30-day trial can no longer be reset by wiping local wp_options.
* `/config/trials` admin listing with search + language + activation date columns.
* Licence admin page auto-refreshes from the SaaS on open and now shows the exact trial end-date instead of a generic grace notice.
* « Tester ma licence » + « Activer ma licence sur Pay4All.net ↗ » buttons, plus a row-level « Licence » action link on the Plugins list.
* Merged Pay4All Shop + WooCommerce order status pickers into a single Commande wizard tab in the free TWINT plugin ; mirrored on the /admin.php?page=pay4all-twint-woo screen (statuses editable + unified « Commande contenant… » labels + « Devise » relocated).
* Plugin Check hygiene : text-domain mismatches on Age/TWINT bridges documented via phpcs:disable, nonce false positives silenced with justification, readme tags trimmed to 5, `load_plugin_textdomain()` removed (WP 4.6+ auto-loads).

= 2.1.0 =
* Full License lifecycle : `Cron` (48h recheck), `Updater` (WP 5.8+ `update_plugins_pay4all.net` filter), signed `ApiClient` (register / activation-token / check), tri-state gating (trial → live → hard-reject → 72h grace).
* Licences admin page : Activer / Vérifier maintenant / flash notices / activation-return handshake.
* PRO detection tightened : templates & sanitize now use `Pro::is_pay4all_pro_installed()` (strict class check) so sibling plugins sharing `P4ALL_PRO_VERSION` no longer unlock Pro-only features.
* Term reorder notice localised (FR / DE / IT / EN).
* Better licence error surfacing : non-JSON hoster / WAF response bodies are excerpted into the « Dernière erreur » row.

= 2.0.0 =
* Initial release paired with Pay4All Shop 2.0.0.
* Categories (`p4all_product_cat`) and Brands (`p4all_product_brand`) taxonomies with multilingual labels, quantity rules (min / max / multiple / min + multiple / exact) and drag-and-drop ordering.
* Colour customisation on Pay4All Shop's « Couleur » tab.
* Multilingual (FR / DE / IT / EN) on Pay4All Shop's « Langue » tab.
* 30-day free trial + Licences admin page.
* Menu-swap for the Pro-teaser entries « Catégories » and « Marques » in the sidebar (they now open the WordPress-native taxonomy admin instead of the teaser page).
