Filter uncanny-learndash-groups

group_management_add_user_permission

Filters whether a user is a group leader when adding a user to a group.

add_filter( 'group_management_add_user_permission', $callback, 10, 1 );

Description

Filters the permission required to add a user to a group. Developers can use this hook to customize the capability needed for group management operations, allowing for more granular control over user permissions beyond the default 'group_leader'.


Usage

add_filter( 'group_management_add_user_permission', 'your_function_name', 10, 1 );

Return Value

The filtered value.


Examples

/**
 * Example function to modify the permission required to add users to groups.
 *
 * This filter allows administrators to specify a custom capability that users
 * must possess in order to add members to a group. By default, it's 'group_leader'.
 *
 * @param string $permission The default capability required.
 *
 * @return string The modified capability required.
 */
function my_custom_group_add_user_permission( $permission ) {
	// If the current user has the 'administrator' role, grant them permission
	// regardless of the default 'group_leader' capability.
	if ( current_user_can( 'administrator' ) ) {
		return 'administrator'; // Administrators can always add users.
	}

	// Otherwise, return the original permission if no custom logic applies.
	// This ensures the filter doesn't break existing functionality.
	return $permission;
}
add_filter( 'group_management_add_user_permission', 'my_custom_group_add_user_permission', 10, 1 );

Placement

This code should be placed in the functions.php file of your active theme, a custom plugin, or using a code snippets plugin.


Source Code

src/includes/class-csv-user-upload.php:126
src/classes/reports/group-reports-interface.php:427
src/classes/reports/group-reports-interface.php:554
src/classes/helpers/rest-api-end-points.php:367
src/classes/helpers/rest-api-end-points.php:1223

private function validate_permissions() {

		// Does the current user have permission
		$permission = apply_filters( 'group_management_add_user_permission', 'group_leader' );
		if ( ! current_user_can( $permission ) && ! current_user_can( 'manage_options' ) && ! current_user_can( 'ulgm_group_management' ) ) {
			$data['message'] = __( 'You do not have permission to add users.', 'uncanny-learndash-groups' );
			wp_send_json_error( $data );
		}
	}


Scroll to Top