=== Wondalizer Easy Forms === Contributors: wondalizer Tags: forms, registration, login, contact, newsletter, quiz, recaptcha Requires at least: 5.8 Tested up to: 6.5 Requires PHP: 7.4 Stable tag: 2.3.1 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Ultra-lightweight form builder with registration, login, contact, subscription, password reset, account deletion, and newsletter queue. == Description == Wondalizer Easy Forms is an ultra-optimized form plugin designed for speed and server stability. = Features = * Drag-and-drop form builder * Registration & Login forms with auto-login * Contact forms with quiz protection * Newsletter subscription with Mailchimp sync * Password reset handling * Account deletion (self-service, admin-protected) * Video & Audio upload forms with post creation * reCAPTCHA v2, v2 Invisible, and v3 support * 5 built-in skins * Newsletter queue with rate limiting * Submission management with read/unread tracking * CSV import/export for subscribers * BuddyPress & Youzify compatibility = Speed & Stability = * Zero frontend overhead when no form is present * Admin classes only load in admin; frontend lazy-loads * Auto-detects shortcode in post content to enqueue assets * All scripts loaded in footer * reCAPTCHA scripts deferred * Per-request static caching for post lists and countries * Menu badge counts cached (60s) to eliminate DB queries on every admin page * DB migration state stored in option (no repeated SHOW COLUMNS) * MyISAM-safe: no transactions used * Circuit breaker pattern skips heavy DB work if errors spike * Graceful degradation on missing files or DB issues == Installation == 1. Upload to `/wp-content/plugins/wondalizer-easy-forms/` 2. Activate through the 'Plugins' menu 3. Configure in Easy Forms > Settings 4. Use shortcode `[easyform id="1"]` == Changelog == = 2.3.1 = * Server stability: circuit breaker for DB errors, no transactions, lightweight activation * Page speed: auto-detect shortcode, footer loading, deferred reCAPTCHA, static per-request caches * Render blocking eliminated on backend via transient-cached badge counts