WP Manifestindependent plugin directory
manifest / ecommerce / multi-vendor-lms-plugin

Multi-Vendor LMS

Marketplace-style LMS — multiple independent tutors, courses with modules/lessons, video + PDF + live sessions, PayHere/WebXPay/Mobile-Wallet/Bank-Slip payments, watermarked videos, device limit, smart discovery, vendor & admin dashboards.

by Cyberdeck · github.com/esupporttechnology/multi-vendor-lms-plugin · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/esupporttechnology/multi-vendor-lms-plugin/archive/refs/heads/main.zip

A marketplace-style Learning Management System with independent tutors, hybrid learning, multiple Sri Lankan payment gateways, video watermarks, device limit, smart discovery, and admin/vendor dashboards.

Features

  • Two user roles: Student, Teacher (Vendor) — admin-approved
  • Course → Module → Lesson hierarchy
  • Lesson types: Video (MP4/streaming URL), PDF, External Link, Live Session (Zoom/Meet)
  • Multiple Sri Lankan payment gateways: PayHere, WebXPay, plus Bank Slip upload
  • Configurable commission per teacher
  • Device limit (default 2 per user)
  • Anti-piracy watermark overlay on videos (student email/name drifts across corners)
  • Smart discovery: filter by Year / Subject / Topic / Teacher; keyword search with autosuggest
  • Per-teacher revenue tracking + consolidated admin reports
  • Optional 2FA on login (6-digit email code)
  • Forgot password flow

Installation

  1. Upload the plugin folder to /wp-content/plugins/ and activate it
  2. Go to LMS → Settings and:
    • Set currency, default commission %, device limit
    • Configure PayHere merchant ID & secret (use sandbox first)
    • Paste WebXPay public key and secret if using WebXPay
    • Add bank account details for the Bank Slip option
    • Configure watermark text
  3. Create six pages, each containing one shortcode:
    • [mvlms_login] — login + 2FA + forgot password
    • [mvlms_student_register] — student signup
    • [mvlms_teacher_register] — teacher application
    • [mvlms_student_dashboard] — student dashboard
    • [mvlms_teacher_dashboard] — vendor dashboard
    • [mvlms_courses] — public catalog with filters
    • [mvlms_course] — course detail (uses ?slug=course-slug)
    • [mvlms_lesson] — lesson player (uses ?slug=course-slug&lesson=ID)
  4. In LMS → Settings → Pages, assign each page

Roles

  • mvlms_student — students who enroll in courses
  • mvlms_teacher — vendor teachers (only see their own courses + students)

Payment Notes

PayHere: works out of the box. Use sandbox mode while testing. The notify URL is /wp-admin/admin-ajax.php?action=mvlms_payhere_notify — set this in your PayHere dashboard if required.

WebXPay: WebXPay's checkout requires RSA-encrypted payment payloads using their public key. This plugin ships with a stub implementation. After signup, paste your public key in settings. You may need to adjust the request format and the webxpay_notify() handler in class-mvlms-payments.php to match the exact response format WebXPay sends you.

Bank Slip: students upload a transfer receipt; appears in LMS → Payments for admin review. Approving the slip auto-enrolls the student.

Limitations & Known Roughness

This is a fast-built scaffold covering the full spec. Production hardening still needed:

  • Watermark is client-side CSS overlay. A determined user can remove it with browser dev tools or by screen-recording. Server-side per-student video transcoding (FFmpeg) is the only piracy-proof option, and adds significant infra cost.
  • Device limit uses a long-lived cookie + UA hash. Clearing cookies bypasses it.
  • Live sessions are link-based only — teachers paste their Zoom/Meet URL. No OAuth integration with Zoom or Google Meet (no auto-create, no auto-record).
  • No video hosting included — paste URLs to your own MP4/HLS host (S3, Bunny, Cloudflare Stream, etc.).
  • No refunds workflow — handle manually via the payments admin.
  • No bulk course import / CSV.

Changelog

1.0.0

Initial release.