LLMS_Integration_Buddypress::add_profile_nav_items()
Add LLMS navigation items to the BuddyPress User Profile.
Return Return
(void)
Source Source
File: includes/integrations/class.llms.integration.buddypress.php
public function add_profile_nav_items() {
$profile_endpoints = $this->get_profile_endpoints();
if ( empty( $profile_endpoints ) ) {
return;
}
$bp_is_my_profile = bp_is_my_profile();
$user_domain = bp_loggedin_user_domain();
$first_endpoint = reset( $profile_endpoints );
/**
* Filters the LifterLMS main nav item slug in the BuddyPress profile menu.
*
* @since 6.3.0
*
* @param string $slug The LifterLMS main nav item slug in the BuddyPress profile menu.
*/
$main_nav_slug = apply_filters( 'llms_buddypress_main_nav_item_slug', _x( 'courses', 'BuddyPress profile main nav item slug', 'lifterlms' ) );
$parent_url = $user_domain . $main_nav_slug . '/';
// Add the main nav menu.
bp_core_new_nav_item(
array(
/**
* Filters the LifterLMS main nav item label in the BuddyPress profile menu.
*
* @since 6.3.0
*
* @param string $label The LifterLMS main nav item label in the BuddyPress profile menu.
*/
'name' => apply_filters( 'llms_buddypress_main_nav_item_label', _x( 'Courses', 'BuddyPress profile main nav item label', 'lifterlms' ) ),
'slug' => $main_nav_slug,
/**
* Filters the LifterLMS main nav item position in the BuddyPress profile menu.
*
* @since 6.3.0
*
* @param string $position The LifterLMS main nav item position in the BuddyPress profile menu.
*/
'position' => apply_filters( 'llms_buddypress_main_nav_item_position', 20 ),
'default_subnav_slug' => $first_endpoint['endpoint'],
'show_for_displayed_user' => false,
)
);
foreach ( $profile_endpoints as $ep_key => $profile_endpoint ) {
// Add sub nav item.
bp_core_new_subnav_item(
array(
'name' => $profile_endpoint['title'],
'slug' => $profile_endpoint['endpoint'],
'parent_slug' => $main_nav_slug,
'parent_url' => $parent_url,
'screen_function' => function() use ( $ep_key, $profile_endpoint ) {
$this->endpoint_content( $ep_key, $profile_endpoint['content'] );
},
'user_has_access' => $bp_is_my_profile,
)
);
}
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 6.8.0 | Revert adding nav items only on bp my profile. @link <a href="https://github.com/gocodebox/lifterlms/issues/2142">https://github.com/gocodebox/lifterlms/issues/2142</a>. |
| 6.3.0 | Display all registered dashboard tabs (enabled in the settings) automatically. Use bp_loggedin_user_domain() to determine the current user domain to be used in the profile nav item's links, in favor of relying on the global $bp. |
| 1.0.0 | Introduced. |