🎓 Turn WordPress into somewhere people can actually sit an exam with Plugixa Exam – a question bank, an exam builder with sections and random pools, a runner whose clock lives on the server, automatic marking and verifiable PDF certificates.
📚 Read the Documentation
🌐 Visit the official website Plugixa
✉️ Questions or support requests: Contact us
Documentation | Contact | Support Forum | Upgrade to Pro!
Run your first exam in 3 simple steps:
Records live in the plugin’s own database tables, not in posts and post meta, so the question bank, the attempts list and the dashboard stay fast as your history grows.
The timer is server-side, the paper is frozen when a candidate starts, and answers autosave as they go.
✅ Question bank – seven question types, with explanations, rubrics and pictures
✅ Exam builder – sections that are a fixed list or a pool with rules, with shuffling
✅ Runner – server-side timing, autosave, pause and resume, and it works without JavaScript
✅ Marking – automatic on submission, with a queue for what needs a person
✅ Certificates – awarded on a pass, rendered to PDF and verifiable by QR code
The deadline is computed and stored on the server when an attempt starts, and every write checks it. Changing the clock on the candidate’s machine does nothing: the countdown in the browser is decoration.
The questions, their order, their points and the runner’s settings are frozen into the attempt when it starts. Editing the exam half-way through does not change what somebody is already answering. A pool draws when the attempt starts, so each candidate gets their own paper, and a reload returns the same one.
Everything that can be marked automatically is marked on submission. What needs a person – essays, and anything else you have chosen to mark by hand – goes into a queue with the rubric beside it. A score the release policy is still withholding is never shown, only that the paper was submitted.
A certificate is awarded when somebody passes and their marking is finished, numbered to a scheme you choose, and rendered as a real PDF rather than a web page they have to print. Its QR code opens a public page that says whether the certificate is valid, withdrawn or expired without disclosing the mark. Arabic and Hebrew names are shaped and ordered properly. The free version gives you one certificate design, fully editable.
The catalogue, the exam page, the runner, the result and the learner’s dashboard at /my-exams/ are server-rendered inside your theme. Pages that carry one person’s own history are never cached; a first-time visitor’s catalogue and exam pages stay cacheable.
The plugin stores what an exam plugin has to store: who sat what, when, what they answered and what they scored. It sets no cookies for tracking; the only cookie it sets is a signed identifier for a guest who starts an exam without an account, set when they press Start.
Plugixa Exam is developed by Plugixa, building focused, well-documented WordPress plugins with an emphasis on performance, clean code and correct data.
Plugixa Exam is built to be usable without a manual, but it is documented in full.
👉 Read the Documentation – getting started, the question bank, the exam builder, marking, certificates, blocks and shortcodes
👉 Ask on the WordPress.org support forum
👉 Or contact us directly
👉 Browse more plugins at plugixa.com
The catalogue of exams:
[plugixa_exam_catalogue]
One exam:
[plugixa_exam id=”12″]
The learner’s lists:
[plugixa_exam_my_exams] [plugixa_exam_my_results] [plugixa_exam_my_certificates]
This plugin connects to no external service of its own choosing. It loads no fonts from a
CDN — the KaTeX fonts used by the premium maths rendering are bundled — and it never
contacts plugixa.com: our address appears in the plugin header and in copyright notices, and
no code calls it.
Four services are described below. Freemius handles licensing and updates. The other three
are premium features that contact nothing until an administrator has entered an address or a
key: on a site where nobody has configured them no request is ever made.
The plugin is published by Plugixa. Our policies are here:
Terms of Service: https://www.plugixa.com/terms-of-service
Privacy Policy: https://www.plugixa.com/privacy-policy
What it is and why: Freemius, Inc. provides licensing, plugin updates and checkout, plus —
only if you opt in — anonymous usage diagnostics.
What is sent and when: on activation you are shown an opt-in screen. If you skip it, no
identifiable data is sent. If you opt in, or when you activate or manage a licence or make a
purchase, data such as your site URL, WordPress and PHP versions, active theme and plugins,
and the email address used at opt-in may be transmitted. This happens on activation, on
update checks, and on licence actions.
Terms of Service: https://freemius.com/terms/
Privacy Policy: https://freemius.com/privacy/
What it is and why: the plugin can draft questions from source material you paste — a
syllabus, a page of notes, a chapter — so you have something to edit instead of a blank
form. To do that it sends your material to a language-model provider that you choose and
pay for directly.
What is sent and when: at the moment somebody presses Generate, and never otherwise, the
plugin sends the text you pasted together with the instruction built from your choices on
that screen (how many questions, which types, what difficulty, which language). Nothing
else is sent: not your site address, not who you are, not any exam, attempt, mark or
learner data. The reply is shown to you for review and nothing is written to your question
bank until you accept it.
There is no default key and no key is bundled. Until an administrator enters one under
Settings, AI, this feature makes no request at all and the screen says so. The key is
stored on your own site, is never included in any response the plugin sends to a browser,
and is transmitted only to the endpoint you configured — over https, unless that endpoint
is on your own machine or private network.
Whose service it is: whichever provider you choose and hold an account with. The plugin
ships two ways to connect and no relationship with either company.
OpenAI, and any service that speaks its chat-completions API — which includes Azure OpenAI,
OpenRouter, Groq, Together, and local runtimes such as Ollama and LM Studio, reached by
changing the endpoint:
Terms of Use: https://openai.com/policies/terms-of-use
Privacy Policy: https://openai.com/policies/privacy-policy
Anthropic (Claude):
Commercial Terms of Service: https://www.anthropic.com/legal/commercial-terms
Privacy Policy: https://www.anthropic.com/legal/privacy
If you point the endpoint at a different service, its terms and privacy policy are the ones
that apply, and this plugin has no relationship with it.
What it is and why: if you register a webhook endpoint, the plugin sends an HTTP POST to it
when an attempt is submitted, graded or re-marked, when a certificate is issued, or when
someone’s access to an exam starts or ends, so another system of yours can react.
What is sent and when: the event name and the record it concerns — an attempt (exam, score,
result, the candidate’s user ID and a guest’s email address), a certificate (number,
recipient’s name, user ID, verification link) or an access grant (exam, user ID, dates, what
granted it) —
signed with a secret the plugin generates, at the moment the event happens. It is sent only to
addresses an administrator has entered. There is no default endpoint, private and reserved
network addresses are refused unless you deliberately allow them, and no data leaves the
site until you add one.
Whose service it is: yours, or whichever third party you point it at. This plugin has no
relationship with it and no endpoint of its own.
What it is and why: if you register a learning platform (an LMS such as Moodle or Canvas),
the plugin lets its users launch into an exam here and sends their score back.
What is sent and when: a launch returns the learner’s browser to the platform’s sign-in URL
with your client ID and the hint the platform supplied. The plugin fetches the platform’s
signing keys from the JWKS URL you supply, to verify the launch. When an attempt is graded
or re-marked, and once results are released, it requests an access token from the
platform’s token URL (your client ID, signed by this site) and posts to the grade endpoint
the launch supplied: the platform’s identifier for the learner, the score and its maximum,
the marker’s comment and the time.
Whose service it is: yours, or your institution’s. The URLs are the ones you enter; the
plugin ships no default platform and contacts nothing until you register one.