Team Course Sales for LearnDash
Sell individual courses and managed team seats through WooCommerce, provision native LearnDash Groups, and give purchasers a focused front-end dashboard for assigning trainees and following their progress.
Overview
A focused WooCommerce-to-LearnDash 5 workflow for selling and managing team training.
For course sellers
Enable eligible WooCommerce products for individual and team purchase, or use a paid licence to create team-only products. Configure seat limits and discounts, then provision paid team orders into native LearnDash Groups.
For Group Leaders
The purchaser receives a dashboard for naming licences, assigning trainees, sending reminders and reviewing every linked course separately, including progress, access expiry and eligible certificate links.
Requirements
| WordPress | 7.0 or later; WordPress 7 required |
| LearnDash | 5.1.8 or later required; LearnDash 4 is not supported |
| WooCommerce | 8.0 or later required; Classic Cart and Checkout supported in this release |
| PHP | 8.1 or later |
| Product types | WooCommerce Simple and LearnDash Course |
| LearnDash WooCommerce add-on | Required when using the LearnDash Course product type |
| Dashboard | Created with [glm_dashboard]; exclude the page from full-page and CDN caching |
Quick start
- Install and activate — Confirm WordPress 7.0+, LearnDash 5.1.8+, WooCommerce 8.0+ and PHP 8.1+. Exclude the Group Manager Dashboard from full-page and CDN caching.
- Configure a product — Edit a WooCommerce Simple or LearnDash Course product, enable team sales, link its LearnDash course or courses, choose the purchase mode, and set seat and discount rules.
- Test the purchase paths — For a combined product, confirm Buy for myself creates individual access and Buy Seats uses the selected team quantity. For a paid team-only product, confirm the individual purchase path is absent.
- Complete the order — Enable order auto-completion only when eligible paid orders should provision immediately. Otherwise retain the store’s normal order-status workflow.
- Test the dashboard — Sign in as the purchaser, assign both a new and existing trainee, then verify course access, progress, reminder, certificate and removal behavior.
User guide
Open the section that matches the task being completed.
General, appearance and email settings
General settings
| Default trainee role | Role assigned to accounts created by Team Course Sales. Customer is the default; Subscriber may suit sites that do not need WooCommerce account capabilities. |
| Username format | Use the full email address or Firstname.Lastname for newly created trainee accounts. |
| Login URL override | Destination inserted by the {LoginUrl} email token. Leave blank for the standard WordPress login URL. |
| Order completion | Marks eligible paid orders Completed for immediate provisioning. Leave disabled when another WooCommerce workflow controls final status. |
| My Account profile | Adds LearnDash’s native [ld_profile] output to WooCommerce My Account. |
Appearance
Set global individual and team button text, inherit the theme’s buttons or use plugin/custom colours, select the dashboard accent and optionally hide the standard dashboard heading. Per-product team-button text can be enabled separately.
Email templates
Editable templates cover new trainee, existing trainee, removed trainee and completion reminder messages. New accounts receive the normal secure password-set or login flow; existing users retain their current credentials.
Configure products, purchase modes and courses
Edit a supported WooCommerce product and open its Group License product tab.
| Enable team sales | Enables team-purchase controls when the product is eligible under the active tier. |
| Purchase mode | Use individual and team purchase together, or reserve the product for team purchases only with Pro or Agency. |
| Linked courses | Select the LearnDash course or paid-tier course bundle included in the product. |
| Minimum seats | Lowest permitted team quantity. |
| Maximum seats | Highest permitted team quantity; leave blank for unlimited. Raising the minimum also corrects an invalid lower maximum. |
| Discount tiers | Add up to ten quantity-based percentage or fixed-amount discounts. |
| Button text | Override the global team-purchase label when per-product overrides are enabled. |
On a combined product, Buy for myself follows the normal single-seat WooCommerce and LearnDash flow and does not create a Group or dashboard licence. Buy Seats uses the selected team quantity and creates the managed team workflow after provisioning.
Use team-only product mode
Pro and Agency licences can reserve an enabled product exclusively for team purchases. The normal individual add-to-cart control is removed and the product explains that the customer must choose a team seat quantity.
Team-only eligibility is enforced beyond the visible product page. Direct individual add-to-cart URLs are rejected, and an ineligible team-only item already present in the cart is removed before checkout.
This mode is useful for dedicated group-sales catalogues, private team landing pages and courses that should never be purchased as an individual enrolment.
Free, Pro and Agency behavior
| Free | Up to three enabled single-course team-sale products with the full core team, seat and trainee-management workflow. |
| Pro | Unlimited eligible products, multi-course bundles and team-only product mode on one production site. |
| Agency | Unlimited eligible products, bundles and team-only product mode on up to ten production sites. |
| Fourth free product | Remains editable, but live team controls are hidden. Disable one of the original three and the next eligible enabled product takes the released allocation after refresh. |
| Multi-course free product | Remains editable, but live team controls are hidden until Pro or Agency is active. |
| Paid licence ends | Existing Groups, trainees and course access remain. New configuration is evaluated under the free allowance. An existing team-only restriction remains enforced for safety: an eligible free-tier single-course product can continue team sales, while an ineligible product becomes unavailable instead of exposing individual purchase. |
Activate, check or deactivate a key under Team Course Sales → License.
Team checkout and order provisioning
The team action uses the configured seat quantity and applies the eligible volume discount. Team Course Sales adds the team-purchase context to the normal WooCommerce cart and order.
Provisioning occurs when the order reaches the configured completed state. The purchaser becomes the LearnDash Group Leader, the linked courses are attached to the native Group and the purchased quantity becomes its seat pool.
When auto-completion is disabled, confirm the order manually or through the store’s existing gateway workflow before expecting a dashboard licence.
Group Manager Dashboard and trainee seats
Team Course Sales creates the dashboard page with [glm_dashboard]. Group Leaders see only licences they manage. They can add a private Quick Name, assign new or existing users, send reminders, view learner details and remove eligible trainees.
Each linked course is shown independently. A newly assigned course displays Assigned; active training displays completed LearnDash steps as x of y; finished training displays its completion state. Where LearnDash provides the data, the dashboard also shows that course’s access-expiry date and its own eligible certificate link.
Certificate links are course-specific. A certificate from one completed course is not reused for another incomplete course in the same bundle.
A trainee with protected completed course work cannot be removed while completion protection applies. This prevents a completed allocation being silently recycled.
Administrator synchronization
Adding or removing users through native LearnDash 5 Group administration is reflected in the dashboard after refresh. Administrators can also increase seats from the Group edit screen. Group Leaders cannot buy additional seats from the dashboard in this release.
If an administrator manually adds another course to the native Group, the dashboard refreshes its course list from LearnDash and displays the added course separately. If the native Group is deleted, Team Course Sales clears its invalid dashboard licence and LearnDash controls removal of the related course access.
Data management and clean uninstall
Normal deactivation retains settings, licence records and dashboard data. Use Team Course Sales → Data Management only when deliberately preparing a comprehensive uninstall or clean testing cycle.
Back up the site first. Clean uninstall permanently removes plugin options, product metadata, seat records and other plugin-owned data and cannot restore deleted records later.
Troubleshooting
Team controls do not appear on a product
Confirm team sales are enabled, the product type is supported, at least one LearnDash course is linked and the product is eligible for the active tier. On Free, only three enabled single-course products expose team controls. Bundles and team-only mode require Pro or Agency.
A freed free-tier allocation has not moved
Disable team sales on one of the allocated products, save it, then edit and save the intended replacement product. Purge the affected product-page cache if the storefront still shows the previous state.
A team-only item was removed from the cart
The product was added through an individual or stale route, or it is no longer eligible for its configured paid-only mode. Return to the product page and begin with the visible team-seat control. Confirm an active Pro or Agency licence when team-only mode is required.
The Group or seats do not appear after checkout
Check that the order reached the status used for provisioning. If auto-completion is off, a paid order may remain Processing until the store’s normal workflow completes it.
The dashboard shows stale or another user’s data
Immediately exclude the dashboard URL from all full-page caching layers and purge its cached response. Logged-in dashboard HTML must be generated for the current Group Leader.
Progress, expiry or a certificate looks incorrect
Confirm the course is attached to the native LearnDash Group, then refresh the dashboard. Progress is calculated from that course’s LearnDash steps, Access Expiry refers to LearnDash course access rather than certificate expiry, and a certificate link appears only when LearnDash reports an eligible certificate for that specific course and learner.
A trainee cannot be removed
Review the learner’s course state. Removal is intentionally unavailable when protected completed course work makes that seat ineligible for reuse.
A LearnDash Course product has no course selector
Install and activate the free LearnDash WooCommerce add-on. It provides the Course product integration required for WooCommerce purchases to activate LearnDash access.
Developer notes
Dashboard: the supported front-end entry point remains [glm_dashboard]. Its page must remain outside full-page and CDN caching.
WooCommerce: Team Course Sales relies on supported order and product APIs. WooCommerce remains responsible for checkout, payment and order lifecycle.
LearnDash: native LearnDash 5 Groups remain the source of course membership and access. Team Course Sales adds commercial seat and licence records around them and reads course-step, access-expiry and certificate eligibility data for the dashboard.
My Account: the optional profile setting renders LearnDash’s native [ld_profile]; Team Course Sales does not replace or customize that profile.
Extension boundary: do not write directly to plugin records or treat internal dashboard, REST, AJAX, metadata or licensing behavior as a stable public API in this release.
Changelog
+ Separate Team Course Sales edition for WordPress 7 and LearnDash 5.1.8 or later.
+ Combined individual and team purchasing, plus Pro and Agency team-only product mode with product, cart and direct add-to-cart enforcement.
+ Course-level Group Leader detail showing Assigned, LearnDash step progress and Completed states.
+ Per-course LearnDash access expiry and course-specific eligible certificate links for single courses and bundles.
~ Native LearnDash 5 Group membership and course changes synchronize with the front-end dashboard after refresh.
~ Retains the established seat, discount, trainee-email, Quick Name, free-tier and WPGator licensing workflows.
! Prevented one completed course’s certificate URL from appearing against another incomplete course in the same licence.
Quick reference
| WordPress | 7.0 or later; WordPress 7 required |
| LearnDash | 5.1.8 or later required; LearnDash 4 not supported |
| WooCommerce | 8.0+ required; Classic Cart and Checkout |
| PHP | 8.1 or later |
| Products | WooCommerce Simple and LearnDash Course |
| Purchase modes | Individual and team, or Pro/Agency team-only |
| LearnDash WooCommerce add-on | Required for the LearnDash Course product type |
| Dashboard | [glm_dashboard]; exclude from full-page caching |
| Dashboard course detail | Assigned, step progress, Completed, Access Expiry and eligible course certificate |
| Free | Three enabled single-course team-sale products |
| Pro | Unlimited products, bundles and team-only mode on one production site |
| Agency | Unlimited products, bundles and team-only mode on up to ten production sites |
| Licence | Team Course Sales → License |
| Product | View plans and download |
| Documentation | Team Course Sales documentation |
