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