Description
Kuizono lets you build quizzes directly in wp-admin and embed them anywhere with the “Quiz” block. Quiz taking and scoring happen entirely on your own site — nothing is sent anywhere else, and no account of any kind is required to use it.
Question types
- Multiple Choice
- True / False
- Short Text (case-insensitive matching)
Question Bank
Build a question once, reuse it across as many quizzes as you like — there’s no limit on how many questions you can add to the Question Bank, or how many quizzes you build with them. Editing a Question Bank question updates every quiz that uses it immediately.
AI Question Generation (bring your own key, optional)
Generate Question Bank questions from a topic using your own OpenAI, Google Gemini, or Anthropic Claude API key — entered on the AI Settings screen, used only by your site to call your chosen provider directly. Kuizono never sees your key, never relays it anywhere, and never bills you for AI usage — that’s between you and your provider account. Requests are rate-limited to 10 per hour. Generated questions are always created as drafts for you to review before publishing.
Built for real use, not just a demo
- Scoring is always calculated on the server from the stored correct answers — a visitor’s browser is never trusted with the answer key.
- Works for both logged-in and anonymous visitors.
- A quiz is directly takeable on its own page, or embedded anywhere with the “Quiz” block.
- Per-quiz results — score, pass/fail, and date — are viewable from the Results admin screen.
Privacy
Quiz-taking data never leaves your own WordPress site. When a visitor takes a quiz, their answers, score, and (for logged-in users) their user ID — or for anonymous visitors, a randomly generated token and a one-way hashed IP address used only for spam-prevention rate limiting — are stored in your site’s own database, in a table this plugin creates.
The one exception is AI Question Generation, which is entirely opt-in: it only runs if you’ve configured your own API key for one of three third-party providers and you click “Generate Questions with AI.” When it runs, the topic text you enter and the questions the provider generates in response are sent to that one provider, directly from your site, using your own key — never through Kuizono, and never to a provider you haven’t configured. If you never set up an AI provider key, no data is sent anywhere by this plugin. Each provider is disclosed individually below, as this data leaves your site for a service outside Kuizono’s control:
OpenAI — What/why: generates Question Bank questions from a topic you provide. Data sent: the topic text you enter and the resulting generated questions. When: only if you’ve entered an OpenAI API key on the AI Settings screen and you click “Generate Questions with AI” with OpenAI selected as the provider. Terms of Use: https://openai.com/policies/terms-of-use — Privacy Policy: https://openai.com/policies/privacy-policy
Google Gemini — What/why: generates Question Bank questions from a topic you provide. Data sent: the topic text you enter and the resulting generated questions. When: only if you’ve entered a Google Gemini API key on the AI Settings screen and you click “Generate Questions with AI” with Gemini selected as the provider. Terms of Service: https://ai.google.dev/gemini-api/terms — Privacy Policy: https://policies.google.com/privacy
Anthropic Claude — What/why: generates Question Bank questions from a topic you provide. Data sent: the topic text you enter and the resulting generated questions. When: only if you’ve entered an Anthropic API key on the AI Settings screen and you click “Generate Questions with AI” with Claude selected as the provider. Terms of Service: https://www.anthropic.com/legal/consumer-terms — Privacy Policy: https://www.anthropic.com/legal/privacy
This plugin registers a description of the above with WordPress’s built-in Privacy tools (Settings Privacy) so it can be included in your site’s own privacy policy.
Blocks
This plugin provides 1 block.
- Quiz Embed a Kuizono quiz.
Installation
- Upload the plugin files to
/wp-content/plugins/kuizono-quiz-builder, or install through the WordPress plugins screen directly. - Activate the plugin through the “Plugins” screen in WordPress.
- Use the “Quizzes” menu in the admin sidebar to create your first quiz and add questions.
- Add the “Quiz” block to any page or post to embed it, or share the quiz’s own page link directly.
FAQ
-
Do I need an account to use this plugin?
-
No. Nothing in this plugin requires an account of any kind. The one optional exception is AI Question Generation, where you can use your own API key with a provider of your choice (OpenAI, Gemini, or Claude) — that’s an account with them, not with Kuizono, and it’s entirely optional.
-
Can I reuse the same question across multiple quizzes?
-
Yes — add it to the Question Bank once, then add it to any quiz from the quiz builder’s “Add from Bank” option.
-
Is there a limit on how many questions I can add to the Question Bank?
-
No. Build and reuse as many Question Bank questions as you like.
-
Does AI Question Generation cost anything through Kuizono?
-
No. You bring your own API key for OpenAI, Google Gemini, or Anthropic Claude (AI Settings screen), and your site calls that provider directly with it. Any usage cost is billed by your provider to you — Kuizono never sees the key, the request, or the bill. Requests are rate-limited to 10 per hour. Generated questions are always saved as drafts for you to review before they go live.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Kuizono” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Kuizono” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.29.0
The “Kuizono Pro” info page’s link now points to the real Kuizono Customer Portal (was a placeholder domain) and is labeled “View Plans & Subscribe” instead of “Learn more” — the destination and label now match what the button actually does.
0.28.0
The “Kuizono Pro” info page now labels each feature “Starter” or “Professional” to match Kuizono Pro’s actual two-tier pricing, instead of listing all 13 as one undifferentiated list.
0.27.0
Added a “Kuizono Pro” info page (Quizzes Kuizono Pro) — a static feature list and an outbound link, nothing else. No license key entry, no account connection, no functionality of any kind lives in this plugin; WordPress.org’s own guidelines explicitly permit a free plugin pointing out that further features are available through a separate plugin, which is exactly what this page does and no more. Re-verified against the official Plugin Check tool after adding it: zero new findings of any kind.
0.26.0
Compliance-driven removal of every previously license-gated feature, following a WordPress.org Plugin Directory rejection under Guideline 5 (Trialware) for shipping 13 built-in features behind a paid-license check instead of as genuinely separate, standalone software.
* Removed: Likert Scale question type, Question Bank Categories, Weighted Scoring, Timed Quizzes, Per-Question Analytics, Bulk CSV Import/Export, Media-Rich Questions, Conditional Branching/Skip Logic, Personalized Result Pages, Lead Capture Gate + Completion Webhook, Exportable Results CSV, Social Share Cards, and Ad Monetization — all 13 physically deleted from the plugin’s PHP/JS, not just hidden or disabled behind a check.
* Removed: the entire Cloud/licensing module (Connect Account screen, LicenseStatus, CloudApiClient). This plugin no longer has any concept of a paid tier, a license key, or a connected account — every remaining feature is unlocked for everyone, unconditionally.
* Changed: the Question Bank’s former 100-question free-plan cap is gone; the Question Bank is unlimited for everyone.
* Changed: rewrote this readme’s Description, FAQ, Privacy, and Screenshots sections to describe only what remains, and added individual “External Services” disclosures for each of the three AI providers (OpenAI, Google Gemini, Anthropic Claude) — what data is sent, when, and each provider’s own Terms/Privacy links — matching the structure requested in the rejection email.
* Changed: two screenshots depicting now-removed features (Question Bank Categories, the Cloud dashboard) were dropped from .wordpress-org/ and this listing; the remaining screenshots were renumbered.
* Note: what’s left is the full free feature set this plugin has always had at its core — quiz building/taking/scoring with Multiple Choice, True/False, and Short Text questions; an unlimited, reusable Question Bank; the “Quiz” block and a quiz’s own permalink page; a Results screen (attempts, score, pass/fail, date); and optional, bring-your-own-key AI Question Generation. The removed features may return in a separate, standalone plugin at an unspecified future date, via new kuizono_* extension points this plugin now exposes for that purpose — that plugin does not exist yet and is not part of this listing.
* Verified: grep-swept src/ for residual license/tier-gating code — none found outside historical migration docblocks (kept as an accurate record of when each database column was added) and doc-comments describing the new companion-plugin extension points; confirmed no Cloud module remains under src/Modules/; confirmed the AI rate limiter is unchanged (10 requests/hour, unrelated to licensing).
0.25.0
Renamed the plugin from “Quizora” to “Kuizono” (slug: kuizono-quiz-builder) ahead of the WordPress.org submission. Purely a naming change — no functional behavior is different. Every version before this one refers to the plugin’s old name; that history is left as-is rather than rewritten.
* Changed: display name, text domain, translation strings, internal option/postmeta/transient keys, the Question Bank post type and category taxonomy, the REST API namespace, CSS classes, JS globals, and the PHP namespace (Quizora\... Kuizono\...) all updated to the new name.
* Changed: the companion Quizora Cloud/Portal apps and their user-facing branding, license-header name, and environment variable names were renamed to match.
0.24.1
WordPress.org submission-readiness pass, triggered by re-running the official Plugin Check tool against a clean release build for the first time since v0.8.1:
* Fixed: the release build script produced a zip that failed to install on real (Linux) hosting — it used a Windows tool that writes backslash path separators, which PHP’s own zip library (what WordPress itself uses to install a plugin) doesn’t treat as a folder separator outside Windows. Every zip this script ever produced had this problem; it just never showed up when testing on Windows. Rebuilt the script to produce a properly-structured zip instead, verified by extracting it on a real Linux server.
* Fixed: the manually-embedded “Quiz” block has been fatal-erroring on every page that used it since Media-Rich Questions and Conditional Branching shipped — the block’s own render code was never updated to pass those features’ extra dependencies, even though the quiz’s own permalink page (a different code path) was. A quiz on its own page kept working throughout; only the block-embedded case was broken. Found and fixed while re-verifying this release, not user-reported.
* Changed: Tested up to bumped to 7.1.
* Changed: the Privacy section now also discloses Connect Account — signing in there sends your email/password to Kuizono Cloud, and a connected site periodically checks in with its license key and site URL to confirm plan status. No quiz, question, or visitor data is included. Entirely opt-in, same as the AI and ad-network exceptions already documented here.
* Changed: local variables in a couple of admin view templates now carry the plugin’s prefix, per the official Plugin Check tool’s naming convention check.
0.24.0
- Changed: “Generate Questions with AI” now shows a review step after generating — each question has a checkbox (checked by default), so you can uncheck any you don’t want before clicking “Add Selected”. Only the questions you actually keep are added to your Question Bank; anything you uncheck is discarded and was never saved in the first place, so it never counts toward your plan’s Question Bank limit.
0.23.0
Security hardening pass across the plugin and its Cloud/Portal companions (2026-08-16/17), triggered by a full audit — nothing here was a reported bug, this was found and fixed proactively:
* Fixed: exported CSVs (Results, Question Bank) were vulnerable to formula/CSV injection — a cell starting with =, +, -, or @ (e.g. in a quiz’s lead-capture name field, which any anonymous site visitor can set) would be interpreted as a live formula by Excel/Google Sheets when the file was later opened, not read as plain text. Every export now runs through a shared safeguard that neutralizes this.
* Changed: viewing quiz Results (with any captured lead name/email) and exporting either Results or the Question Bank (including every question’s correct-answer column) now requires the Editor-and-above edit_others_posts capability, not the lower Contributor-level edit_posts — on a multi-author site, a Contributor could otherwise read every other author’s quiz results and answer keys, not just their own.
* Added a basic file-extension check to the Question Bank CSV import, rejecting an obviously-wrong upload with a clear message instead of a confusing wall of per-row errors.
* Also hardened this release, in the companion Kuizono Cloud/Portal apps used for paid plans: closed a login timing side-channel that could reveal which emails have accounts, added a 5-attempt account lockout independent of IP-based rate limiting, added optional Cloudflare Turnstile CAPTCHA support for signup/login, and pinned JWT verification to an explicit algorithm allowlist.
0.22.4
- Fixed: a blank box was left behind where the “Generate Questions with AI” button used to sit, after it moved up next to “Add New Question”. The empty-box cleanup added for the same issue with “Bulk import/export” only ever covered that one case — it’s now generic and covers both.
0.22.3
- Fixed: Likert Scale was available when adding questions manually but missing from “Generate Questions with AI”. It now appears there too (Starter plan and above), and the AI is prompted to write opinion/agreement statements rather than factual questions for it, since Likert Scale has no correct answer.
0.22.2
- Fixed: on an account not entitled to Bulk Import/Export, the “Bulk import/export” upsell badge was left behind in its own box below the page title instead of moving up next to “Add New Question” and “Generate Questions with AI” like it does once entitled. It’s now positioned consistently in the page title area either way, and the empty box it used to leave behind there is now cleaned up too.
0.22.1
- Fixed: “Add New Question”, “Generate Questions with AI”, “Export CSV”, and “Import CSV” didn’t line up at the same height next to each other in the page header — each kept its original button styling underneath, which didn’t quite match. They now render at a consistent height.
0.22.0
- Added Likert Scale as a new question type (Starter plan and above): a fixed 5-point agreement scale (Strongly Disagree to Strongly Agree) for opinion/survey questions. It’s never scored right or wrong and doesn’t count toward the quiz’s score — available in both the Question Bank and inline in a quiz.
- Changed: the “Generate Questions with AI” and “Bulk import/export” buttons on the Question Bank screen now sit next to “Add New Question” at the top of the page instead of in a separate callout below it.
- Changed: the plugin’s left-hand admin menu now reads “Kuizono” instead of “Quizzes”.
- Changed: removed the redundant “Add New Quiz” left-nav item — the Quizzes list page already has its own “Add New” button.
- Changed: “Connect Account” is now the last item in the left-hand admin menu, instead of second-to-last.
0.21.3
- Fixed: a few “PRO” upsell badges (Outcome Pages, Bulk Import/Export, Results export, Per-question analytics, Question Bank Categories) showed the generic word “PRO” instead of naming the feature, unlike every other upsell badge in the plugin. They now consistently show the feature’s own name, matching the rest.
0.21.2
- Fixed: the “Filter by category” tooltip (and any other PRO/help tooltip that ends up inside a modal, such as the “Add from Bank” picker) could be cropped by the modal panel’s own scroll area, hiding part of it. Tooltips now position themselves against the browser window directly instead of the modal, so they’re never clipped by a scrollable container they happen to be inside.
0.21.1
- Fixed: the “PRO” upsell badge and skip-logic help tooltips could get clipped by the edge of the screen when their trigger was near the left/right border or the top of an admin page, hiding part of the text. Tooltips now measure themselves on hover/focus and nudge back on-screen (and flip to appear below the trigger instead of above, if there isn’t room) so the full tooltip is always visible, wherever it’s shown.
0.21.0
- Added Ad Monetization (Professional plan and above): show an ad from any network — Google AdSense, Adsterra, Adcash, Media.net, Monetag, PropellerAds, Taboola, or your own — between questions in a quiz. Pick a network (for your own reference), paste the embed code it gave you, and choose how often it’s shown (every N questions, never after the last one). Purely a display feature: it never touches scoring, attempts, or the REST API.
0.20.1
- Changed the Quiz Builder’s “Add from Bank” picker to a checklist so you can select and add several Question Bank questions in one go, instead of one at a time.
- Fixed: an already-added Question Bank question could still be re-added to the same quiz before saving. The picker’s availability is now re-checked the moment it opens, and the server now also rejects a duplicate Question Bank reference on save as a second layer of protection.
- Added a short “what is this?” hint next to Skip Logic explaining what it does and that it applies per-question, per-quiz (including for Question Bank questions of the applicable types).
0.20.0
- Added Personalized Result Pages (Professional plan and above): define score ranges, each with its own title and message, shown automatically based on where a visitor’s result lands. Seventh of the batch of new Professional-plan features being added in steps.
- Added Lead Capture Gate + Completion Webhook (Professional plan and above): require a name and email before someone can take a quiz (enforced server-side, not just hidden in the browser), and optionally notify a webhook URL with the result the moment someone completes the quiz. Eighth of the batch.
- Added Exportable Results Reports (Professional plan and above): export a quiz’s full results to a CSV file from the Results screen. Ninth of the batch.
- Added Social Share Cards (Professional plan and above): share buttons (X, Facebook, LinkedIn, copy link) on the result screen after finishing a quiz. Tenth and final of the batch of new Professional-plan features added in steps.
0.19.0
- Added Conditional Branching / Skip Logic (Professional plan and above): on a Multiple Choice or True/False question, set a rule to skip straight to a later question — or end the quiz — based on the answer given. Scoring only ever counts the questions actually reached, verified independently on the server from the submitted answers, never from what the browser hid. Sixth of the batch of new Professional-plan features being added in steps.
0.18.0
- Added Media-Rich Questions (Professional plan and above): attach an image, audio clip, or video from your site’s Media Library to any question — in the Question Bank or inline in a quiz. Shows above the question when the quiz is taken. Fifth of the batch of new Professional-plan features being added in steps.
0.17.0
- Added Bulk Import/Export (Professional plan and above): export your Question Bank to a CSV file from the Question Bank screen, or import questions from one. The exported file’s column layout is the same one import expects, so it doubles as a template. Every imported row is validated the same way a manually-entered question is; failed rows are skipped and listed after import. Fourth of the batch of new Professional-plan features being added in steps.
- Fixed: the Question Bank list screen was missing the plugin’s shared stylesheet, so the existing “Categories are a paid feature” badge on that screen has been rendering unstyled since it shipped. Now fixed.
0.16.0
- Added Per-Question Analytics (Professional plan and above): the Results screen now shows a per-question breakdown (correct / incorrect / unanswered / accuracy %) across every attempt on a quiz, so you can spot a confusing or too-easy/too-hard question. Only counts attempts made since this feature shipped — older attempts are honestly excluded rather than guessed at, with a note when that applies. Third of the batch of new Professional-plan features being added in steps.
0.15.0
- Added Timed Quizzes (Professional plan and above): set a time limit in minutes; visitors see a countdown that auto-submits when it runs out. The start time is recorded server-side, so a genuinely late submission is flagged (“Over time”) on the Results screen instead of relying only on the visitor’s browser — but it’s never blocked or scored as zero, just flagged. Second of the batch of new Professional-plan features being added in steps.
0.14.0
- Added Weighted Scoring (Professional plan and above): assign a point value (1–100) to any question, in the Question Bank or inline in a quiz. Scores and pass/fail everywhere reflect the weighted total instead of a plain correct-count. Every question defaults to 1 point, so existing quizzes score exactly as before. First of a batch of new Professional-plan features being added in steps — see the changelog of upcoming releases for more.
0.13.0
- The Categories screen now supports full editing: rename a category or move it under a different parent, not just create/delete. “Add New Category” and “Edit” both open in a modal instead of a separate form section.
0.12.0
- Redesigned every admin screen (Quiz Builder, Question Bank, Categories, AI Settings, Connect Account, Results) with a consistent visual design: unified colors, spacing, cards, and page headers across the whole plugin, instead of styling that had grown feature-by-feature.
0.11.0
- Added a dedicated “Categories” screen (Quizzes Categories) for creating, listing, and deleting Question Bank categories — always visible in the menu so it’s easy to find, with a clear explanation and “PRO” badge for free-plan sites instead of the management tools. Replaces relying on WordPress’s bare default taxonomy screen.
0.10.1
- Fixed: the “Generate Questions with AI” modal now lets Starter-plan-and-above accounts assign a category to the generated questions, matching Question Bank Categories added in 0.10.0. The free plan sees the same “PRO” hint used elsewhere instead of the category picker.
0.10.0
- Added Question Bank Categories (Starter plan and above): organize your Question Bank into categories and filter by category when adding questions to a quiz from the Question Bank. Requires a connected account on Starter or above — the free plan’s Question Bank works exactly as before, with a clear note in place of the category controls instead of a locked-out button.
- Polished the Question Bank and Quiz Builder screens with a small “PRO” badge/tooltip pattern for paid-only features, so what’s included on each plan is clear at a glance without leaving the page.
0.9.0
- Added AI Question Generation: bring your own OpenAI, Google Gemini, or Anthropic Claude API key (new AI Settings screen) and generate Question Bank questions from a topic via a “Generate with AI” button. Your key is encrypted at rest, sent only to your chosen provider, and never seen by Kuizono — usage is billed directly by your provider to you. Generated questions are always saved as drafts for review, never auto-published. Privacy policy content updated to disclose this one exception to “nothing leaves your site.”
0.8.1
- Re-verified this version against the official WordPress.org Plugin Check tool and fixed what it found:
uninstall.phpnow also checks for direct access the way automated scanners expect (it was already safe, just using a check they didn’t recognize), and the bundledvendorfolder now ships with itscomposer.jsonfor transparency about what’s in it.
0.8.0
- Added Question Bank quota enforcement: the free plan’s 100-question limit is now actually enforced (previously just documented policy). The Question Bank list screen shows how many you’ve used; publishing beyond the limit saves the question as a draft with a clear explanation instead of a confusing failure. Editing questions you already have is never blocked.
0.7.0
- The Question Bank screen now shows an honest status notice about AI Question Generation: a “coming soon, connect to be notified” message if you haven’t connected an account, or a plain “not available on your plan yet” message if you have. No fake buttons or dead links.
0.6.0
- The Connect Account page now periodically refreshes your plan status in the background, instead of only showing what it saw when you first connected.
0.5.0
- Added a “Connect Account” screen (Quizzes menu) for an upcoming optional cloud service — not yet publicly available, and not required for anything in this version.
0.4.1
- Fixed: uninstalling the plugin now actually removes its database table, option, and quiz/question data, instead of leaving them behind.
0.4.0
- Redesigned the quiz-taking experience: numbered questions, clearer answer options, and — after submitting — you now see exactly which questions were right or wrong, with the correct answer shown when enabled.
- Polished the admin Quiz Builder and Question Bank screens, and added colored Pass/Fail badges to the Results page.
0.3.0
- Added a Question Bank — build reusable questions once, add them to any quiz, and edits apply everywhere that question is used.
0.2.0
- Build and take quizzes (Multiple Choice, True/False, Short Text) entirely on your own site — no account required.
- Embed a quiz with the “Quiz” block.
- View results per quiz from the new Results admin page.
0.1.0
- Initial scaffold. No user-facing features yet.