Filter uncanny-toolkit-pro

uo_ld_course_navigation_show_lesson_quizzes

Filters whether to display quizzes within a LearnDash course's navigation, based on course ID and instance.

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

Description

Filters whether to display quizzes within individual lessons in the LearnDash course navigation. This hook allows developers to conditionally hide or show lesson quizzes based on various factors, such as user roles or specific course settings, influencing the course navigation's appearance.


Usage

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

Parameters

$course_id (mixed)
This parameter is a boolean value indicating whether quizzes should be displayed within the course navigation, and it defaults to `true`.
$instance (mixed)
This parameter contains the ID of the current LearnDash course being displayed.

Return Value

The filtered value.


Examples

<?php
/**
 * Example of filtering the 'uo_ld_course_navigation_show_lesson_quizzes' hook.
 *
 * This example will conditionally hide lesson quizzes from the course navigation
 * if a specific meta key is set on the user's profile or if the course itself
 * has a meta key indicating quizzes should be hidden at the lesson level.
 *
 * @param bool $show_lesson_quizzes The default value (true).
 * @param int  $course_id           The ID of the current course.
 * @param array $instance           The current instance of the course navigation.
 * @return bool Whether to show lesson quizzes or not.
 */
add_filter( 'uo_ld_course_navigation_show_lesson_quizzes', function( $show_lesson_quizzes, $course_id, $instance ) {
    // Check if the user is logged in
    if ( is_user_logged_in() ) {
        $current_user_id = get_current_user_id();

        // Option 1: Hide lesson quizzes if a specific user meta is set.
        // For example, let's say a user meta 'hide_all_lesson_quizzes' set to 'yes'
        // means they don't want to see quizzes within lessons.
        $hide_quizzes_for_user = get_user_meta( $current_user_id, 'hide_all_lesson_quizzes', true );

        if ( 'yes' === $hide_quizzes_for_user ) {
            return false; // Hide lesson quizzes for this user.
        }

        // Option 2: Hide lesson quizzes if the course has a specific meta key.
        // For example, a course meta '_disable_lesson_quizzes_in_nav' set to 'true'
        // could disable lesson quizzes in the navigation for everyone.
        $disable_lesson_quizzes_for_course = get_post_meta( $course_id, '_disable_lesson_quizzes_in_nav', true );

        if ( 'true' === $disable_lesson_quizzes_for_course ) {
            return false; // Hide lesson quizzes for this course.
        }
    }

    // If none of the above conditions are met, return the original value.
    return $show_lesson_quizzes;
}, 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/learndash-course-navigation.php:371

<?php echo esc_html( $uo_course_navigation_heading ); ?>
			</div>
			<?php
		}

		// Always show quizzes at every level.
		$instance['show_course_quizzes'] = apply_filters( 'uo_ld_course_navigation_show_course_quizzes', true, $course_id, $instance );
		$instance['show_lesson_quizzes'] = apply_filters( 'uo_ld_course_navigation_show_lesson_quizzes', true, $course_id, $instance );
		$instance['show_topic_quizzes']  = apply_filters( 'uo_ld_course_navigation_show_topic_quizzes', true, $course_id, $instance );
		?>
		<div class="ultp-lazy-course-navigation__content">
			<?php learndash_course_navigation( $course_id, $instance, $lesson_query_args ); ?>
		</div>
		<?php


Scroll to Top