CertifyPro Training
Team course buying on LearnDash: one seat count, one simple price.
CertifyPro sells workplace training to UK teams, and its group add-on asked buyers for a quantity on every course. A custom product type replaces that with one seat count, three purchase modes and a yearly subscription that keeps seats in step.

About the project
CertifyPro Training sells courses to UK workplaces, with organizations buying seats for their teams. The LearnDash Groups Plus add-on worked differently from what the client needed: it asked for a quantity on each course and created a separate group for each one.
A focused plugin adds a new subscription product type and keeps using native LearnDash groups and the Groups Plus dashboard.
What had to be solved
- Groups Plus asked for a quantity on each course, but the client wanted one seat quantity.
- Its price added up course prices and quantities, where the client wanted price times seats.
- It created one child group per course, where the client wanted one group.
- Seats had to follow yearly renewals and cancellations.
- Buyers also needed to add teams and seats to an organization they already had.
How it was built
- Built one form asking for organization name, team name, seats and courses.
- Mapped seats to the WooCommerce line quantity, so price times seats and renewals work natively.
- Created native LearnDash parent and child groups with licence counts and mirrored courses, making the buyer the group leader.
- Added lifecycle handling that drafts groups or removes top-ups when a subscription goes inactive, restores them when it returns, and guards against duplicates on renewal.
- Added new team and add-seats modes with server-side ownership checks. A top-up charges only for the extra seats.
What it delivered
- The live product page offers 16 courses and 2 to 100 seats on one form.
- In testing, a renewal created no duplicate groups.
More projects like this
Have a project like this?
Book directly into my calendar, or send the brief and I reply within one business day.


