Changelog
PUQVPNCP module WHMCS
Order now | Download | COMMUNITY | PUQVPNCP
v1.2 — 22-06-2026
Speed tiers via Configurable Options, an automated welcome email with connection configs, a clearer One-Time Link, and a cleaner client-area overview.
Configurable Options — speed presets
-
One-click creator — a Create speed presets button on the product Module Settings tab builds the WHMCS Configurable Options for Download limit (Mbit/s) and Upload limit (Mbit/s), adds the presets (Unlimited, 10, 25, 50, 100, 250, 500, 1000 Mbit/s) priced at
0in every currency, and links the group to the product. Idempotent — safe to click repeatedly. - Per-order speed — the customer's selected value overrides the product's default download/upload limit. Applied on provisioning and on every upgrade/downgrade (WHMCS calls change-package for configurable-option changes as well).
- Per-tier pricing can be set on the sub-options to charge for faster speeds.
Welcome email
- Optional welcome email sent on provisioning, containing the connection details, full WireGuard config text and an inline QR code, plus a manage-service link.
- Selectable template — use any WHMCS Product/Service template or the bundled PUQ VPNcp - Welcome, with Create if missing / Reset to default buttons. The template is auto-created on first send if absent.
- Resend welcome email button on the admin service tab; works regardless of the per-product auto-send setting.
One-Time Link
- The client-area One-Time Link now includes a description, an Open link button, and a notice stating it carries every protocol config, QR code and credential and can be opened only once.
Client area
- The default WHMCS Domain / Username / Server Name / IP Address / Visit Website block is hidden on the service overview, as it is not relevant for VPN products.
Maintenance
- Admin AJAX endpoints made POST-only; output-escaping fixes; minor edge-case corrections.
v1.1 18-06-2026
Bug fixes
- Client area blank page — fixed output-buffer conflict in the AJAX controller: WHMCS buffered HTML was prepended to JSON responses, causing the client area to render nothing
-
VPN session list false-positive error — the
/client/onlineendpoint returning an empty list[](no active sessions) was incorrectly treated as an API failure; now handled correctly -
Smarty template security error — replaced blocked
{$smarty.get.id}superglobal access (disallowed by WHMCS Smarty security policy) with the safe{$service->service_id}in client area and traffic statistics templates - Wrong default API port — HTTP connections to the PUQVPNCP panel were falling back to port 80 instead of the correct default 8098; fixed in all four code locations across three files
- AJAX responses on inactive services — AJAX requests for suspended or terminated services now return a proper JSON error response instead of an empty string, preventing JavaScript parse errors in the client area
v1.0 (2026)
- First release
- Multi-protocol VPN provisioning (WireGuard, OpenVPN, IKEv2)
- Lifecycle: create / suspend / unsuspend / terminate / change-package
- Per-client download and upload bandwidth caps
- Per-product VPN network selection via checkboxes — iterated at provisioning, first with free IP wins
- Client area: VPN client details, WireGuard config + QR, OpenVPN profile, IKEv2 profile, OTL generator
- Client area: monthly traffic chart with totals
- Admin service tab: API connection status, remote client state, bandwidth, selected networks
- License verification (online + offline cache)