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.
Scenario Description Enrollment agreements Require students to sign terms and conditions before accessing paid course content Compliance training Gate mandatory training modules behind signed compliance acknowledgments (OSHA, HIPAA, GDPR) Certification programs Collect signed honor-code or exam-integrity agreements before issuing certificates Corporate onboarding Require new employees to sign NDA or policy documents as part of an onboarding course Waivers and liability Collect liability waivers before students access physical-activity or lab-based courses Continuing education Require 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
Component Minimum Version Recommended WPsigner 2.1.0 Latest LearnDash LMS 3.0 4.0+ WordPress 5.8 6.4+ PHP 7.4 8.1+ LearnDash Add-ons Compatible with ProPanel, WooCommerce, and Group Management add-ons —
Go to WPsigner → Documents → Add New
Create an enrollment agreement document
Save it as a Template (set status to Template)
Note the template — you’ll select it in the next step
Go to WPsigner → Integrations → LearnDash
Click Test Connection to verify LearnDash is detected
Configure:
Setting Description Enable Turn on the integration Require Signature Before enrollment (blocks access) or before completion (blocks certificate) Document Template Template used for enrollment agreements Gated Courses Select which courses require a signed document
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.
Student is added to a gated course
WPsigner creates a personalized document from the template
The document is linked to the course via meta data
Student sees a signing prompt on the course page
After signing, user_meta is updated to grant access
Data Storage Signing status WordPress user_meta: _wps_learndash_signed_{course_id} Course link WPsigner document_meta: _learndash_course_id Document Standard 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.
Hook Trigger Parameters wps_signer_createdA signing document is generated for the student $signer_id, $document_idwps_after_document_signedThe student completes their signature $signer_id, $document_idwps_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 );
// Custom logic: e.g., send a welcome email or log the event
Feature Details No API Keys Uses LearnDash’s PHP hooks directly Nonce Verification All AJAX requests verified Rate Limiting Test: 5/min, Save: 10/min per user Capability Check Requires manage_options for settings Input Sanitization All inputs sanitized with absint(), sanitize_text_field()
Issue Solution ”LearnDash Plugin Not Found” Install and activate LearnDash LMS No courses listed Publish at least one LearnDash course No templates listed Create a document with Template status Student still blocked Verify the signer email matches the WP user email Multiple agreements Each student/course combo creates one document