Introduction
BuddyBoss does not provide an option to set the LearnDash course page filter to My Progress automatically. You can achieve this with a small custom function. This guide explains how you can set LearnDash course page filter default to “My Progress”.
Custom Workaround
Before proceeding, make sure you have a complete site backup.
- Go to Appearance > Theme Editor in your WordPress admin dashboard.
- Under Select theme to edit, choose your active theme (preferably BuddyBoss Child Theme), then click Select.
- From the Theme Files list, click Theme Functions (functions.php).
- Paste the following code just before the closing PHP tag (?>):
// Make course default sorting as My Progress
function ldcourse_orderby_recent( $order_by_options ) {
$order_by_options = array(
'recent' => __( 'Newly Created', 'buddyboss-theme' ),
'alphabetical' => __( 'Alphabetical', 'buddyboss-theme' ),
);
if ( is_user_logged_in() ) {
$order_by_options[ 'my-progress' ] = __( 'My Progress', 'buddyboss-theme' );
}
return $order_by_options;
}
add_filter( 'BuddyBossTheme/Learndash/Archive/OrderByOptions', 'ldcourse_orderby_recent' );
function modify_default_orderby( $default_order_by ) {
return 'my-progress';
}
add_filter( 'BuddyBossTheme/Learndash/Archive/DefaultOrderBy', 'modify_default_orderby' );
- Click Update File to save your changes.
Troubleshooting and FAQs
Q: The filter still doesn’t default to “My Progress”.
A: Ensure the code is added to the active theme’s functions.php file and that the user is logged in.
Q: Can I set a different default for non-logged-in users?
A: Yes. Modify the $order_by_options array to include a default for guest users.
Q: Will this affect other LearnDash sorting options?
A: No. It only sets the default filter to My Progress while keeping other options available.
Q: Can I revert this change easily?
A: Yes. Remove the code from functions.php and save the file.
Q: Who can I contact for further assistance?
A: Please review the BuddyBoss Support Policy or consult a developer.