CourseVerify – Student Identity Checkpoints

CourseVerify – Student Identity Checkpoints

Details
View on WordPress

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

  • Student-configured security questions, answers stored as one-way hashes (never plaintext, never shown to administrators)
  • Configurable, per-course checkpoint schedule based on tracked course time
  • Configurable maximum verification attempts, with automatic lock-out and administrator unlock
  • Optional final-exam verification, gated on an administrator-selected quiz
  • Full audit log of verification and administrative events
  • Works with any theme; assets are only loaded on protected course pages
  • No telemetry, no tracking, no external requests, no advertising

Supported integrations

  • LearnDash (course/lesson/topic/quiz access, enrollment, final exam)
  • Uncanny Toolkit Pro — Simple Course Timer ([uo_time]) as the course-time source

CourseVerify is an independent plugin and is not affiliated with LearnDash, Uncanny Owl, or any regulatory agency.

Configuration

Per-course settings (on each course’s edit screen):

  • Enable CourseVerify
  • Number of security questions required at setup
  • Checkpoint schedule, in hours of tracked course time
  • Maximum verification attempts before locking
  • Whether to lock on max failures
  • Final-exam verification, and which quiz it applies to

Global settings (CourseVerify Settings) provide defaults used when a course hasn’t been individually configured, plus the uninstall data-deletion preference.

Privacy

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).

Limitations

  • The bundled Uncanny Toolkit Pro time-provider adapter reads course time via the [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.
  • Course-content gating is enforced via the 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.

Details

Plugin code:
courseverify-student-identity-checkpoints
Plugin version:
1.0.1
Author:
Outdated:
No
WP version:
6.0 or higher
PHP version:
7.4 or higher
Test up to WP version:
7.1.2
Total installations:
0
Last updated:
2026-10-01
Rating:
Times rated:
0
checkpoints
course-security
identity-verification
learndash
quiz