CourseVerify lets a course administrator require students to periodically verify their identity as they progress through a LearnDash course — at course start, at configurable time-based checkpoints (e.g. every 5 tracked hours), and before a designated final exam.
At each checkpoint, the student answers a previously configured personal security question. Course access is blocked server-side until verification succeeds. CourseVerify provides a configurable identity-verification mechanism that educational providers can use to implement their own institutional policies — it does not itself guarantee compliance with any government or regulatory requirement.
Core features
Supported integrations
[uo_time]) as the course-time sourceCourseVerify is an independent plugin and is not affiliated with LearnDash, Uncanny Owl, or any regulatory agency.
Per-course settings (on each course’s edit screen):
Global settings (CourseVerify Settings) provide defaults used when a course hasn’t been individually configured, plus the uninstall data-deletion preference.
CourseVerify stores, per student per course: configured security-question text and a one-way hash of the answer (never the plaintext answer), checkpoint verification status and timestamps, verification attempt outcomes (never the submitted answer text), and an administrative audit trail of setup/verification/lock/unlock events. No data is sent to any external server. Administrators can review stored data via the Students and Logs screens, and students’ data is included in WordPress’s built-in personal-data export and erasure tools (audit-log rows are retained by default as an administrative record; site owners can change this via the courseverify_privacy_erase_audit filter).
[uo_time] shortcode’s own rendering rather than a documented per-user API, and can currently only read the active, logged-in student’s own time (not an arbitrary student looked up by an administrator). See the compatibility note in includes/Integrations/Uncanny/class-uncanny-timer.php.the_content filter on singular LearnDash content; a fully version-proof hard block on LearnDash’s own AJAX quiz-submission endpoint has not yet been verified against a specific LearnDash version.