Created
February 3, 2020 21:02
-
-
Save tobeyadr/23941e09f0ef25d374208a4ea46d099d to your computer and use it in GitHub Desktop.
Require the previous lesson in a LifterLMS course to be complete before moving forward. Same as requiring the prerequisite for a lesson to be the previous lesson.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Plugin Name: LifterLMS Mods | |
Plugin URI: https://academy.groundhogg.io | |
Description: Modify default LifterLMS behaviour. | |
Version: 1.0 | |
Author: Groundhogg Inc. | |
Author URI: http://groundhogg.io | |
License: A "Slug" license name e.g. GPL2 | |
*/ | |
function lifterlms_require_previous_lesson_be_complete( $results, $post_id ){ | |
if ( 'lesson' !== get_post_type( $post_id ) ){ | |
return $results; | |
} | |
if ( $results[ 'is_restricted' ] === true ){ | |
return $results; | |
} | |
$user_id = get_current_user_id(); | |
$student = false; | |
if ( $user_id ) { | |
$student = new LLMS_Student( $user_id ); | |
} | |
$lesson = new LLMS_Lesson( $post_id ); | |
$previous_lesson_id = $lesson->get_previous_lesson(); | |
if ( $previous_lesson_id && $student ){ | |
if ( ! $student->is_complete( $previous_lesson_id, 'lesson' ) ){ | |
$results['is_restricted'] = true; | |
$results['reason'] = sprintf( '%s_prerequisite', 'lesson' ); | |
$results['restriction_id'] = $previous_lesson_id; | |
} | |
} | |
return $results; | |
} | |
add_filter( 'llms_page_restricted', 'lifterlms_require_previous_lesson_be_complete', 99, 2 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment