Filter uncanny-toolkit-pro

uo_groups_leaders

Filters group leaders list. Filters the HTML output for group leaders, allowing modification based on provided group IDs.

add_filter( 'uo_groups_leaders', $callback, 10, 2 );

Description

Filter the HTML output for a user's group leaders list. This hook allows developers to modify or entirely replace the default rendering of group leader information based on the provided group IDs. Useful for custom display logic or conditional rendering of leader details.


Usage

add_filter( 'uo_groups_leaders', 'your_function_name', 10, 2 );

Parameters

$group_leader_info (string)
Group leaders html output.
$group_ids (array)
Array of group IDs.

Return Value

The filtered value.


Examples

/**
 * Example of how to use the 'uo_groups_leaders' filter to add a prefix to each group leader's name.
 *
 * @param string $group_leader_info The original HTML output for group leaders.
 * @param array $group_ids An array of group IDs.
 * @return string The modified HTML output.
 */
add_filter( 'uo_groups_leaders', function( $group_leader_info, $group_ids ) {

	// Check if there's any group leader info to modify.
	if ( empty( $group_leader_info ) ) {
		return $group_leader_info;
	}

	// You could iterate through $group_ids here if you needed to access group-specific data
	// from the original output, but for this example, we'll modify the existing HTML.

	// Let's say we want to add a "Leader: " prefix before each leader's name.
	// This is a simplified example; a more robust solution might use DOM parsing.
	$modified_leader_info = str_replace( '<span class="uo_group_leader_name">', '<span class="uo_group_leader_name">Leader: ', $group_leader_info );

	return $modified_leader_info;

}, 10, 2 ); // Priority 10, accepts 2 arguments.

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/classes/group-logo-list.php:298

public static function uo_group_leaders( $attributes ) {

		$group_leader_info = '';
		$user_id           = get_current_user_id();
		$group_ids         = learndash_get_users_group_ids( $user_id );
		if ( empty( $group_ids ) ) {
			return $group_leader_info;
		}
		$groups_count      = count( $group_ids );
		$group_leader_info .= '<div class="uo_group_info_wrapper">';
		foreach ( $group_ids as $group_id ) {
			if ( 0 !== $group_id ) {

				$group_leaders = learndash_get_groups_administrators( $group_id );

				if ( $groups_count > 1 ) {
					$group_leader_info .= '<div class="uo_group_name">' . get_the_title( $group_id ) . '</div>';
				}
				if ( ! empty( $group_leaders ) ) {
					foreach ( $group_leaders as $group_leader ) {

						if ( isset( $group_leader->data ) && isset( $group_leader->data->ID ) && absint( $group_leader->data->ID ) ) {

							$first_name = get_user_meta( $group_leader->data->ID, 'first_name', true );
							if ( ! empty( $first_name ) ) {
								$first_name = $first_name . ' ';
							} else {
								$first_name = '';
							}

							$last_name = get_user_meta( $group_leader->data->ID, 'last_name', true );
							if ( ! empty( $last_name ) ) {
								$last_name = $last_name . ' ';
							} else {
								$last_name = '';
							}

							$add_dash = '';
							if ( ! empty( $first_name ) || ! empty( $last_name ) ) {
								$add_dash = '<span class="uo_group_leader_dash"> - </span>';
							}

							$email             = $group_leader->data->user_email;
							$group_leader_info .= '<div class="uo_group_leader_list"> <span class="uo_group_leader_name">' . $first_name . $last_name . '</span>' . $add_dash . '<a href="mailto:' . $email . '"><span class="uo_group_leader_email">' . $email . '</span></a></div>';
						}
					}
				}
			}
		}
		$group_leader_info .= '</div>';

		/**
		 * Filters group leaders list.
		 *
		 * @param string $group_leader_info Group leaders html output.
		 * @param array $group_ids Array of group IDs.
		 */
		$group_leader_info = apply_filters( 'uo_groups_leaders', $group_leader_info, $group_ids );

		return $group_leader_info;
	}

Scroll to Top