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

Multi-Vendor LMS

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/esupporttechnology/multi-vendor-lms-plugin/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

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.