vapvarun icon

Add course tab that the user created for BuddyPress and Learndash

vapvarun | PRO | 07/15/21 11:24:14 AM UTC (Edited) | 0 ⭐ | 620 👁️ | Never ⏰ | []
PHP |

3.79 KB

|

None

|

0 👍

/

0 👎

//Add course page that the user created
add_action( 'bp_setup_nav', 'wbcom_learndash_profile_instructor' );
function wbcom_learndash_profile_instructor() {
        // Don't set up navigation if there's no member.
    if ( ! is_user_logged_in() && ! bp_is_user() ) {
        return;
    }
    $disabled_user = get_userdata( bp_displayed_user_id() );
    $disabled_user_role = $disabled_user->roles;   
    if( is_array( $disabled_user_role ) && ( in_array( 'ld_instructor', $disabled_user_role ) || in_array( 'administrator', $disabled_user_role ) ) ) {
        $create_courses_name  = sprintf( 'My %s', \LearnDash_Custom_Label::get_label( 'courses' ) );
        $create_courses_slug  = apply_filters( 'wbcom_learndash_profile_instructor_slug', 'courses' );
        $course_access        = bp_core_can_edit_settings();
        $bp_displayed_user_id = bp_displayed_user_id();
        $bp_loggedin_user_id  = bp_loggedin_user_id();
        $user_same            = ( $bp_displayed_user_id == $bp_loggedin_user_id ? true : false );
        // Set slug to profile in case the xProfile component is not active
        $slug = bp_get_profile_slug();
        bp_core_new_nav_item(
            array(
                'name'                    => $create_courses_name,
                'slug'                    => $create_courses_slug,
                'screen_function'         => 'wbcom_learndash_instructor_course_page',
                'position'                => 76,
                'default_subnav_slug'     => $create_courses_name,
                'show_for_displayed_user' => $course_access,
            )
        );
    }
}
 
function wbcom_learndash_instructor_course_page() {
    add_action( 'bp_template_content', 'wbcom_learndash_instructor_course_page_content' );
        bp_core_load_template( apply_filters( 'bp_core_template_plugin', 'members/single/plugins' ) );
}
function wbcom_learndash_instructor_course_page_content() {
    $user_id = bp_displayed_user_id();
    $myCourse_args = array(
        'post_type'   => 'sfwd-courses',
        'post_status' => 'publish',
        'author'      => $user_id,
        'order'       => 'DESC',
        'orderby'     => 'date',
    );
    $myCourses = new WP_Query( $myCourse_args );
    if( $myCourses->have_posts() ) {
        $view_to_render = isset( $_COOKIE['learnmate_course_view'] ) ? $_COOKIE['learnmate_course_view'] : 'lm-grid-view';
        echo '<div id="lm-course-archive-data" class="' . $view_to_render . '">';
        while( $myCourses->have_posts() ):
            $myCourses->the_post();
            learnmate_get_template( 'ld-template-parts/course-list-view.php' );
        endwhile;
        echo '</div>';
        echo '<div class="lm-course-pagination-section">';
            the_posts_pagination( array(
                'prev_text'          => __( '<i class="far fa-angle-double-left"></i>', 'reign-learndash-addon' ),
                'next_text'          => __( '<i class="far fa-angle-double-right"></i>', 'reign-learndash-addon' ),
                'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'reign-learndash-addon' ) . ' </span>',
            ) );
        echo '</div>';
    } else {
        get_template_part( 'template-parts/content', 'none' );
    }    
    wp_reset_postdata();    
}
// Remove default course tab form profile for instructor and admin
function wbcom_learndash_remove_course_nav() {
    $disabled_user = get_userdata( bp_displayed_user_id() );
    $disabled_user_role = $disabled_user->roles;
    if( is_array( $disabled_user_role ) && ( in_array( 'ld_instructor', $disabled_user_role ) || in_array( 'administrator', $disabled_user_role ) ) ) {
        bp_core_remove_nav_item( 'rla-courses', 'members' );
    }
}
add_action( 'wp', 'wbcom_learndash_remove_course_nav' );
 

Comments