Skip to content

LearnDash

Integrate WPsigner with LearnDash LMS to require signed enrollment agreements, waivers, or compliance documents before students can access course content.


Student Enrolls → Signing Prompt → Signs Document → Course Unlocked
(Access blocked until signed)

WPsigner creates a personalized enrollment agreement from a template and gates course access until the student signs.


ScenarioDescription
Enrollment agreementsRequire students to sign terms and conditions before accessing paid course content
Compliance trainingGate mandatory training modules behind signed compliance acknowledgments (OSHA, HIPAA, GDPR)
Certification programsCollect signed honor-code or exam-integrity agreements before issuing certificates
Corporate onboardingRequire new employees to sign NDA or policy documents as part of an onboarding course
Waivers and liabilityCollect liability waivers before students access physical-activity or lab-based courses
Continuing educationRequire signed attestation of professional credentials before granting CE credits

  • WPsigner 2.1.0+
  • LearnDash LMS plugin (v3.0+)
  • Both plugins active on the same WordPress installation
ComponentMinimum VersionRecommended
WPsigner2.1.0Latest
LearnDash LMS3.04.0+
WordPress5.86.4+
PHP7.48.1+
LearnDash Add-onsCompatible with ProPanel, WooCommerce, and Group Management add-ons

  1. Go to WPsigner → Documents → Add New
  2. Create an enrollment agreement document
  3. Save it as a Template (set status to Template)
  4. Note the template — you’ll select it in the next step
  1. Go to WPsigner → Integrations → LearnDash
  2. Click Test Connection to verify LearnDash is detected
  3. Configure:
SettingDescription
EnableTurn on the integration
Require SignatureBefore enrollment (blocks access) or before completion (blocks certificate)
Document TemplateTemplate used for enrollment agreements
Gated CoursesSelect which courses require a signed document
  1. Click Save Settings

Students cannot access course content until they sign the enrollment agreement. When they visit the course page, they see a “Sign Agreement” button.

Students can access and take the course, but cannot receive their certificate or completion status until they sign.


  1. Student is added to a gated course
  2. WPsigner creates a personalized document from the template
  3. The document is linked to the course via meta data
  4. Student sees a signing prompt on the course page
  5. After signing, user_meta is updated to grant access
DataStorage
Signing statusWordPress user_meta: _wps_learndash_signed_{course_id}
Course linkWPsigner document_meta: _learndash_course_id
DocumentStandard WPsigner documents table

WPsigner fires the following action hooks during the LearnDash signing lifecycle. Use them to extend behavior or integrate with third-party systems.

HookTriggerParameters
wps_signer_createdA signing document is generated for the student$signer_id, $document_id
wps_after_document_signedThe student completes their signature$signer_id, $document_id
wps_document_completedThe enrollment document is fully signed$document_id
add_action( 'wps_document_completed', function( $document_id ) {
$course_id = get_post_meta( $document_id, '_learndash_course_id', true );
if ( $course_id ) {
// Custom logic: e.g., send a welcome email or log the event
}
});

FeatureDetails
No API KeysUses LearnDash’s PHP hooks directly
Nonce VerificationAll AJAX requests verified
Rate LimitingTest: 5/min, Save: 10/min per user
Capability CheckRequires manage_options for settings
Input SanitizationAll inputs sanitized with absint(), sanitize_text_field()

IssueSolution
”LearnDash Plugin Not Found”Install and activate LearnDash LMS
No courses listedPublish at least one LearnDash course
No templates listedCreate a document with Template status
Student still blockedVerify the signer email matches the WP user email
Multiple agreementsEach student/course combo creates one document