Documentation
Lightweight WordPress LMS by CorteX Solutions. This guide covers install → setup → launch.
Requirements
- WordPress 6.x+
- PHP 8.0+ / MySQL 5.7+ (or MariaDB 10.4+)
- WooCommerce 8.x+ (Subscriptions optional)
- Video: Vimeo or Bunny Stream (recommended), YouTube/HLS supported
- Use LiteSpeed/Cloudflare (exclude lesson POST submits & /dashboard)
- Enable OPcache, HTTP/2, and image/WebP
Install & Update
- Upload the plugin ZIP via Plugins → Add New → Upload and activate.
- Go to Settings → Permalinks and click Save once.
- Optional: Install payment gateways (PayHere/WebXpay/Stripe/PayPal).
- To update: upload the new ZIP — it will replace the old safely.
Quick Start (5 minutes)
- Create pages:
/courses(Course Grid),/dashboard(Student Dashboard). - Add a Course + 2–3 Lessons. Mark one lesson as Free Preview.
- Create a Woo product (one-time or subscription) and link it to the Course.
- Test checkout → automatic enrollment → play the lesson.
- Optionally add a quiz with pass mark and auto-certificate.
Shortcodes
[cxlms_course_grid per_page="9" order="desc" category="featured"]
[cxlms_course id="123"]
[cxlms_lesson id="456"]
[cxlms_dashboard]
Replace IDs with your actual Course/Lesson IDs. Works in Gutenberg, Elementor, and classic editor.
Courses & Lessons
- Course single: overview, syllabus, instructor, duration, optional Zoom link.
- Lesson player: Vimeo/Bunny/YouTube/HLS; notes & protected downloads.
- Categories/Tags: unlimited; useful for grid filters.
WooCommerce & Payments
- Create Product → choose pricing (one-time or subscription).
- Product Data → CXLMS: Linked Course → select Course.
- After successful payment, the student is auto-enrolled.
Gateways: PayHere (LKR), WebXpay (LKR), Stripe/PayPal (USD).
Quizzes & Certificates
- Types: MCQ / True-False / Short Answer
- Timer, pass mark, retakes; show score & review
- Auto certificate (name, course, score, serial, issued date)
Drip & Progress
- Open on date/time
- X days after enrollment
- After previous lesson
Progress is tracked per lesson and as a course %.
Assignments & Grading
Students can upload PDF/Images per lesson. Instructors can approve/reject with feedback and (optionally) gate the next lesson until approved.
Live Classes (Zoom)
Each course can store a Zoom link (manual entry for MVP). Zoom API automation is planned.
Student Dashboard
Shows enrolled courses, progress, certificates, and quick links. Use [cxlms_dashboard] on the /dashboard page.
Reports & Logs
- Enrollment trends, completion rates, quiz performance
- Activity logs (export-ready)
Security & Roles
- Protected downloads (enrolled only)
- Video domain lock (Vimeo/Bunny)
- Roles: Admin / Instructor / Student
- Nonces, capability checks, escaped output
Theming (Gutenberg / Elementor)
- Use shortcodes inside blocks or Elementor.
- Global styles come from your theme (e.g., Blocksy). Override via Additional CSS.
Hooks & Filters (dev)
// Redirect after enroll to dashboard
add_filter('cxlms_course_enroll_redirect', function($url, $user_id, $course_id){
return site_url('/dashboard');
}, 10, 3);
// Fire when a lesson is completed
add_action('cxlms_after_lesson_complete', function($user_id, $lesson_id){
// custom tracking or email
});Template Overrides
Copy templates from the plugin’s /templates/ folder into your theme at /cxlms/. Example:
wp-content/themes/your-theme/cxlms/course-single.php wp-content/themes/your-theme/cxlms/lesson-player.php
Troubleshooting
Lesson completes but progress not saving
- Exclude lesson POST URLs and
/dashboardfrom cache - Check nonce errors in browser console
Video won’t load on site
- Check domain lock (Vimeo/Bunny) allows your domain
- Mixed content? Ensure HTTPS everywhere
Still stuck? See Support.
FAQ
Can I drip lessons by date and by enrollment days?
Yes. Each lesson can use date/time, X days after enroll, or “after previous lesson”.
Do certificates support serial numbers?
Yes — auto generated with issued date and course name.
Which payments are supported?
PayHere / WebXpay (LKR), Stripe / PayPal (USD) via WooCommerce.
Support & Contact
Email support@cortex.lk or use the Contact Page. Response within 24h (Mon–Fri).
Open a ticket