= 3.1.0 – 2026-07-06 =
- New: Protected file downloads bound to serial codes — sell software (or any file) and deliver it via a code. Upload files to a code list in the admin; every serial in that list can then download them. Files are stored in a
deny from all-protected folder and served only through a code-gated endpoint that re-validates the serial on every request (the code is the credential — no login needed), so a raw file URL is never publicly reachable. - New: Resume/partial downloads — the download endpoint honours HTTP Range requests (206 Partial Content), so download managers and interrupted transfers can resume large files.
- New: After a successful validation, the validator form shows download links for the code’s files; the
“my codes” shortcode also lists download links for a logged-in user’s active codes. - New:
{DOWNLOAD_URL}(and{DOWNLOAD_URL_1..N}) redirect placeholder for the post-validation redirect URL, so you can send the user straight to the download (redirect feature is premium). - Note: expiration and per-code download limits (premium) automatically cut off downloads — the endpoint enforces expiry and any configured limit on every request.
- New: Global “Disable all file downloads (emergency off)” option under a new “File downloads” settings section — an instant kill switch that blocks every download (403) and hides all download links, e.g. if a wrong file was uploaded. Default: off.
- New: Options page now has a “Jump to” section navigator in the toolbar (next to Export/Import) — pick a section from the dropdown to scroll straight to it, and it auto-highlights the section you are currently viewing. Handy on the long settings page.
= PREMIUM – 2.7.0 – 2026-07-06 =
- New: Per-code download limits for the protected-downloads feature (Basic 3.1.0). Set a “Download limit per code” on a code list; each serial may download each of the list’s files up to that many times (0 = unlimited). Enforced live on the download endpoint via the
sngmbh_serial-code_canDownloadfilter — over-limit requests get HTTP 403. - New: Download logging — every download start is recorded (code, file, list, IP, time) in a new
download_logtable (db version 1.6). Range/resume continuation requests are not double-counted, so download managers do not exhaust the limit. - New: WooCommerce delivery — protected-download links are appended to the order details, confirmation email (HTML + plain text) and invoice PDF for each purchased serial whose list has files.
- New: The expiration feature now also cuts off protected downloads — an expired code can no longer download (the endpoint checks expiry on every request).
- New: “Allow downloads only for logged in users” option — a guest opening a download link is sent to the WordPress login form and brought straight back to the download after signing in (the serial code alone is then no longer enough). Plus a companion “Do not redirect guests to the login form” option to answer with a plain 403 instead of redirecting. Both under the Basic plugin’s “File downloads” settings section. Default: off.
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.