BP_REST_Members_Details_Endpoint::bp_rest_default_menu()
Get default dropdown navigation.
Description
Return
(object)
Source
File: bp-members/classes/class-bp-rest-members-details-endpoint.php
protected function bp_rest_default_menu() { $items = array(); if ( bp_is_active( 'xprofile' ) ) { $profile_link = trailingslashit( bp_loggedin_user_domain() . bp_get_profile_slug() ); $item_xprofile = array( 'ID' => 'profile', 'title' => __( 'Profile', 'buddyboss' ), 'url' => esc_url( $profile_link ), 'count' => '', 'children' => array( array( 'ID' => 'view', 'title' => __( 'View', 'buddyboss' ), 'url' => esc_url( $profile_link ), 'count' => '', ), array( 'ID' => 'edit', 'title' => __( 'Edit', 'buddyboss' ), 'url' => esc_url( $profile_link ), 'count' => '', ), ), ); if ( buddypress()->avatar->show_avatars ) { $item_xprofile['children'][] = array( 'ID' => 'profile-photo', 'title' => __( 'Profile Photo', 'buddyboss' ), 'url' => esc_url( trailingslashit( $profile_link . 'change-avatar' ) ), 'count' => '', ); } if ( function_exists( 'bp_displayed_user_use_cover_image_header' ) && bp_displayed_user_use_cover_image_header() ) { $item_xprofile['children'][] = array( 'ID' => 'cover-photo', 'title' => __( 'Cover Photo', 'buddyboss' ), 'url' => esc_url( trailingslashit( $profile_link . 'change-cover-image' ) ), 'count' => '', ); } $items[] = $item_xprofile; } if ( bp_is_active( 'settings' ) ) { $settings_link = trailingslashit( bp_loggedin_user_domain() . bp_get_settings_slug() ); $item_settings = array( 'ID' => bp_get_settings_slug(), 'title' => __( 'Account', 'buddyboss' ), 'url' => esc_url( $settings_link ), 'count' => '', 'children' => array(), ); $item_settings['children'][] = array( 'ID' => 'general', 'title' => __( 'Login Information', 'buddyboss' ), 'url' => esc_url( $settings_link ), 'count' => '', ); if ( has_action( 'bp_notification_settings' ) ) { $item_settings['children'][] = array( 'ID' => 'notifications', 'title' => __( 'Email Preferences', 'buddyboss' ), 'url' => esc_url( trailingslashit( $settings_link . 'notifications' ) ), 'count' => '', ); } $item_settings['children'][] = array( 'ID' => 'profile', 'title' => __( 'Privacy', 'buddyboss' ), 'url' => esc_url( trailingslashit( $settings_link . 'profile' ) ), 'count' => '', ); if ( bp_core_can_edit_settings() ) { $item_settings['children'][] = array( 'ID' => 'invites', 'title' => __( 'Group Invites', 'buddyboss' ), 'url' => esc_url( trailingslashit( $settings_link . 'invites' ) ), 'count' => '', ); } $item_settings['children'][] = array( 'ID' => 'export', 'title' => __( 'Export Data', 'buddyboss' ), 'url' => esc_url( trailingslashit( $settings_link . 'export' ) ), 'count' => '', ); if ( ! bp_current_user_can( 'bp_moderate' ) && ! bp_core_get_root_option( 'bp-disable-account-deletion' ) ) { $item_settings['children'][] = array( 'ID' => 'delete-account', 'title' => __( 'Delete Account', 'buddyboss' ), 'url' => esc_url( trailingslashit( $settings_link . 'delete-account' ) ), 'count' => '', ); } $items[] = $item_settings; } if ( bp_is_active( 'activity' ) ) { $activity_link = trailingslashit( bp_loggedin_user_domain() . bp_get_activity_slug() ); $item_activity = array( 'ID' => 'activities', 'title' => __( 'Timeline', 'buddyboss' ), 'url' => esc_url( $activity_link ), 'count' => '', 'children' => array(), ); $item_activity['children'][] = array( 'ID' => 'activities', 'title' => function_exists( 'bp_is_activity_tabs_active' ) && bp_is_activity_tabs_active() ? __( 'Personal', 'buddyboss' ) : __( 'Posts', 'buddyboss' ), 'url' => esc_url( $activity_link ), 'count' => '', ); if ( function_exists( 'bp_is_activity_tabs_active' ) && bp_is_activity_tabs_active() ) { if ( bp_is_activity_like_active() ) { $item_activity['children'][] = array( 'ID' => 'favorites', 'title' => __( 'Likes', 'buddyboss' ), 'url' => esc_url( trailingslashit( $activity_link . 'favorites' ) ), 'count' => '', ); } if ( bp_is_active( 'friends' ) ) { $item_activity['children'][] = array( 'ID' => 'friends', 'title' => __( 'Connections', 'buddyboss' ), 'url' => esc_url( trailingslashit( $activity_link . 'friends' ) ), 'count' => '', ); } if ( bp_is_active( 'groups' ) ) { $item_activity['children'][] = array( 'ID' => 'groups', 'title' => __( 'Groups', 'buddyboss' ), 'url' => esc_url( trailingslashit( $activity_link . 'groups' ) ), 'count' => '', ); } if ( bp_activity_do_mentions() ) { $item_activity['children'][] = array( 'ID' => 'mentions', 'title' => __( 'Mentions', 'buddyboss' ), 'url' => esc_url( trailingslashit( $activity_link . 'mentions' ) ), 'count' => '', ); } if ( bp_is_activity_follow_active() ) { $item_activity['children'][] = array( 'ID' => 'following', 'title' => __( 'Following', 'buddyboss' ), 'url' => esc_url( trailingslashit( $activity_link . 'following' ) ), 'count' => '', ); } } $items[] = $item_activity; } if ( bp_is_active( 'notifications' ) ) { // Setup the logged in user variables. $notifications_link = trailingslashit( bp_loggedin_user_domain() . bp_get_notifications_slug() ); // Pending notification requests. $count = bp_notifications_get_unread_notification_count( bp_loggedin_user_id() ); $item_notification = array( 'ID' => 'notifications', 'title' => __( 'Notifications', 'buddyboss' ), 'url' => esc_url( $notifications_link ), 'count' => bp_core_number_format( $count ), 'children' => array( array( 'ID' => 'unread', 'title' => __( 'Unread', 'buddyboss' ), 'url' => esc_url( $notifications_link ), 'count' => bp_core_number_format( $count ), ), array( 'ID' => 'read', 'title' => __( 'Read', 'buddyboss' ), 'url' => esc_url( trailingslashit( $notifications_link . 'read' ) ), 'count' => '', ), ), ); $items[] = $item_notification; } if ( bp_is_active( 'messages' ) ) { // Setup the logged in user variables. $messages_link = trailingslashit( bp_loggedin_user_domain() . bp_get_messages_slug() ); // Unread message count. $count = messages_get_unread_count( bp_loggedin_user_id() ); $item_messages = array( 'ID' => 'messages', 'title' => __( 'Messages', 'buddyboss' ), 'url' => esc_url( $messages_link ), 'count' => bp_core_number_format( $count ), 'children' => array( array( 'ID' => 'inbox', 'title' => __( 'Messages', 'buddyboss' ), 'url' => esc_url( $messages_link ), 'count' => bp_core_number_format( $count ), ), array( 'ID' => 'compose', 'title' => __( 'New Message', 'buddyboss' ), 'url' => esc_url( trailingslashit( $messages_link . 'compose' ) ), 'count' => '', ), ), ); $items[] = $item_messages; } if ( bp_is_active( 'friends' ) ) { // Setup the logged in user variables. $friends_link = trailingslashit( bp_loggedin_user_domain() . bp_get_friends_slug() ); // Pending friend requests. $count = count( friends_get_friendship_request_user_ids( bp_loggedin_user_id() ) ); $item_friends = array( 'ID' => 'friends', 'title' => __( 'Connections', 'buddyboss' ), 'url' => esc_url( $friends_link ), 'count' => bp_core_number_format( $count ), 'children' => array( array( 'ID' => 'my-friends', 'title' => __( 'My Connections', 'buddyboss' ), 'url' => esc_url( $friends_link ), 'count' => '', ), array( 'ID' => 'requests', 'title' => ( ! empty( $count ) ? __( 'Pending Requests', 'buddyboss' ) : __( 'No Pending Requests', 'buddyboss' ) ), 'url' => esc_url( trailingslashit( $friends_link . 'requests' ) ), 'count' => bp_core_number_format( $count ), ), ), ); $items[] = $item_friends; } if ( bp_is_active( 'groups' ) ) { // Setup the logged in user variables. $groups_link = trailingslashit( bp_loggedin_user_domain() . bp_get_groups_slug() ); // Pending group invites. $count = groups_get_invite_count_for_user(); $item_groups = array( 'ID' => 'groups', 'title' => __( 'Groups', 'buddyboss' ), 'url' => esc_url( $groups_link ), 'count' => bp_core_number_format( $count ), 'children' => array( array( 'ID' => 'my-groups', 'title' => __( 'My Groups', 'buddyboss' ), 'url' => esc_url( $groups_link ), 'count' => '', ), array( 'ID' => 'invites', 'title' => ( ! empty( $count ) ? __( 'Pending Invites', 'buddyboss' ) : __( 'No Pending Invites', 'buddyboss' ) ), 'url' => esc_url( trailingslashit( $groups_link . 'invites' ) ), 'count' => bp_core_number_format( $count ), ), ), ); if ( bp_user_can_create_groups() ) { $item_groups['children'][] = array( 'ID' => 'create-group', 'title' => __( 'Create Group', 'buddyboss' ), 'url' => esc_url( trailingslashit( bp_get_groups_directory_permalink() . 'create' ) ), 'count' => '', ); } $items[] = $item_groups; } if ( function_exists( 'bp_ld_sync' ) && bp_ld_sync()->settings->get( 'course.courses_visibility' ) ) { $slug = apply_filters( 'bp_learndash_profile_courses_slug', \LearnDash_Settings_Section::get_section_setting( 'LearnDash_Settings_Section_Permalinks', 'courses' ) ); $course_link = trailingslashit( bp_loggedin_user_domain() . $slug ); $name = \LearnDash_Custom_Label::get_label( 'courses' ); $item_courses = array( 'ID' => $slug, 'title' => $name, 'url' => esc_url( $course_link ), 'count' => '', 'children' => array( array( 'ID' => 'my-courses', 'title' => sprintf( /* translators: My Courses */ __( 'My %s', 'buddyboss' ), $name ), 'url' => esc_url( $course_link ), 'count' => '', ), ), ); $items[] = $item_courses; } if ( bp_is_active( 'forums' ) ) { $user_domain = bp_loggedin_user_domain(); $forums_link = trailingslashit( $user_domain . bp_get_option( '_bbp_root_slug', BP_FORUMS_SLUG ) ); $item_forums = array( 'ID' => 'forums', 'title' => __( 'Forums', 'buddyboss' ), 'url' => esc_url( $forums_link ), 'count' => '', 'children' => array( array( 'ID' => 'topics', 'title' => __( 'My Discussions', 'buddyboss' ), 'url' => esc_url( trailingslashit( $forums_link . bbp_get_topic_archive_slug() ) ), 'count' => '', ), array( 'ID' => 'replies', 'title' => __( 'My Replies', 'buddyboss' ), 'url' => esc_url( trailingslashit( $forums_link . bbp_get_reply_archive_slug() ) ), 'count' => '', ), ), ); if ( function_exists( 'bbp_is_favorites_active' ) && bbp_is_favorites_active() ) { $item_forums['children'][] = array( 'ID' => 'favorite', 'title' => __( 'My Favorites', 'buddyboss' ), 'url' => esc_url( trailingslashit( $forums_link . bbp_get_user_favorites_slug() ) ), 'count' => '', ); } if ( function_exists( 'bbp_is_subscriptions_active' ) && bbp_is_subscriptions_active() ) { $item_forums['children'][] = array( 'ID' => 'subscribe', 'title' => __( 'Subscriptions', 'buddyboss' ), 'url' => esc_url( trailingslashit( $forums_link . bbp_get_user_subscriptions_slug() ) ), 'count' => '', ); } $items[] = $item_forums; } if ( bp_is_active( 'media' ) && function_exists( 'bp_is_profile_media_support_enabled' ) && bp_is_profile_media_support_enabled() ) { // Setup the logged in user variables. $media_link = trailingslashit( bp_loggedin_user_domain() . bp_get_media_slug() ); $item_media = array( 'ID' => 'photos', 'title' => __( 'Photos', 'buddyboss' ), 'url' => esc_url( $media_link ), 'count' => '', 'children' => array( array( 'ID' => 'my-media', 'title' => __( 'My Photos', 'buddyboss' ), 'url' => esc_url( $media_link ), 'count' => '', ), ), ); if ( function_exists( 'bp_is_profile_albums_support_enabled' ) && bp_is_profile_albums_support_enabled() ) { $item_media['children'][] = array( 'ID' => 'albums', 'title' => __( 'My Albums', 'buddyboss' ), 'url' => esc_url( trailingslashit( $media_link . 'albums' ) ), 'count' => '', ); } $items[] = $item_media; } if ( bp_is_active( 'media' ) && function_exists( 'bp_is_profile_document_support_enabled' ) && bp_is_profile_document_support_enabled() ) { // Setup the logged in user variables. $document_link = trailingslashit( bp_loggedin_user_domain() . bp_get_document_slug() ); $item_documents = array( 'ID' => 'documents', 'title' => __( 'Documents', 'buddyboss' ), 'url' => esc_url( $document_link ), 'count' => '', 'children' => array( array( 'ID' => 'my-document', 'title' => __( 'My Documents', 'buddyboss' ), 'url' => esc_url( $document_link ), 'count' => '', ), ), ); $items[] = $item_documents; } if ( bp_is_active( 'invites' ) && function_exists( 'bp_allow_user_to_send_invites' ) && true === bp_allow_user_to_send_invites() ) { // Setup the logged in user variables. $invites_link = trailingslashit( bp_loggedin_user_domain() . bp_get_invites_slug() ); $item_invites = array( 'ID' => 'invites', 'title' => __( 'Email Invites', 'buddyboss' ), 'url' => esc_url( $invites_link ), 'count' => '', 'children' => array( array( 'ID' => 'send-invites', 'title' => __( 'Send Invites', 'buddyboss' ), 'url' => esc_url( $invites_link ), 'count' => '', ), array( 'ID' => 'sent-invites', 'title' => __( 'Sent Invites', 'buddyboss' ), 'url' => esc_url( trailingslashit( $invites_link . 'sent-invites' ) ), 'count' => '', ), ), ); $items[] = $item_invites; } $items[] = array( 'ID' => 'log-out', 'title' => __( 'Log Out', 'buddyboss' ), 'url' => esc_url( wp_logout_url() ), 'count' => '', ); // phpcs:ignore $items = json_decode( json_encode( $items ), false ); return $items; }
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.