llms_show_mark_complete_button( LLMS_Lesson $lesson )

Determines whether or not a “Mark Complete” button should be displayed for a given lesson


Description Description

If the lesson has a quiz, the button will only be shown if the current user has already met the quiz requirements (passed the quiz, or completed at least one attempt if passing is not required).


Top ↑

Parameters Parameters

$lesson

(LLMS_Lesson) (Required) LLMS_Lesson instance.


Top ↑

Return Return

(boolean)


Top ↑

Source Source

File: includes/functions/llms-functions-progression.php

function llms_show_mark_complete_button( $lesson ) {

	$show = true;

	// If a quiz button should be shown, check if user already met quiz requirements.
	if ( llms_show_take_quiz_button( $lesson ) ) {
		$show = false;

		// Check if current user has already met quiz requirements.
		$user_id = get_current_user_id();
		if ( $user_id && $lesson->is_quiz_enabled() ) {
			$student = llms_get_student( $user_id );
			if ( $student ) {
				$quiz_id = $lesson->get( 'quiz' );
				$attempt = $student->quizzes()->get_best_attempt( $quiz_id );

				if ( $attempt ) {
					$passing_required = llms_parse_bool( $lesson->get( 'require_passing_grade' ) );
					// Show button if: passing not required, OR attempt is passing.
					if ( ! $passing_required || $attempt->is_passing() ) {
						$show = true;
					}
				}
			}
		}
	}

	return apply_filters( 'llms_show_mark_complete_button', $show, $lesson );
}


Top ↑

Changelog Changelog

Changelog
Version Description
3.29.0
10.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

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