“Pooled seats” are a feature introduced in Uncanny Groups for LearnDash 5.0 that allows groups connected together in a hierarchy to share their seats from a single pool. In other words, if the entire organization representing the group is allocated 500 seats, then any child group of that top-level parent will see 500 total seats. If a seat is used by a student in a child group, the seat is no longer available to the other groups in the hierarchy. Where groups normally have a set number of seats allocated to each one, the pooled seats option allows them to be shared.
Here’s an example of pooled seats in action:
Suppose you sell course access to a school and grant that school 500 seats to use at their discretion. They’re going to want to divide students up into classes for reporting purposes as well as to manage course enrollment. Instead of having to figure out how to assign 20 seats to one group and 30 to another, now the entire set of classrooms (the LearnDash groups) shares from a total pool of 500 seats. If a Grade 9 math class uses up 20 seats, then a grade 10 music class uses 30, other groups now have a pool of 450 available seats.
Setting up pooled seats
Using pooled seats requires that LearnDash Group Hierarchies be enabled. For more information about this setting, there’s a helpful LearnDash support article.
Once hierarchies are enabled, visit Uncanny Groups > Settings in /wp-admin/ and turn on the appropriate setting for your site:
The first option, “Allow Group Leaders to enable seat pooling from the Group Management page”, allows pooled seats to be managed independently for each hierarchy on the site. On the Group Management page, the Group Leader will see a checkbox to turn pooled seats on or off. When this is toggled, Uncanny Groups will calculate total and available seats across all groups in the hierarchy (in the case of enabling it) or it will restore individual seat counts for each group (if it’s disabled).
The second checkbox, “Enable pooled seats for all groups in hierarchies”, turns on pooled seats across all group hierarchies. They can no longer be managed by Group Leaders when this setting is enabled.
Suppose you start with a parent group with 100 seats assigned, and that parent group has a child group that has 50 seats. If pooled seats are enabled for the hierarchy, both parent and child groups would immediately see that the hierarchy now has 150 seats. (And if you disabled the pool again, the seats would return to 100 and 50 respectively.) When viewing the parent or child groups in this situation, all would show the same number of total and available seats. So, when pooled seats are enabled, the parent group would show 150 total seats and the child group would show 150 total seats.
In cases where enabling seat pooling results in no available seats, perhaps because of admin overrides when adding students to groups, Uncanny Groups calculates the total pooled seats as the current number of users across all groups in the hierarchy and adds 10, but this default value can be overridden with a filter:
apply_filters( 'ulgm_pool_seats_add_extra_seats_in_parent', absint( 10 + $diff ), $diff, $group_id )
Groups can only be added to hierarchies by administrators, not Group Leaders. So, for pooled seats to work, an administrator must edit groups to connect them to appropriate parent groups to create the hierarchy for a group.