Plugin Directory

Test out the new Plugin Directory and let us know what you think.


Creates exams and quizzes with unlimited number of questions and answers. Assigns grade after the quiz is taken. Mobile / touch - friendly.

Changes in 2.8.7

  • You can now specify sender email address which is different than the address in your global WP Settings page. You can also use the suggested format to specify sender's name which is different than the default "WordPress".
  • Manage questions page now shows question type and whether it's a required question.
  • Added user email in the taking details & takings list pages when email is available
  • Points to answers and grades can contain decimals. The total in the "Final screen" will also show decimals when available.
  • Added option to save and filter by source URL when taking a quiz. This can be useful if you have published the same quiz in different pages on your site.
  • Added configuration for the submit button value. It can be different for every quiz.
  • Various security improvements

Changes in 2.8

  • Added option "Do not alert the user when skipping a non-required question".
  • The optional answer feedback will now be shown in "Show the answer of a question immediately" mode. Please note again this is not secure and shouldn't be used for real knowledge tests.
  • Added CSS overrides for themes that put radios and checkboxes on their own lines
  • Added shortcode [watu-takings] to display a simplified version of the "View results" page on the front end.
  • You can enable non-admin WP roles to manage the plugin so you don't have to share your admin login with staff that has to manage quizzes.
  • Added sortable columns on the "view results" page and the associated shortcode.
  • Added honeypot option to prevent spam (it's not obtrusive like captchas and almost as efficient)
  • Added debug mode to display SQL errors
  • Added variable %%EMAIL%% for quizzes that require login or request user's email
  • You can now specify URL to redirect the user to upon achieving a given grade
  • The question feedback can be split into different content for correct and incorrect responses.

Changes in 2.7

  • Added option to limit the number of logged in user attempts for quizzes that require login.
  • You can specify one or more email addresses that will receive user's results (instead of just using the admin email from your WP Settings page)
  • You can now specify different content for the email sent to you when someone takes a quiz
  • New option lets you to send email to user with their results. If user is not logged in this will generate a required field to enter email on the quiz page.
  • You can specify different email contents of the email sent to user than the contents of the email sent to admin
  • All views / templates can now be overriden by placing their copy under a folder called "watu" in your theme folder.
  • Added option to switch off Ajax submitting for certain quizzes. This is useful if you are embedding javascript via shortcodes from other plugins in the final screen of the quiz as some javascripts won't work when loaded by Ajax.
  • Fixed security exploit
  • Created main level menu for Watu to arrange the submenus better
  • Added short Help page
  • Added a basic bar chart for showing user points vs. average points on a given quiz. Use the shortcode [watu-basic-chart] in the Final Screen to display it.

Changes in 2.6

  • Added optional text-based "captcha" to prevent spam bot submissions on quizzes which do not require user login
  • Option to reoder the questions. Of course this takes effect only when you have not chosen "Randomize questions" in the quiz settings.
  • Removed the hardcoded text "your answers are shown below" and the setting "display answers at the end of the quiz". Instead of this use the variable %%ANSWERS%% which gives far more flexibility.
  • Added option to not store takings in the database. Will be useful to save DB space when you have a quiz whose resutls you don't need to know.
  • Added two new variables - %%AVG-POINTS%% and %%BETTER-THAN%% to compare your results to others who completed the quiz
  • Added option to enable previous button
  • Added option to automatically publish the quiz in a post at the time of saving
  • Added question numbers + option to not display them (old quizzes default to it for consistency with the previous behavior)
  • Added social sharing option. Currently supports Facebook sharing. You'll need Facebook app ID.
  • Added Twitter sharing option. As above, use the shortcode [watushare-buttons] to enable all sharing buttons accordingly to your sharing options.

Changes in 2.5

  • Added optional answer explanation / feedback that can be shown along with the correct answers on the quiz
  • Added filter / search on the "view results" page
  • Added feature to andomize the answers to the questions. Works together or independent from the question randomization.
  • Added compatibility with WP QuickLaTeX
  • You can now be notified by email when someone takes a quiz
  • Made the quiz more user-friendly by auto-generating a demo quiz for the new users
  • Improvements to open end quesitons: now any special characters are handled and matching is case INSENSITIVE
  • Moved the grades management out of the main quiz form for better user interface, data integrity and rich text editor for the grade descriptions
  • Added "grade" filter in the "View results" page
  • Added option to pull number of random questions from the quiz
  • Fixed number of wpautop() issues. Now the filter is applied manually only where it's needed
  • Fixed bug with calculating points on open-end question (the bug was caused by the latest "randomize answers" feature)

Changes in 2.4

  • Quizzes can now require user login. Depending on whether "Anyone can register" is selected in your main settings page, a register link will also be shown when non-logged in user tries to access such quiz
  • You can now use "the_content" filter instead of "watu_content" to handle nasty problems with plugins like qTranslate. It's not recommended to use this setting unless you have experienced such problems.
  • The full details of the user answers are now recorded and can be seen via popup in the list of results page
  • Added uninstall script and changed the settings regarding deleting data. Now you have to double confirm deleting your exam. This is to avoid accidential data loss.
  • Removed wpframe and other obsolete code
  • Made small change to the display of radio and checkbox questions to allow easier formatting on one line with CSS
  • Fixed for compatibility with 3.8
  • Quiz description, if entered, shows up on top of the quiz
  • Option to delete single taking and delete all submitted data on a quiz
  • Changed current_user_can('administrator') to current_user_can('manage_options') so you can allow a non-administrator role to use the quizzes
  • Open-end questions can also have answers and be matched to them
  • Replaced wpautop in favor of nl2br to avoid adding


p> tags in unexpected places like hidden fields - Did some small styling adjustments - Fixed the %%MAX_POINTS%% calculation to take into account the quesiton type

Changes in 2.3

  • Export quiz results as CSV file (semicolon delimited)
  • The exam shortcode is now easier to copy
  • Animate back to top when submitting exam, and when clicking "next" after long question. This prevents confusion when user has to see the next screen.
  • Fixed bug with "Question X of Y total" showing even for single-page quizzes
  • Each exam / quiz has its own setting about how the answers will be shown
  • As many themes started showing the choices under radio buttons or checkboxes, added explicit CSS to keep them on the same line
  • Fixed new bug with missing answers when adding question
  • Fixed bug with skipping "0" answers
  • Changed %%TOTAL%% to %%MAX-POINTS%% for clarify and consistency. The old tag will keep working.
  • Further code improvements
  • Tested in multisite
  • Fixed "headers already sent" message caused by premature update statement

Changes in 2.2

  • Replaced 'the_content' filter with custom filter to avoid issues with membership plugins
  • Cleanup the root folder from show_exam.php
  • Another method added to the API, see the new docs
  • The answers field changed to TEXT so you can now add long choices/answers to the questions
  • Fixed bug in the list of taken exams
  • Fixed issues with correct/wrong answer calculation
  • Added %%CORRECT%% answers variable to display number of correct answers
  • Watu scripts and CSS are now loaded only when you have exams on the page avoiding unnecessary page overload
  • Other code fixes and improvements

Changes in 2.1

  • Displaying "Question X of Y" so the user knows where they are
  • Fixing incompatibility with Paid Membership PRO
  • Shortcodes on the final screen
  • Starting API (Not yet documented)
  • Code fixes and improvements

Changes in 2.0

  • Required questions (optional)
  • A list of users who took an exam along with their results
  • Localization of the strings in the javascript
  • More flexible function to add new DB fields on update
  • Code fixes and improvements

Changes in 1.9

  • Grade title and description are now separated
  • Shortcodes will be executed in questions and final screen
  • Code fixes and improvements
  • Localization issues fixed

Changes in 1.8

  • the exam title links to the post with this exam if exam is already published
  • "show all questions on single page" is now configurable for every exam
  • Improving code continued (more to come)

Changes in 1.7

  • You can now randomize the questions in a quiz
  • Fixed issues with the DB tables during upgrade
  • Removed more obsolete code, fixed code issues. More on this to come.

Changes in 1.6

  • Removed obsolete rich text editor and replaced with wp_editor call
  • Added "Essay" (open-end) question
  • Resolved possible Javascript conflicts
  • Internationalization ready - find the .pot file in langs/ folder

Requires: 3.3 or higher
Compatible up to: 4.7.2
Last Updated: 3 weeks ago
Active Installs: 4,000+


4.7 out of 5 stars


2 of 6 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 100,1,1
0,1,0 100,1,1
100,3,3 100,1,1
100,1,1 100,1,1
75,4,3 100,1,1
67,3,2 100,1,1 50,2,1 100,1,1 100,1,1 50,2,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,2,2 100,2,2 100,1,1 100,2,2
100,1,1 100,2,2 100,3,3 100,1,1
100,1,1 100,3,3
100,1,1 100,1,1