PUQ Mautic Skip to main content

Changelog

PUQVPNCP module WHMCS

Order now | Download | Community | PUQVPNCP | Order PUQVPNCP

v4.0.0 — 30-09-2026

Major architecture update for ionCube 15 compatibility, modern Guzzle HTTP client integration, PUQ UI Toolkit client area upgrade, automated cron task resilience, and enhanced security standards.

Architecture & Compatibility

  • Unencoded Hooks Architecture (v4.0.0+ / ionCube 15) — hooks.php is now completely unencoded with zero business logic, ensuring 100% compatibility with ionCube 15 and WHMCS dynamic hook loading. All hook logic moved to lib/puqVPNcpHooks.php.
  • Guzzle HTTP Client — Replaced all legacy direct cURL calls in both the PUQVPNCP API client (puqVPNcpApi) and license verification with WHMCS built-in \GuzzleHttp\Client, featuring robust error handling and timeout controls.
  • Automated Cron & Usage Resilience — Usage updates and metric collection in WHMCS cron tasks are fully isolated per service with detailed logging; temporary connectivity hiccups with a panel or node will never interrupt scheduled automation or other customer accounts.
  • Clean Module Logging — Eliminated repetitive local offline database license checks from the WHMCS Module Log, recording exclusively online license transactions to prevent log clutter.
  • PHP 7.4 – 8.4 Support — Full compatibility with PHP 7.4 through PHP 8.4, explicit nullable parameter types, and strict null safety.
  • PUQVPNCP v2.x+ Requirement — Explicit compatibility requirement and connection verification for PUQVPNCP panel version 2.x and higher.
  • WHMCS 9 & Select2 Dynamic Settings — Modernized product settings dropdown detection to support WHMCS 9 Select2 elements seamlessly.

Multi-Protocol & Welcome Email

  • AmneziaWG Protocol Support — Added comprehensive support for AmneziaWG (censorship-resistant obfuscated WireGuard) alongside WireGuard, OpenVPN, and IKEv2 across the entire module.
  • Configuration & QR Code Delivery — AmneziaWG configuration text and QR code generation with download/copy functionality in both Client Area and Admin Area.
  • Resilient Multi-Protocol Welcome Email Delivery — Welcome email template delivers configurations for WireGuard, AmneziaWG (with inline QR codes), OpenVPN (.ovpn profile), IKEv2 credentials, and One-Time Link (OTL). Custom email variables are transmitted as native PHP arrays to bypass WHMCS serialization length limits, with inline data-URI image rendering and monospace formatting. Only protocols enabled on the assigned server/network are fetched and rendered.

Client Area & UI Toolkit

  • PUQ UI Toolkit — Added standard templates/header.tpl providing CSS design tokens, modern card layouts, and JavaScript primitives (puqToast, puqLoading, puqCopyToClipboard).
  • CSRF Protection — Form and state-changing AJAX calls in the client area now include CSRF token verification.
  • Full Localization — Added AmneziaWG translations, month name translations for traffic statistics, and multi-protocol labels across all supported languages with dual Ukrainian language file support (ukrainian.php and ukranian.php).

Settings & Provisioning

  • Admin API Connection Status — Displays real-time API connection status for the assigned server/node in the WHMCS admin service tab, matching the standard interface of other PUQ modules with pre-check optimization and resilient error reporting.
  • Zero-Touch Settings Auto-Migration — Automatically upgrades legacy product settings into modern unified configuration slots (configoption24) in the database upon product viewing.
  • Streamlined Service Provisioning — Removed redundant domain field handling to ensure faster and cleaner service activation without unnecessary database overhead.
  • Automated Service Cleanup — Local service statistics and traffic records are automatically removed upon successful account termination.
  • Protective Directory Indexes — Added protective index.php across all module subdirectories.

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 0 in 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.
  • 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/online endpoint 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)