Skip to content

Instantly share code, notes, and snippets.

@ronalfy
Last active April 3, 2021 03:30
Show Gist options
  • Save ronalfy/6ebd53cd55f0f0c3e8e5b447356cb2a3 to your computer and use it in GitHub Desktop.
Save ronalfy/6ebd53cd55f0f0c3e8e5b447356cb2a3 to your computer and use it in GitHub Desktop.
Paid Membership Pro Course Visibility With Learndash
<?php
global $pmpro_learndash_level_courses, $pmpro_learndash_my_courses;
function pmpro_learndash_course_visibility() {
global $pmpro_learndash_level_courses, $pmpro_learndash_my_courses;
if ( is_user_logged_in() && function_exists( 'pmpro_getMembershipLevelForUser' ) && class_exists( 'Learndash_Paidmemberships' ) && function_exists( 'learndash_user_get_enrolled_courses' ) ) {
global $current_user;
$levels = pmpro_getMembershipLevelForUser( $current_user->ID );
if ( $levels ) {
$level_id = $levels->ID;
$pmpro_learndash_level_courses = Learndash_Paidmemberships::get_level_courses( $level_id );
$enrolled_courses = learndash_user_get_enrolled_courses( $current_user->ID );
$pmpro_learndash_level_courses = array_merge( $pmpro_learndash_level_courses, $enrolled_courses );
add_filter( 'ld_course_list_shortcode_attr_defaults', 'pmpro_course_list_shortcode' );
}
} else {
$pmpro_learndash_my_courses = true;
add_filter( 'ld_course_list_shortcode_attr_defaults', 'pmpro_course_list_shortcode_my_courses' );
}
}
/**
* Only show user courses if not logged in.
*
* @see ld_course_list
*/
function pmpro_course_list_shortcode_my_courses( $shortcode_atts ) {
global $pmpro_learndash_my_courses;
$shortcode_atts['mycourses'] = $pmpro_learndash_my_courses;
return $shortcode_atts;
}
/**
* Only show courses a logged in user is registered for.
*
* @see ld_course_list
*/
function pmpro_course_list_shortcode( $shortcode_atts ) {
global $pmpro_learndash_level_courses;
$shortcode_atts['post__in'] = $pmpro_learndash_level_courses;
return $shortcode_atts;
}
add_action( 'init', 'pmpro_learndash_course_visibility' );
@laurenhagan0306
Copy link

This recipe is included in the blog post on "Filter the LearnDash Course List to Only Show a Member’s Enrolled Courses" at Paid Memberships Pro here: https://www.paidmembershipspro.com/filter-the-learndash-course-list-to-only-show-a-members-enrolled-courses/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment