Building a marketplace on Tutor LMS
Know where the data lives first
Tutor LMS stores courses, topics, lessons, quizzes and assignments as post types, and it records an enrollment as a post too, of type tutor_enrolled, with the course as its parent and the student as its author. Quiz attempts, answers, earnings and withdrawals have their own tables. None of this is a problem, but it shapes every custom report and every migration. Counting active learners per course is a post query. Revenue per instructor comes from the earnings table. A report that mixes both has to be written with care or it will time out on a busy site.
Commission is a business rule, so write it down
When a course sells, Tutor LMS writes an earnings row that splits the amount between the site and the instructor. Changing the split for one instructor or one course means intercepting that calculation, and the hard questions are not technical. What happens to the split on a refund? On a coupon the instructor did not agree to? On a bundle with courses from three teachers? On tax? We ask for a worked example of each case before coding, and those examples become automated tests. Marketplaces that skip this step end up correcting statements by hand.
Payouts and the order system
Tutor LMS can sell through WooCommerce or Easy Digital Downloads, and the choice affects payouts. With WooCommerce you gain subscriptions, tax rules, coupons and a large gateway catalog, and automated instructor payouts can be driven from order events. Whatever the setup, we keep a ledger: each sale, refund, fee and payout is a row that can be audited, and an instructor statement is a view of that ledger, never a number calculated on the fly.
Dashboards without forking the plugin
The front-end dashboard is built from templates that a theme can override in a tutor folder, and its menu is filterable, so new pages can be added cleanly. We avoid copying more templates than a design needs, since each copy has to be checked after a Tutor LMS release. New screens, such as a payout history or a cohort report, are registered by our plugin and styled to match, which keeps them alive through theme changes as well.
What we test before launch
A marketplace has more roles than a normal course site. Our test pass covers a visitor, a student, a new instructor awaiting approval, an approved instructor, a second instructor on a shared course and an admin. It follows money through purchase, partial refund and payout, and it checks that a student removed from a course loses access to its live class links.