Quiz Form template
Name, email, a handful of questions, submit. This is the quiz form I build for lead magnets and course knowledge checks when a full LMS would be overkill — rendered live below with the exact HTML behind it.
What your visitor sees
Plain semantic HTML rendered through the same default form theme Core Forms applies on the front-end. Try it — this demo confirms inline and sends nothing.
Demo only. On your site, the same markup wires into the normal Core Forms action loop — email, Slack, Google Sheets, webhook, whatever you configure.
The HTML behind it
Copy this block, paste into Core Forms → Add New Form → Fields tab, save. Field names map to merge tags automatically in your action templates.
<p>
<label for="cf-quiz-name">Your name <span aria-hidden="true">*</span></label>
<input type="text" id="cf-quiz-name" name="NAME" autocomplete="name" required aria-required="true" />
</p>
<p>
<label for="cf-quiz-email">Email address <span aria-hidden="true">*</span></label>
<input type="email" id="cf-quiz-email" name="EMAIL" autocomplete="email" required aria-required="true" />
</p>
<fieldset>
<legend>1. What does a WordPress theme control? <span aria-hidden="true">*</span></legend>
<p>
<label><input type="radio" name="Q1" value="How the site looks" required /> How the site looks</label>
<label><input type="radio" name="Q1" value="How the site stores data" /> How the site stores data</label>
<label><input type="radio" name="Q1" value="Who can log in" /> Who can log in</label>
</p>
</fieldset>
<fieldset>
<legend>2. Where do plugins live in a WordPress install? <span aria-hidden="true">*</span></legend>
<p>
<label><input type="radio" name="Q2" value="wp-content/plugins" required /> wp-content/plugins</label>
<label><input type="radio" name="Q2" value="wp-admin/plugins" /> wp-admin/plugins</label>
<label><input type="radio" name="Q2" value="wp-includes/plugins" /> wp-includes/plugins</label>
</p>
</fieldset>
<fieldset>
<legend>3. What does the Gutenberg editor edit content with? <span aria-hidden="true">*</span></legend>
<p>
<label><input type="radio" name="Q3" value="Blocks" required /> Blocks</label>
<label><input type="radio" name="Q3" value="Shortcodes" /> Shortcodes</label>
<label><input type="radio" name="Q3" value="Widgets" /> Widgets</label>
</p>
</fieldset>
<fieldset>
<legend>4. Which of these are built into WordPress core? Select all that apply. <span aria-hidden="true">*</span></legend>
<p>
<label><input type="checkbox" name="Q4" value="Posts" /> Posts</label>
<label><input type="checkbox" name="Q4" value="Pages" /> Pages</label>
<label><input type="checkbox" name="Q4" value="Contact forms" /> Contact forms</label>
<label><input type="checkbox" name="Q4" value="Comments" /> Comments</label>
</p>
</fieldset>
<p>
<label for="cf-quiz-answer">Anything you want to add? (optional)</label>
<textarea id="cf-quiz-answer" name="ANSWER" rows="4"></textarea>
</p>
<p>
<button type="submit">Submit answers</button>
</p>
What this quiz form template is for
A quiz form beats a quiz plugin when the quiz is a means, not the product: a lead-magnet quiz that trades answers for an email, a knowledge check at the end of a course module, an entry quiz that filters workshop applicants. You don't need an LMS, a question bank, and a grade book for five questions.
The template collects who took the quiz and what they answered. Every submission lands in your submissions inbox and can fire an email with the answers, append a row to Google Sheets, or ping Slack the moment someone finishes.
What it deliberately doesn't do: timed questions, randomized question banks, or per-student grade history. That's LMS territory, and pretending otherwise wastes your afternoon. If you need proctoring, buy proctoring. If you need five questions and an inbox, this is complete as-is.
Every field, and why it's there
| Field | Type | Required | Why it's there |
|---|---|---|---|
| Your name | text | Yes | Who took the quiz — maps to [NAME] in your action templates. |
| Email address | email | Yes | Where results and follow-ups go. For lead-magnet quizzes, this is the whole point. |
| Question 1 | radio group | Yes | Single-answer multiple choice, fieldset-wrapped for screen readers. Swap in your own question. |
| Question 2 | radio group | Yes | Same pattern — duplicate the fieldset to add more questions. |
| Question 3 | radio group | Yes | Keep option values short; they become the raw answer in emails and sheets. |
| Question 4 | checkbox group | Yes | "Select all that apply" — checkboxes share one NAME so answers arrive as a list. |
| Open answer | textarea | Optional | Optional short answer — useful for "explain your reasoning" or feedback. |
From this HTML to a working form
-
Paste the markup into the Fields tab
Core Forms → Add New Form → Fields tab. Paste the HTML above, swap the sample questions and options for your own, save. The markup IS the quiz — no question builder.
-
Wire the results email
In the Actions tab, add Send Email. Subject: "Quiz submission from [NAME]". Body: the answers as merge tags — [Q1], [Q2], [Q3], [Q4]. Want a score in the confirmation message? Data variables can compute one from the answer values.
-
Embed it on your page
Drop the Gutenberg block on your quiz page, or use the shortcode in a classic editor. Gate a download or a results page behind the confirmation and the quiz doubles as a lead magnet.
Three upgrades worth considering
Score it live
Data variables can compare each answer against the correct value, sum a score, and show "You got 3 of 4" in the confirmation — no JavaScript, no grading plugin.
Data variables →Show a follow-up question based on an answer
Add a data-show-if attribute and a follow-up field appears only when a specific option is picked — "wrong answer? here is a hint" in one attribute.
Conditional logic →Send results to a spreadsheet
A Google Sheets action appends every submission as a row — one column per question, which makes spotting the question everyone gets wrong trivial.
Google Sheets integration →Quiz Form template questions
Can this quiz form score answers automatically?
Yes — data variables compare each submitted answer against the correct value and compute a score from them. Show it in the confirmation message ("You scored 3/4") or include it in the results email. The scoring lives in the form config, not in custom JavaScript.
Can people retake the quiz?
By default, yes — a form has no memory of who submitted. Rate limiting slows repeat attempts from the same visitor, and a one-submission-per-email rule catches most retakes. If you need airtight attempt tracking per student, that is an LMS feature, not a form feature.
Does this work as a lead magnet?
That is its best use. Email is required before the answers submit, so every completed quiz is a captured lead. Gate the results or a download behind the confirmation message, and wire an email action to deliver them — quiz in, address in your list.
Is this a replacement for an LMS quiz?
No, and I won't pretend it is. There are no timers, no randomized question banks, no per-student grade books, no proctoring. For course knowledge checks and lead-magnet quizzes it is faster and lighter than an LMS; for graded coursework, use the LMS.
The template is free. The plumbing is the product.
Core Forms turns this HTML into stored submissions, spam-filtered
email, and 30+ integrations. Use
CFLAUNCH for 20% off.