=== QuizPress – Modern Quiz, Survey, Poll & Exam Solution ===
Contributors: academylms, tusharimran
Tags: lms, course, quiz, elearning, academy, online courses, woocommerce, tutor, learn, learner, learnpress, teachers, school, college, university, kindergarten
Requires at least: 6.8
Tested up to: 6.9.4
Requires PHP: 7.4
Stable tag: 1.5.3
License: GPLv3
License URI: https://opensource.org/licenses/GPL-3.0

Create powerful quizzes, exams, and surveys in minutes — engage, track, and reward learners with QuizPress.

== Description ==
QuizPress is the ultimate quiz, exam, and assessment builder for WordPress — designed for creators, teachers, and marketers who want more than just quizzes.

It’s built with a modern, lightning-fast admin interface that feels like a professional app — not a cluttered old plugin.

With QuizPress, you can create everything from interactive quizzes and scored exams to feedback surveys and polls, all within minutes — without touching a line of code.

Whether you’re building a learning platform, collecting user feedback, or testing knowledge, QuizPress gives you the freedom, power, and precision to do it all.

== Why QuizPress is Different? ==
Other quiz plugins are either outdated, slow, or overloaded with unnecessary options.
QuizPress changes that by focusing on speed, usability, and results — helping you create smarter, more engaging quizzes that keep users hooked and help you measure performance effortlessly.

Built by the team behind Academy LMS, QuizPress is engineered to integrate seamlessly with modern WordPress setups — using cutting-edge JavaScript for an ultra-smooth experience.

== Key Features ==

###🧩 Powerful Quiz Builder###
* Intuitive wizard-style editor with steps for Quiz Info, Questions, and Settings
* Supports multiple quiz types: Exam, Survey, Poll, and Quiz
* Add descriptions, featured images, and custom settings easily
* “Save & Continue” navigation for a distraction-free setup flow

###💬 Flexible Question Types###
* Single Choice
* Multiple Choice
* Dropdown
* True/False
* Number
* Paragraph (open-ended)
* Add, duplicate, or reorder questions in one click

###📊 Advanced Analytics Dashboard###
* Get instant insight with interactive dashboards: total quizzes, attempts, average scores, and performance trends
* Track user engagement, completion rates, and quiz popularity
* Top Quizzes Table and Leaderboard widgets for competitive stats
* Drill down into detailed attempt reports and performance summaries

###🧠 Global Question Bank###
* Centralized repository for all your questions
* Reuse, search, and import/export questions across multiple quizzes
* Manage everything in one place — saves hours of manual work

###🧍 User Attempts Management###
* View all attempts by user, date, IP, and quiz name
* Filter by quiz or user, export results, or delete test data
* Review each attempt with detailed question-by-question breakdowns
* Manual grading support for open-ended or essay-style questions

###🛠️ Smart Settings Panel###
* Set default question types, text area sizes, and data storage rules
* Control IP tracking, data retention, and privacy compliance
* Customize the appearance and grading rules globally

###🏆 Certificate & Add-ons Marketplace###
* Extend functionality with add-ons:
* Certificates Add-on: Auto-generate professional certificates after quiz completion
* StoreEngine Integration (Coming Soon): Monetize quizzes and sell certificates
* WooCommerce Integration (Coming Soon): Sell quiz access or premium assessments
* Clean add-on management UI with toggles and “Learn More” cards

###💻 Performance-Ready Design###
* Built with modern React-based components for a fast, app-like experience
* Fully compatible with block-based WordPress editors
* Clean UI with intuitive navigation and responsive layout

###Use Cases###
* QuizPress fits perfectly across diverse needs — from schools and eLearning platforms to marketing and corporate training. Educational institutions can run exams or practice tests, course creators can design engaging assessments, and marketers can launch interactive quizzes or polls. HR teams can easily conduct knowledge checks, while coaches and trainers can gather feedback or evaluate learner progress — all in one unified system.
* Analytics & Reporting Made Simple
* Transform your quiz data into actionable insights with QuizPress’s built-in analytics. Instantly view average user performance, discover which quizzes are most challenging, and monitor trends to refine future content. Every attempt, score, and engagement metric is tracked and displayed through a clean, visual, and data-driven dashboard.
* Developer-Friendly
* QuizPress is crafted with developers in mind — featuring clean, modular code that follows WordPress best practices. It’s easily extendable through hooks and filters, giving developers complete flexibility to customize and integrate. The plugin is also API-ready, paving the way for future connections with tools like Zapier, FluentCRM, and more.
* Why Choose QuizPress?
* QuizPress isn’t just another quiz plugin — it’s a complete assessment system designed for speed, flexibility, and engagement. Whether you’re building learning quizzes, exams, or interactive surveys, QuizPress gives you all the tools to create, analyze, and grow — without the complexity.

###Here’s why creators love QuizPress:###
* Lightning-fast quiz builder – Create quizzes in minutes with an intuitive, modern interface.
* Flexible quiz types – Run exams, surveys, or polls — all from one dashboard.
* Smart analytics – Track every attempt, score, and trend with clean visual insights.
* Certificate automation – Reward learners instantly with beautiful, personalized certificates.
* Built-in monetization – Sell quizzes or certificates via StoreEngine or WooCommerce integration.
* Developer-friendly architecture – Extend easily using hooks, filters, and REST APIs.
* Optimized for engagement – Keep users motivated with leaderboard, progress, and results pages.
* Lightweight yet powerful – No unnecessary bloat, just pure performance and control.

QuizPress helps you deliver a professional quiz experience — whether for learning, testing, or engagement — all directly inside WordPress.


== Frequently Asked Questions ==

= What question types are supported? =
Single Choice, Multiple Choice, True/False, Paragraph, Number, Dropdown, and more via the global bank.

= How do I track user performance? =
Use the Dashboard for stats (attempts, scores, leaderboards) and Quiz Attempts for detailed reviews with grading.

= Can questions be reused across quizzes? =
Yes, manage a global question bank—add, import/export, and assign to any quiz, survey, or exam.

= Does it integrate with other plugins? =
Yes, compatible with LearnDash, WooCommerce (via Pro add-ons), and shortcodes for easy embedding.

= How is data privacy handled? =
Toggle IP logging in Settings; auto-erase attempts after set months (e.g., 2) for GDPR compliance.



== Changelog ==

= 1.5.3 - 2026-09-30 =

* Added: Default (as arranged) option for the quiz "Questions order" setting, so questions follow the order arranged in the quiz builder. It is now the default for new quizzes.
* Fixed: Reloading the page during a quiz with no time limit showed the attempt as pending review instead of resuming it.
* Fixed: Answers given before a page reload were lost while a quiz was in progress.
* Fixed: Resuming an attempt after a reload could load a different set of questions when a question limit or random order was set.
* Fixed: Questions were always shuffled, ignoring the selected "Questions order" setting.
* Fixed: In-progress attempts could fail to resume for visitors in timezones behind UTC.
* Changed: Guest sign-in button text changed to "Email me a login link".

= 1.5.2 - 2026-09-29 =

* Added: Manual review support for auto-graded questions with no correct answer marked—held as Pending instead of being automatically marked Incorrect.
* Added: Mark Overwrite, a per-quiz setting that lets admins manually overwrite an attempted question's marks directly from the Attempt Answer Details table.
* Added: Search and Type/Status filters to the Attempt Answer Details table.
* Added: A Partial answer status for questions awarded more than zero but less than full marks, so partial credit is no longer shown as flatly Correct or Incorrect.
* Fixed: Scheduled quizzes, questions, and certificates could not be published directly from the list table's status dropdown.
* Fixed: Quiz "Questions order" setting defaulted to Random instead of Ascending.
* Fixed: Question position input in the quiz editor's question list was inconsistently sized.
* Fixed: Instructor Feedback field displayed literal "undefined" text when saved without any content.
* Fixed: Attempt marks occasionally displayed incorrect totals for questions with multiple answer options.
* Fixed: A question's Correct/Incorrect status not updating after its mark was manually overwritten to full marks.
* Changed: Quiz editor top bar reorganized—Update/Save and back navigation moved to the main top bar.
* Changed: Correct/Incorrect review buttons in Attempt Answer Details redesigned for visual consistency.

= 1.5.1 - 2026-09-28 =

* Added: Rich text editor into each question description and explanation along side plain text option.
* Added: Rich text editor for answer type rich text editor questions.
* Added: Correct answer and given answer copy button into quiz attempt answer details table.
* Added: Quiz question drag & drop reorder support across multiple pages.
* Added: Quiz question reorder support by changing each question order number across multiple pages.
* Fixed: Page blank issue causing by rich text editor into quiz description.

= 1.5.0 - 2026-09-23 =

* Added: Quiz Scheduling with Publish, Draft, and Schedule options plus an inline date picker.
* Added: Access Window to control when quizzes open and lock, including recurring schedules, grace periods, auto-submit, custom messages, and countdown timers.
* Added: Access Window enforcement on both AJAX and REST attempt-start requests.
* Added: ErrorBoundary system to prevent page blank issues due to render time errors.
* Changed: Attempt review updated by refreshing only the affected review button instead of reloading the entire answer table.
* Changed: Added a **Changed** category to the What's New panel.
* Fixed: Theme border colors for text and textarea fields.
* Fixed: MathInput class name and placeholder support.
* Fixed: Manual-review status incorrectly affecting all answers in an attempt.
* Fixed: Pending attempts not updating correctly after manual review.
* Fixed: Frontend crashes when rejected requests have no response body.
* Fixed: Access Window boolean and UTC date handling.
* Removed: The unused **QuizPress Manager** role, with a migration to remove the role from existing users; users with no remaining role fall back to **Subscriber**.

= 1.4.0 - 03/09/2026 =

* Added: Seven Pro interactive question types: Image Marking, Pin, Range, Graph, Ordering, Matching, and Puzzle.
* Added: Word and Sentence modes for Puzzle questions. Image Puzzle remains planned for a future release.
* Added: Visual authoring and answer controls for clickable image regions, pin placement, range sliders, coordinate grids, draggable ordering, puzzle tiles, and matching pairs.
* Added: Proportional partial-credit grading for multi-item Image Marking, Graph, Ordering, Puzzle, and Matching questions.
* Added: TypeScript support, typed question helpers, and a dedicated type-check command.
* Added: Academy LMS integration — quizzes can now be attached as curriculum items in Academy LMS courses, with quiz-taking, attempt results, and completion tracking driven entirely by QuizPress's own data.
* Added: Developer hooks (`quizpress.question-answer-widget.content`, `quizpress.answer-review-card.content`, `quizpress.submit-question-answer`) so other plugins can embed QuizPress's own question-answer widgets and answer-review cards.
* Added: "Quiz Questions Layout" setting — choose Single to present one question at a time, or All to display every question together on one page.
* Added: "What's New" panel in the admin top bar showing the latest release notes.
* Added: Sub top bar (page title and contextual actions) consistently across the admin — Dashboard, Categories, Questions, Quizzes, Settings, Certificates, Quiz Insights, Add-ons, the question editor, and the quiz builder.
* Added: Category filter on the Questions table.
* Added: "Reuse Content" button in the quiz builder's Questions step for adding existing questions from the question bank, with search, quiz, type, and category filters.
* Added: Redesigned Add-ons page with category tabs, Plan/Status filters, search, dependency-aware requirement badges, and a Pro upsell banner.
* Added: Progress indicator on the quiz screen ("Question 3 of 8" plus a progress bar), with points, attempt, and remaining time shown as compact chips.
* Improved: Attempt reviews now show readable matching values, image and graph coordinates, and pin positions instead of internal IDs or raw JSON.
* Improved: Answer rows consistently follow their configured authoring order in quiz playback and attempt reviews.
* Improved: Graph, Pin, and Range editors persist their visible default values even when fields are left untouched.
* Improved: Frontend answer interactions and shared admin interfaces with an ongoing Tailwind CSS migration.
* Improved: Plugin packaging and translation-generation rules for internal Markdown documentation.
* Improved: Quiz builder top bar now separates step navigation (Name/Questions/Settings) from the Prev/Next/Save/Publish actions, moving the latter into the sub top bar.
* Improved: Reorganized the Settings page into General and License tabs, and removed the Role Management tab.
* Improved: Redesigned the admin on a single design system — one set of color, spacing, typography, border, and shadow tokens across every screen.
* Improved: Redesigned the public quiz as a self-contained component with its own type scale, spacing, surfaces, and controls, so it renders consistently on any theme and inherits only the site's font family.
* Improved: Answer options for single choice, multiple choice, true/false, and their horizontal and rich-text variants are now selectable cards with a full clickable area and a clear selected state, keeping native inputs for keyboard and screen-reader support.
* Improved: Intro screen and the passed, failed, expired, and pending result cards now share a stat grid, a toned header band, and full-width actions.
* Improved: Remaining question types on the frontend — image answers as selectable tiles with a state badge, drop-downs matching the quiz's own inputs, drag tiles for ordering and both puzzle modes, a shared click surface for pin and image marking, and quiz-native controls for matching, range, fill-in-the-blanks, and opt-in.
* Improved: List table columns size to their content instead of splitting the row evenly, so IDs, titles, and actions no longer run into each other.
* Improved: Quiz insight charts use a consistent brand-led series palette instead of colors derived from answer text; radar charts are hidden below three axes.
* Improved: The quiz timer now turns red once time has expired.
* Improved: Moved the grading for the premium question types (Fill In The Blanks, Ordering, Puzzle, Matching, Pin, Image Marking, Range and Graph) out of the shared query layer and into the premium build.
* Improved: Split the premium question-type UI (Fill In The Blanks, Ordering, Puzzle, Matching, Pin, Image Marking, Range and Graph) into its own bundle, loaded only on a licensed site.
* Improved: Updated the bundled license SDK to 1.5.6 — a valid license survives a temporary license-server outage through a 14-day grace period instead of deactivating, expiring licenses raise a renewal notice, a failed automatic update falls back to manual instructions, update packages are checked for completeness before replacing the installed plugin, and licenses can be managed from WP-CLI.
* Fixed: Incorrect result status aggregation for partial-credit questions with multiple answer rows.
* Fixed: Missing defaults that could grade untouched Graph, Pin, or Range settings against unintended fallback values.
* Fixed: Attempt-review output exposing internal matching IDs or raw point data.
* Fixed: Corrected the QuizPress database schema version used by this release.
* Fixed: Free-text answer types (short answer, paragraph, number, date, opt-in, captcha) being saved with inconsistent array-wrapping in some answer-submission paths.
* Fixed: Puzzle question type not defaulting its Answer Option, which could leave the field unselected.
* Fixed: Questions table "Last Modified" column always appearing empty.
* Fixed: "What's New" panel heading being cropped behind the WordPress admin bar.
* Fixed: Scores rendering as raw database decimals, such as 5.852000, in admin tables and attempt details.
* Fixed: Unfinished attempts showing a completion date of Jan 01, 1970.
* Fixed: Leaderboard "View Profile" action doing nothing when clicked.
* Fixed: Answer Option being cleared and left empty after changing a question's type.
* Fixed: Close button missing from admin modals.
* Fixed: Quiz title, description, and hint staying on screen during an attempt, which pushed the current question below the fold.
* Fixed: Fatal error on the front end when a quiz linked to a WooCommerce product is rendered without the WooCommerce integration available. The purchase check now runs through a `quizpress/quiz/has_access` filter and the quiz stays closed with a notice.
* Fixed: Answers to Drop Down, Fill In The Blanks, File Upload, Pin, Range, Image Marking, Graph, Ordering, Puzzle and Matching questions being recorded as wrong — and docked negative marks — on a site where those types can no longer be graded. Those attempts are held for manual review instead.
* Fixed: Addon screens such as Certificates still appearing when the addon's own code is not installed.
* Fixed: The premium database schema check running on every admin and front-end request; it now runs on activation, on a version change, and when a licence is activated.


### 1.3.8 - 06/07/2026

- **Fixed:** Category and tag archives showing empty on the frontend. The quiz taxonomies were registered with WordPress core query vars (`category_name` / `tag`), which broke `/category/{slug}/` and `/tag/{slug}/` archive queries.

### 1.3.7 - 24/06/2026

- **Fixed:** Avada theme compatibility issue with anonymous quiz attempts.
- **Fixed:** Fixed Quiz Attempt time expire issue.
- **Fixed:** Fixed lightspeed frontend cache issue.
- **Fixed:** Fixed magic link button nor working issue in the frontend quiz attempt.
- **Fixed:** Fixed quiz attempt count in frontend
- **Fixed:** Fixed short answer question type answer submission not saved issue in the frontend quiz attempt.
- **Fixed:** Fixed fill in the blank question type correct answer empty issue in frontend quiz attempt.
- **Fixed:** Fixed fill in the blank question type skipped issue.

= 1.3.4 - 02/06/2026 =
- Fixed: Plugin activation database error on MySQL caused by MariaDB-only "ADD COLUMN IF NOT EXISTS" syntax in the question category/image migration.
- Fixed: "Invalid parameter(s): tpgb_post_meta_info, tpgb_post_category" error when creating a quiz with the Nexter Blocks (The Plus Addons) plugin active.

= 1.3.0 - 29/04/2026
- Added: Survey system with advanced analytics.
- Added: Poll system with advanced analytics.
- Added: Question category support.
- Added: Featured image support for questions.
- Added: Guest user quiz attempt support.
- Added: LaTeX support for question titles, descriptions, explanations, and answers.

= 1.2.0 - 21/12/2025 =
- Added: New Certificate addon for quiz certificate with aBlocks plugin integration.
- Added: New WooCommerce addon with WooCommerce integration for quiz selling and purchase system.
- Added: Block Editor into Quiz description.
- Updated: Quiz Creation process UI/UX updated.
- Feature: Quiz Feature image with description and quiz hint text.
- Feature: Force quiz auto start setting.
- Feature: Allow re-attempt settings after passing the quiz.
- Fixed: Magic login issue fixed.
- Fixed: Quiz attempt details page blank issue fixed for manual review type questions.
- Fixed: Attempt error issue fixed when a question's answer is required.
- Removed: Academy Prefix from JS and PHP.

= 1.1.0 - 30/11/2025 =
* Added - Instructor feedback shows in the frontend attempt for attempt status 'pending' or 'failed'.
* Added - Show the quiz feature image and quiz description in the frontend quiz attempt based on content presence.
* Added - Show question description in quiz attempt for individual question.
* Added - Question answer required system.
* Added - Fill-in-the-blank question type with read-only answer type added in the pro version.
* Added - File upload question type added in the pro version.
* Added - Show question points in the frontend question answer submission based on the admin backend dashboard question settings.
* Added - Pro question type differentiated.
* Fixed - Quiz status update issue in the admin backend dashboard.
* Fixed - Frontend loader issue based on the last attempt status issue.
* Fixed - Frontend attempt details the total attempt view count.
* Fixed - Multiple answer selection of the single-choice question type in the admin backend dashboard.
* Fixed - Quiz question CSV import issue.
* Fixed - Refactor attempt card subtitles to use functions.

= 1.0.0 - 23/11/2025 =
* Initial release


== Upgrade Notice ==
