The following actions and filter hooks are available in this Add On.

apply_filters( 'pmpro_courses_modules', $modules );

Add custom modules (other integrated course platforms) to the array of PMPro Courses modules.

apply_filters( 'pmpro_courses_course_redirect_to', null );

By default, the single course page is publicly accessible, regardless of its membership access settings. Use this filter to set a redirect URL to send non-members to when they visit the single course.

apply_filters( 'pmpro_courses_lesson_redirect_to', get_permalink( $post->post_parent ) );

By default, when non-members try to access a protected lesson in a course, they are redirected to the single course page. Use this filter to specify a custom URL for redirecting users who don’t have access to a lesson, rather than defaulting to the lesson’s parent course URL.

apply_filters( 'pmpro_courses_get_courses_html', $temp_content, $courses );

Filter to allow custom code to modify the structure of the frontend courses list when displayed using the pmpro_courses_get_courses_html() function or via the [pmpro_my_courses] shortcode.

apply_filters( 'pmpro_courses_get_lessons_html', $temp_content, $course_id, $lessons );

Filter to allow custom code to modify the structure of the frontend lessons list when displayed using the pmpro_courses_get_lessons_html() function (automatically added to the single course page).

apply_filters( 'pmpro_courses_show_course_content_to_nonmembers', true );

Optionally hide the full course content from non-members. By default, PMPro Courses will override PMPro to show the full course content, even to non-members (we see the single course page as a sales page for your course). Set this filter to false to change this behavior.

apply_filters( 'pmpro_has_membership_access_filter_pmpro_lesson', $hasaccess, $post, $user, $levels );

Filters membership access for individual lesson posts. Return true to grant access regardless of the user’s membership level. This is the same mechanism used internally by the free/public lesson feature.

do_action( 'pmpro_courses_module_settings', $module );

Fires inside the settings page UI for each active module. Use this to output custom settings fields when building a custom module integration.

do_action( 'pmpro_courses_settings_save' );

Fires when the Courses settings page is saved. Use this alongside pmpro_courses_module_settings to handle saving any custom fields you’ve added for a custom module.

Last updated on May 15, 2026


Was this article helpful?
YesNo