توضیحات
Run free voting contests and reality-show style competitions on WordPress: candidates, live leaderboard, countdowns, and a modern voter profile.
تغییرات این نسخه
3.41.2
Country badges now show the actual flag emoji next to the ISO code (e.g. 🇨🇩 CD). Flags are derived from the country code — no image assets required, so any country with a valid two-letter code works automatically.
3.41.1
Critical fix: migrations 16 (candidate fields — category, country, tagline) and 17 (performance indexes) were being silently skipped by the migrator because they didn’t return their class name at the end of the file. Without those columns, saving a candidate failed at the database layer, the new fields never appeared, and the admin page appeared to redirect. All three symptoms trace to the same missing return … ::class; line.
3.41.0
Performance: eliminated MySQL transactions and FOR UPDATE row locks from the coin deduction path. Replaced with a single atomic UPDATE WHERE coins_balance >= N — no lock is held during a vote, eliminating the main source of database queue build-up under concurrent voting.
Performance: write-behind vote buffer (VoteBuffer). Under load, vote_count updates accumulate in the WordPress Object Cache (Redis-backed if available) and are flushed to the database in batch every 30 seconds — reducing DB writes from one-per-click to one-per-candidate-per-30s.
Performance: rate-limit checks (per-user interval, hourly cap, per-IP cap) now served from Object Cache instead of COUNT(*) DB queries. The cache key expires at the end of the look-back window so the next vote always gets an accurate check.
Performance: after a successful v
Country badges now show the actual flag emoji next to the ISO code (e.g. 🇨🇩 CD). Flags are derived from the country code — no image assets required, so any country with a valid two-letter code works automatically.
3.41.1
Critical fix: migrations 16 (candidate fields — category, country, tagline) and 17 (performance indexes) were being silently skipped by the migrator because they didn’t return their class name at the end of the file. Without those columns, saving a candidate failed at the database layer, the new fields never appeared, and the admin page appeared to redirect. All three symptoms trace to the same missing return … ::class; line.
3.41.0
Performance: eliminated MySQL transactions and FOR UPDATE row locks from the coin deduction path. Replaced with a single atomic UPDATE WHERE coins_balance >= N — no lock is held during a vote, eliminating the main source of database queue build-up under concurrent voting.
Performance: write-behind vote buffer (VoteBuffer). Under load, vote_count updates accumulate in the WordPress Object Cache (Redis-backed if available) and are flushed to the database in batch every 30 seconds — reducing DB writes from one-per-click to one-per-candidate-per-30s.
Performance: rate-limit checks (per-user interval, hourly cap, per-IP cap) now served from Object Cache instead of COUNT(*) DB queries. The cache key expires at the end of the look-back window so the next vote always gets an accurate check.
Performance: after a successful v