French Path - Course Packages and Progressive Unlock
Sells LearnDash courses as packages, records what a learner has paid for, and opens one sublevel at a time under coordinator control.
by Shakib Shown · github.com/shakib6472/french-path · website
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/shakib6472/french-path/archive/refs/heads/main.zipSells LearnDash courses as packages, records what a learner paid for, and opens one sublevel at a time under coordinator control.
Description
A school that teaches a long ladder of levels has a problem no LMS solves on its own: a learner may pay for the whole journey at once, but should only be able to enter one stage at a time.
French Path separates two facts that WordPress normally conflates:
- Entitlement — the learner has paid for this course.
- Access — the learner may enter it today.
Buying a twelve sublevel pathway writes twelve entitlements and opens one. The rest stay recorded as paid for, and a coordinator releases each one after assessment.
How it works
- Create a Package: give it an ordered list of LearnDash courses and the WooCommerce product that sells it.
- A single course is just a package holding one course, so individual and bundled purchases run through exactly the same code.
- When an order is paid, every course in the package is recorded as an entitlement, and the first one the learner does not already have open is enrolled in LearnDash.
- Locked sublevels are never enrolled. LearnDash denies them natively, so nothing is left open if the plugin stops running.
Requirements
LearnDash and WooCommerce. The plugin degrades to recording entitlements when LearnDash is absent, and does nothing at all when WooCommerce is absent.
Installation
- Upload the
french-pathfolder to/wp-content/plugins/. - Activate it through the Plugins screen.
- Go to French Path → Packages and create your first package.
Important: leave the LearnDash Related course field on your package products empty. When that field is set, the LearnDash WooCommerce integration enrols the buyer in every listed course as soon as the order is paid, which defeats progressive unlock.
Frequently Asked Questions
What happens to entitlements when I delete the plugin?
They stay. The entitlements table and the package posts survive uninstall, because deleting a plugin is not a decision to destroy records of payment. Remove them by hand if you really want them gone.
What happens on a refund?
Every entitlement that order wrote becomes revoked, and LearnDash access is removed for any course no other live order still covers. A sublevel bought twice, once alone and once inside a pathway, survives a refund of either one.
Can a learner lose a sublevel they already finished?
No. Progression never closes a course. Only a refund, or a coordinator correcting a mistake, does.
Changelog
1.0.0
- Packages, entitlement records, and progressive unlock with coordinator release.