A comprehensive WordPress quiz and test plugin with image upload support, progress tracking, email results, and test sequences. Perfect for creating interactive quizzes, assessments, and exams on your WordPress site.
- Features
- Requirements
- Installation
- Quick Start
- Usage
- Shortcodes
- Question Types
- Test Sequences
- Admin Features
- Contributing
- Support
- License
- Multiple Question Types: Support for multiple choice, true/false, and short answer questions
- Image Support: Upload images for questions to make them more engaging
- Time Limits: Set time limits for tests with countdown timer
- Progress Tracking: Visual progress bar showing completion status
- Email Results: Automatically send test results to users via email
- Test Sequences: Create sequences of multiple tests that users take one after another
- Role-Based Access: Restrict tests to specific user roles
- Results Management: View, manage, and resend results from the admin panel
- CSV Import: Bulk import questions from CSV files
- Responsive Design: Mobile-friendly interface that works on all devices
- Security: Built-in security features including nonce verification and input sanitization
- Clean, modern interface
- One question per page with smooth navigation
- Real-time timer display
- Instant score calculation
- Result lookup by email and test ID
- Auto-continue option for test sequences
- WordPress: 5.0 or higher
- PHP: 7.0 or higher
- MySQL: 5.6 or higher
-
Download the plugin
- Download the plugin files or clone this repository
git clone https://github.com/abedputra/quicktestwp.git
-
Upload to WordPress
- Navigate to your WordPress installation directory
- Go to
wp-content/plugins/ - Upload the
quicktestwpfolder here
-
Activate the plugin
- Log in to your WordPress admin panel
- Go to Plugins β Installed Plugins
- Find QuickTestWP and click Activate
-
Zip the plugin folder
- Compress the
quicktestwpfolder into a.zipfile
- Compress the
-
Upload via WordPress
- Go to Plugins β Add New β Upload Plugin
- Choose the zip file and click Install Now
- Click Activate Plugin
-
Create Your First Test
- Go to QuickTestWP β Add New in your WordPress admin
- Enter a title and description for your test
- Optionally set a time limit (in minutes)
- Click Save Test
-
Add Questions
- After saving, you'll see the questions section
- Click Add Question
- Enter your question text
- Optionally upload an image
- Choose question type (Multiple Choice, True/False, or Short Answer)
- Enter answer options and mark the correct answer
- Click Save Question
-
Insert Test into Post/Page
- Edit any post or page
- Look for the Insert QuickTestWP meta box on the right sidebar
- Select your test and click Insert Test
- Or manually add:
[quicktestwp id="1"](replace 1 with your test ID)
-
Publish and Test
- Publish your post/page
- Visit the frontend and take the test
- Results will be automatically saved and emailed
- Navigate to QuickTestWP β Add New
- Fill in the test details:
- Title: Name of your test
- Description: Optional description
- Time Limit: Optional time limit in minutes (0 = no limit)
- Allowed Roles: Select which user roles can access this test (leave empty for public access)
- Click Save Test
- Add questions using the question editor below
- Click Add Question button
- Fill in question details:
- Question Text: Your question
- Question Image: Optional image upload
- Question Type: Choose from:
- Multiple Choice
- True/False
- Short Answer
- Answer Options: Enter options A, B, C, D (for multiple choice)
- Correct Answer: Select or enter the correct answer
- Question Order: Set display order (optional)
- Click Save Question
- Go to QuickTestWP β Import Questions
- Select the test you want to import questions into
- Download the sample CSV file to see the format
- Prepare your CSV file with columns:
question_text: The questionquestion_image: Image URL (optional)question_type:multiple_choice,true_false, orshort_answeroption_a,option_b,option_c,option_d: Answer optionscorrect_answer: The correct answerquestion_order: Display order
- Upload your CSV file
- Click Import Questions
Display a single test on any post or page:
[quicktestwp id="1"]
Parameters:
id(required): The test ID
Example:
[quicktestwp id="5"]
Display a sequence of tests:
[quicktestwp_sequence id="1"]
Parameters:
id(required): The sequence ID
Example:
[quicktestwp_sequence id="3"]
Method 1: Using the Meta Box
- Edit your post or page
- Look for the Insert QuickTestWP meta box in the sidebar
- Select a test from the dropdown
- Click Insert Test button
Method 2: Manual Entry
- Simply type the shortcode in your post editor:
[quicktestwp id="1"]
Method 3: Classic Editor Button
- In the Classic Editor, click the QuickTestWP button in the toolbar
- Enter the test ID when prompted
- Four answer options (A, B, C, D)
- Users select one correct answer
- Case-insensitive comparison
- Two options: True or False
- Users select one option
- Exact match comparison
- Users type their answer in a text field
- Case-insensitive comparison
- Whitespace is trimmed
Test sequences allow you to chain multiple tests together. Users take tests one after another, and you can configure auto-continue between tests.
- Go to QuickTestWP β Add New Sequence
- Enter sequence title and description
- Add tests to the sequence:
- Select a test from the dropdown
- Set the order
- Optionally enable Auto Continue (automatically moves to next test)
- Click Add Test
- Reorder tests by dragging
- Click Save Sequence
Insert a sequence using the shortcode:
[quicktestwp_sequence id="1"]
Users will start with the first test in the sequence and progress through them automatically (if auto-continue is enabled).
- All Tests: View all created tests
- Add New: Create new tests
- Edit: Click on any test to edit
- Delete: Remove tests and their questions
- Copy Shortcode: Quick copy button for shortcodes
- View Results: See all test results
- Filter by Test: Filter results by specific test
- Resend Email: Resend result emails to users
- Delete Results: Remove unwanted results
- Export: Results are stored in the database for export
- CSV Import: Bulk import questions from CSV
- Sample CSV: Download sample file for reference
The plugin includes CSS classes that you can customize:
.quicktestwp-container: Main container.quicktestwp-question-page: Individual question page.quicktestwp-answer-option: Answer option button.quicktestwp-progress-bar: Progress bar container.quicktestwp-timer: Timer display
Add custom CSS in your theme's style.css or use a custom CSS plugin.
Contributions are welcome! Here's how you can help:
-
Fork the repository
git clone https://github.com/abedputra/quicktestwp.git cd quicktestwp -
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow WordPress coding standards
- Add comments for complex logic
- Test your changes thoroughly
-
Commit your changes
git commit -m "Add: Description of your feature" -
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to the repository on GitHub
- Click "New Pull Request"
- Describe your changes
- Follow WordPress Coding Standards
- Write clear commit messages
- Test your code before submitting
- Update documentation if needed
- Be respectful and constructive in discussions
- π Bug fixes
- β¨ New features
- π Documentation improvements
- π¨ UI/UX enhancements
- π Translations
- β‘ Performance optimizations
- π Security improvements
- Author: Abed Putra
- Website: https://abedputra.my.id
- Issues: GitHub Issues
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with:
- Description of the problem
- Steps to reproduce
- WordPress and PHP versions
- Any error messages
This plugin is licensed under the GPL v2 or later.
Copyright (C) 2024 Abed Putra
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- Built with β€οΈ by Abed Putra
- Uses WordPress core functionality
- Icons from WordPress Dashicons
- Initial release
- Multiple question types support
- Image upload for questions
- Time limits and timer
- Progress tracking
- Email results
- Test sequences
- CSV import
- Role-based access control
- Results management
Made with β€οΈ for the WordPress community