llms_template_my_favorites_loop( LLMS_Student $student = null, array $favorites = null )

Get student’s favorites.


Parameters Parameters

$student

(LLMS_Student) (Optional) LLMS_Student (current student if none supplied). Default null.

Default value: null

$favorites

(array) (Optional) Array of favorites (current student's favorites if none supplied). Default null.

Default value: null


Top ↑

Return Return

(void)


Top ↑

Source Source

File: includes/functions/llms.functions.templates.dashboard.php

	function llms_template_my_favorites_loop( $student = null, $favorites = null ) {

		$student = llms_get_student( $student );
		if ( ! $student ) {
			return;
		}

		$favorites = $favorites ?? $student->get_favorites();

		if ( ! $favorites ) {

			printf( '<p>%s</p>', esc_html__( 'No favorites found.', 'lifterlms' ) );

		} else {

			// Adding Parent Course IDs in Favorites for each lesson.
			foreach ( $favorites as $key => $favorite ) {
				$lesson                  = new LLMS_Lesson( $favorite->post_id );
				$favorite->parent_course = $lesson->get( 'parent_course' );
			}

			// Grouping Favorites by Parent Course ID.
			$favorites = array_reduce(
				$favorites,
				function ( $carry, $item ) {
					$carry[ $item->parent_course ][] = $item;
					return $carry;
				},
				array()
			);

			echo '<div class="llms-syllabus-wrapper">';

			// Printing Favorite Lessons under each Parent Course.
			foreach ( $favorites as $course => $lessons ) {

				// Get Course Name.
				$course = new LLMS_Course( $course );

				echo '<h3 class="llms-h3 llms-section-title">';
					echo esc_html( $course->get( 'title' ) );
				echo '</h3>';

				foreach ( $lessons as $lesson ) {

					$lesson = new LLMS_Lesson( $lesson->post_id );

					llms_get_template(
						'course/lesson-preview.php',
						array(
							'lesson' => $lesson,
						)
					);

				}
			}

			echo '</div>';
		}
	}


Top ↑

Changelog Changelog

Changelog
Version Description
7.5.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.