Wordpress Learnpress filter to modify levels

1k Views Asked by At

I'm trying to add more choices in the levels field of Wordpress LearnPress plugin via the filters, but my code doesn't work.

On the LearnPress plugin in the folder inc we have the file lp-template-functions.php starting on line 1709

/**
 * Get level post meta.
 *
 * @param int $post_id
 *
 * @return string
 */
function learn_press_get_post_level( $post_id ) {
    $level = get_post_meta( $post_id, '_lp_level', true );

    return apply_filters(
        'learn-press/level-label',
        ! empty( $level ) ? lp_course_level()[ $level ] : esc_html__( 'All levels', 'learnpress' ),
        $post_id
    );
}

function lp_course_level() {
    return apply_filters(
        'lp/template/function/course/level',
        array(
            ''             => esc_html__( 'All levels', 'learnpress' ),
            'beginner'     => esc_html__( 'Beginner', 'learnpress' ),
            'intermediate' => esc_html__( 'Intermediate', 'learnpress' ),
            'expert'       => esc_html__( 'Expert', 'learnpress' ),
        )
    );
}

In my functions.php I added the following filters but it doesn't work

//CHANGE LEVELS FROM LP-TEMPLATE-FUNCTIONS
add_filter('learn-press/level-label', 'modify_course_level');
       function modify_course_level($level){
       $level['beginner'] = esc_html__("1ere année primaire", "learnpress");
       $level['intermediate'] = esc_html__("2e année primaire","learnpress");
       $level['expert'] = esc_html__("3e année primaire", "learnpress");
       return $level;
   }
// ADD LEVELS 
add_filter('learn-press/level-label', 'add_extra_course_level');
function add_extra_course_level($level){
   $level['extra-level-1'] = esc_html__("4e année primaire", "learnpress");
   $level['extra-level-2'] = esc_html__("5e année primaire", "learnpress");
   return $level;
}

I expected the level difficulty dropdown to change, but still showing the original choices

1

There are 1 best solutions below

0
On BEST ANSWER

I named the filter wrong, instead of add_filter('learn-press/level-label'), it's add_filter('lp/template/function/course/level'), here is the working code:

//CHANGE LEVELS FROM LP-TEMPLATE-FUNCTIONS
add_filter('lp/template/function/course/level', 'modify_course_level');
       function modify_course_level($level){
       $level['beginner'] = "1ere année primaire";
       $level['intermediate'] = "2e année primaire";
       $level['expert'] = "3e année primaire";
       return $level;
   }
//ADD LEVELS 
add_filter('lp/template/function/course/level', 'add_extra_course_level');
if ( ! function_exists('add_extra_course_level')){
function add_extra_course_level($level){
   $level['extra-level-1'] = "4e année primaire";
   $level['extra-level-2'] = "5e année primaire";
   return $level;
   }
}