Uncanny Groups for LearnDash 5.0

Yes, the Uncanny Groups release is that big. It deserves the 5.0 label, because this is a giant release with dozens of changes and over 100 hours of development and testing time. A lot of what’s new probably won’t even be on the radar of most users, so we’re hoping this release brings a lot of happy surprises!

Ready for the list of what’s new? It’s a big list, but if you’re on Uncanny Groups user, we definitely recommend reading through to the end.

Pooled seats

Ever wish you could set up some groups in a hierarchy, and instead of having seats managed for each individual groups, the entire set of groups could draw from a shared pool of seats? That’s what this is. When enabled, groups that are connected together share their seats.

Suppose you sell course access to a school and grant that school 1,000 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 shares from a total pool of 1,000 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 950 available seats.

That’s the simple introduction. We tried to keep it as straightforward as possible, but there’s a lot to consider when implementing pooled seats.

To get started, you’ll have to think about whether you want to enable pooled seats for specific groups only, and let Group Leaders control that setting, or whether you want all group hierarchies to have pooled seats enabled. Here’s what it looks like:

LearnDash Pooled Seats Settings

Checkbox 1 allows Group Leaders to control whether or not to enable seat pooling at the individual hierarchy level by adding a checkbox to the Group Management page. This checkbox is only shown when a top-level group is selected in a hierarchy, and it looks like this:

Top Level LearnDash Group Hierarchy

If checkbox 2 is also selected on the settings page, this forces all groups in all hierarchies to use the pooling system. It means the setting for pooled seats is now longer managed at the hierarchy level and instead enables it globally.

So how does it actually work, and what happens in various use cases? Let’s cover an example to make this more clear.

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.

In cases where enabling seat pooling results in no available seats, perhaps because of admin overrides, 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 )

Just a note too that for any of this to work, group hierarchies must first be enabled in LearnDash settings and relationships must be set up for groups by administrators. There is not yet any way to manage group relationships in the front end or by Group Leaders.

New pricing options

For a very long time now we’ve had requests to override pricing rules and quantities for seats. Typically requests would sound something like these:

“I want to sell a group product for $999 that includes 100 seats, I don’t want users to have to choose a quantity of 100 and change my course prices to hit this pricing target.”

“I only want to sell groups with a minimum of 5 seats, they shouldn’t be available when the quantity of seats is just 2.”

We would always recommend WooCommerce pricing plugins that allowed easy overrides, but it wasn’t a great workaround. Today’s update adds native solutions to these problems to Uncanny Groups.

Here’s what the pricing section now looks like when setting up a Group License product:

LearnDash Group pricing rules

Normally, of course, the price is ignored for a Group License product, instead calculating the price based on the cost of each Group Course product and the number of seats purchased. But when “Fixed price” is checked, the “Regular price” field is used as the group cost regardless of the number of seats purchased. In the example above, we’re charging $100 for exactly 10 seats. Users cannot purchase another amount, they just buy a product here that includes 10 seats for that fixed cost.

The “Minimum” and “Maximum” quantity fields can be used independently to set limits around seat purchases. These might even be used to set up more advanced pricing rules for different group types.

New Gutenberg blocks

One of our customers rightly pointed out that we had Gutenberg blocks in other plugins for redemption and registration shortcodes, but we didn’t for [uo_groups_registration_form] and [uo_groups_redemption_form]. Now we do! Look for the new blocks for “Enrollment Key Redemption” and “Enrollment Key Registration”.

The new blocks add support for the normal shortcode attributes as well, so the registration block (for example) has settings for redirections, making the key optional, logging the user in automatically on submission and the default role.

New report sort options

We made it a lot easier to sort the various Uncanny Groups reports by different columns on load using shortcode attributes. There are a ton of new attributes here, so we’ll post the list with quick details:

Group management [uo_groups]

  • Enrolled users
    • enrolled_users_orderby_column – The title of the column used to sort. Default: First name
    • enrolled_users_order_column – Designates the ascending or descending order of the orderby parameter (asc/desc). Default asc.
  • Group leaders
    • group_leaders_orderby_column Default: First name
    • group_leaders_order_column Default asc

Course Report [uo_groups_course_report]

  • orderby_column Default: Date Completed
  • order_column Default: desc

Quiz Report [uo_groups_quiz_report]

  • orderby_column Default: Date
  • order_column Default: desc

Assignments Report [uo_groups_assignments]

  • orderby_column Default: Date
  • order_column Default: desc

Essay Report [uo_groups_essays]

  • orderby_column Default: Date
  • order_column Default: desc

For some of the above, please note that the values are stored in the browser cache, so you may not see changes immediately after updating shortcodes. Try a hard refresh or incognito mode for testing.

Other important updates

Group Leaders can now manage users and Group Leaders for child groups when they’re assigned to the parent group level. This makes it a lot easier to set Group Leaders up at the parent group only to manage hierarchies instead of adding them to every child group.

In the Manage Progress report, we now show a spinner when a search is active to make the activity more clear to users on slower sites.

A variety of WPML improvements are also now in the plugin.

That wraps up the highlights for the Uncanny Groups for LearnDash release! The full list of updates is available in the changelog.

author avatar
Ryan Moore Director
Ryan Moore (MA, PMP, BCom) is the Cofounder and Director of Uncanny Owl, creators of Uncanny Automator and a suite of popular add-ons for LearnDash. Since 2013, Ryan has helped thousands of companies add elearning and automation capabilities to their WordPress websites.
0 replies


Please note that this is not a support forum. If you are experiencing issues on your site, please open a support ticket instead. Site-specific support questions submitted as comments will be unanswered.

Leave a Reply

Your email address will not be published. Required fields are marked *