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.
Get Support From Our Team of Experts
For more help with this PMPro feature, check out our Support Page with three ways to get support as a free or premium member.
Last updated on May 15, 2026

