Filter uncanny-learndash-groups

ulgm_group_course_report_user_date_completed

Filters the date a user completed a course in group course reports.

add_filter( 'ulgm_group_course_report_user_date_completed', $callback, 10, 3 );

Description

Filters the date a user completed a course within a group report. Developers can modify the completion date for specific users or courses, allowing for custom reporting logic or data manipulation before it's displayed. The original date is passed by default.


Usage

add_filter( 'ulgm_group_course_report_user_date_completed', 'your_function_name', 10, 3 );

Parameters

$date_completed (mixed)
This parameter contains the date when the user completed the specified course.
$user (mixed)
This parameter contains the date the user completed the course.
$course_id (mixed)
This parameter contains the WordPress user object for whom the course completion date is being filtered.

Return Value

The filtered value.


Examples

<?php
/**
 * Example of how to filter the user's course completion date in the group report.
 * This example will add a suffix to the completion date if it's for a specific course.
 *
 * @param string|null $date_completed The current completion date string or null.
 * @param WP_User     $user           The user object.
 * @param int         $course_id      The ID of the course.
 * @return string|null The modified completion date string or null.
 */
function my_custom_group_course_completion_date( $date_completed, $user, $course_id ) {
	// Only apply this modification to a specific course, e.g., Course ID 123.
	if ( $course_id === 123 && ! empty( $date_completed ) ) {
		// Append a custom string to the date.
		return $date_completed . ' (Completed)';
	}

	// Return the original date if no conditions are met.
	return $date_completed;
}
add_filter( 'ulgm_group_course_report_user_date_completed', 'my_custom_group_course_completion_date', 10, 3 );

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/reports/group-reports-interface.php:735

$user_id                  = $user->ID;
			$first_name               = $user->first_name;
			$last_name                = $user->last_name;
			$user_email               = $user->user_email;
			$user_name                = $user->user_login;
			$date_completed_timestamp = isset( $completions_rearranged[ $user_id ] ) ? $completions_rearranged[ $user_id ] : '';
			$date_completed           = ! empty( $date_completed_timestamp ) ? learndash_adjust_date_time_display( $date_completed_timestamp ) : null;
			$date_completed           = apply_filters( 'ulgm_group_course_report_user_date_completed', $date_completed, $user, $course_id );
			$date_completed           = ! empty( $date_completed ) ? '<span class="ulg-hidden-data" style="display: none;">' . $date_completed_timestamp . '</span>' . $date_completed : '';
			//          $date_completed    = isset( $completions_rearranged[ (int) $user->ID ] ) ? learndash_adjust_date_time_display( $completions_rearranged[ (int) $user->ID ] ) : null;
			//          $date_completed    = apply_filters( 'ulgm_group_course_report_user_date_completed', $date_completed, $user, $course_id );
			$percent_completed = self::get_course_completion_percentage( $user->ID, $course_id ) . '%';
			$course_time       = self::get_course_time_in_seconds( $course_id, $user->ID, false );

			if ( ! empty( $percent_complete_link ) ) {


Scroll to Top