= 3.0.0 – 2026-06-28 =
- Added: internal
hasValidSerial()accessor so premium subsystems (e.g. the new software-licensing REST API) can check the stored license without duplicating logic. No change to free functionality. - Fixed: after saving an option, the in-memory options cache was filled with the whole option array instead of the new value (a
foreachloop variable shadowed the value parameter in_setOptionValuesByKey). The stored value was always correct; only same-request reads after a save could be wrong.
= PRMIUM – 2.6.0 – 2026-06-28 =
- New: software-licensing REST API (namespace sngmbh-scv/v1) — turn serial codes into software licenses. Endpoints: activate, deactivate, validate, version (public; the serial code is the credential) and set-license (admin only). Per-installation (“instance”) activation tracking with an enforceable activation limit, idempotent re-activation, slot release on deactivate, expiry-aware validation and version/update info for software-update checks.
- New: the whole licensing API is gated behind the premium license check (gegencheck) — returns HTTP 403 when the site has no valid premium serial.
- New: “Default activation limit per license” option, with per-code and per-list overrides via set-license. In-plugin “Licensing API” docs page with curl/PHP/JS snippets.
- New: optional API-key authentication — enable “Require an API key for licensing API requests” in the options; requests then need a valid key in the X-Api-Key header (or api_key parameter). Keys are managed in the “API Keys” tab; each key can be bound to a single code list (only its serials are accepted) and restricted to a list of allowed request IPs.
- New: brute-force protection for the licensing API — repeated failed requests (invalid key, unknown/invalid serial, IP not allowed) from the same IP are counted and the IP is temporarily blocked (HTTP 429). Thresholds configurable.
- New error codes: #261 (rate limited/429), #262 (missing/invalid API key/401), #263 (IP not allowed/403), #264 (code not in the key’s bound list/403).
- DB: new activations, licenses and apikeys tables (db version 1.5).
Update your plugin from within your WordPress plugin area as usual.
In case you want to revert your update: Go to the advance tab of the plugin home.
There is the option to download an older version that can be installed via upload within your WordPress plugin area.