Skip to content

Commit

Permalink
Account for WordPress installs in a directory (#348)
Browse files Browse the repository at this point in the history
  • Loading branch information
akirk committed Aug 29, 2024
1 parent 37923ba commit 333738e
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions includes/class-admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function __construct( Friends $friends ) {
*/
private function register_hooks() {
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
add_action( 'friends_own_site_menu_top', array( $this, 'friends_add_menu_open_friend_request' ), 10, 2 );
add_action( 'friends_own_site_menu_top', array( $this, 'friends_add_menu_open_friend_request' ), 10, 3 );
add_filter( 'users_list_table_query_args', array( $this, 'allow_role_multi_select' ) );
add_filter( 'user_row_actions', array( get_called_class(), 'user_row_actions' ), 10, 2 );
add_filter( 'handle_bulk_actions-users', array( $this, 'handle_bulk_friend_request_approval' ), 10, 3 );
Expand Down Expand Up @@ -2673,8 +2673,9 @@ public function friends_unread_friend_request_count( $unread ) {
*
* @param \WP_Menu $wp_menu The wp menu.
* @param string $my_url My url.
* @param string $my_admin_url My admin url.
*/
public function friends_add_menu_open_friend_request( $wp_menu, $my_url ) {
public function friends_add_menu_open_friend_request( $wp_menu, $my_url, $my_admin_url ) {
$friend_request_count = $this->friends_unread_friend_request_count( 0 );
if ( $friend_request_count > 0 ) {
$wp_menu->add_menu(
Expand All @@ -2683,7 +2684,7 @@ public function friends_add_menu_open_friend_request( $wp_menu, $my_url ) {
'parent' => 'friends-menu',
// translators: %s is the number of open friend requests.
'title' => esc_html( sprintf( _n( 'Review %s Friend Request', 'Review %s Friends Request', $friend_request_count, 'friends' ), $friend_request_count ) ),
'href' => $my_url . '/wp-admin/admin.php?page=friends-list-requests',
'href' => $my_admin_url . '/wp-admin/admin.php?page=friends-list-requests',
)
);
}
Expand Down Expand Up @@ -2729,14 +2730,16 @@ public function admin_bar_friends_menu( \WP_Admin_Bar $wp_menu ) {
}

$my_url = $current_user->user_url;
$my_admin_url = site_url();
} elseif ( is_multisite() ) {
$site = get_active_blog_for_user( get_current_user_id() );
if ( ! $site ) {
// If we cannot find a site, we shouldn't show the admin bar entry.
return;
}

$my_url = set_url_scheme( $site->siteurl );
$my_url = set_url_scheme( $site->home );
$my_admin_url = set_url_scheme( $site->siteurl );
$my_own_site = $site;
$on_my_own_site = get_current_blog_id() === intval( $site->blog_id );
if ( is_user_member_of_blog( get_current_user_id(), get_current_blog_id() ) ) {
Expand All @@ -2748,6 +2751,7 @@ public function admin_bar_friends_menu( \WP_Admin_Bar $wp_menu ) {
}
} elseif ( Friends::has_required_privileges() ) {
$my_url = home_url();
$my_admin_url = site_url();
$on_my_own_site = true;
}

Expand All @@ -2769,14 +2773,14 @@ public function admin_bar_friends_menu( \WP_Admin_Bar $wp_menu ) {
);

if ( $on_my_own_site ) {
do_action( 'friends_own_site_menu_top', $wp_menu, $my_url );
do_action( 'friends_own_site_menu_top', $wp_menu, $my_url, $my_admin_url );
}

if ( ! $on_my_own_site && $my_own_site ) {
restore_current_blog();
}

do_action( 'friends_current_site_menu_top', $wp_menu, $my_url );
do_action( 'friends_current_site_menu_top', $wp_menu, $my_url, $my_admin_url );

$wp_menu->add_menu(
array(
Expand All @@ -2799,7 +2803,7 @@ public function admin_bar_friends_menu( \WP_Admin_Bar $wp_menu ) {
get_bloginfo( 'name' )
) . '</span>'
),
'href' => $my_url . '/wp-admin/admin.php?page=friends-list-requests',
'href' => $my_admin_url . '/wp-admin/admin.php?page=friends-list-requests',
)
);
}
Expand All @@ -2818,15 +2822,15 @@ public function admin_bar_friends_menu( \WP_Admin_Bar $wp_menu ) {
'id' => 'friends-requests',
'parent' => 'friends-menu',
'title' => esc_html__( 'My Friends & Requests', 'friends' ),
'href' => $my_url . '/wp-admin/admin.php?page=friends-list',
'href' => $my_admin_url . '/wp-admin/admin.php?page=friends-list',
)
);
$wp_menu->add_menu(
array(
'id' => 'friends',
'parent' => 'friends-menu',
'title' => esc_html__( 'Settings' ), // phpcs:ignore WordPress.WP.I18n.MissingArgDomain
'href' => $my_url . '/wp-admin/admin.php?page=friends-settings',
'href' => $my_admin_url . '/wp-admin/admin.php?page=friends-settings',
)
);
} else {
Expand All @@ -2837,7 +2841,7 @@ public function admin_bar_friends_menu( \WP_Admin_Bar $wp_menu ) {
'id' => 'add-friend',
'parent' => 'friends-menu',
'title' => esc_html__( 'Friendship Already Requested', 'friends' ),
'href' => $my_url . '/wp-admin/' . self::get_users_url(),
'href' => $my_admin_url . '/wp-admin/' . self::get_users_url(),
)
);
} elseif ( ! $they_requested_friendship ) {
Expand Down

0 comments on commit 333738e

Please sign in to comment.