Make WordPress Core

Opened 8 years ago

Last modified 3 years ago

#40348 new enhancement

Option to enable User Dashboard on single-site installations

Reported by: johnjamesjacoby's profile johnjamesjacoby Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 3.0
Component: Users Keywords: has-patch 2nd-opinion
Focuses: administration Cc:

Description

Since WordPress 3.0, the User Dashboard located at /wp-admin/user/ has only been exposed to multisite installations. I would like the option to use this dashboard as a replacement for profile.php, even on single-site installations.


Why?

Because profile.php is just 1 page, and plugins (like BuddyPress & bbPress) cannot user-centric data management without overriding the profile screen completely, which has the adverse affect of abandoning other plugins that have hooked into this screen. If we have to do that, we may as well invest more in the User Dashboard that already comes with WordPress core.

My WP User Profiles plugin helps to re-imagine how the WordPress User experience might work & look, and comes with full integration into the User Dashboard. I'd like to bring that experience to single-site installations, and the core code currently explicitly prevents this behavior.


How?

I believe, today, the User Dashboard should be off-by-default for single-site installations, and work as-is for multi-site installations. Plugins should be allowed to enable access to the User Dashboard, and plugins can then opt-into supporting that new dashboard in new & creative ways.

I'm proposing that we simply enable this feature to function, and not that we completely jump head-first into supporting it in core and/or replacing profile.php entirely, at least not yet or my foreseeable future.


Caveats

There are zero caveats for all existing WordPress installations, though as with any new feature, I can imagine the range of future scenarios from bad to good on how this could be used and/or abused.

The one major bummer is that the Admin Settings API does not support either the Network or User dashboards, so saving options is still a completely custom affair. The theoretical Fields API could save us here, or maybe not.


This functionality is relatively easily achieved, and I'll be attaching a patch imminently.

Attachments (2)

40348.patch (2.8 KB) - added by johnjamesjacoby 8 years ago.
First pass at optionally exposing /wp-admin/user/ on single-site installations
40348.2.svn.patch (1.3 KB) - added by johnjamesjacoby 3 years ago.
Refresh, using Subversion instead of Git this time

Download all attachments as: .zip

Change History (6)

@johnjamesjacoby
8 years ago

First pass at optionally exposing /wp-admin/user/ on single-site installations

#1 @johnjamesjacoby
8 years ago

With the patch applied, now a simple plugin can prevent /wp-admin/user/ from being redirected away from:

// Do not redirect user admin requests
if ( ! is_multisite() ) {
    add_filter( 'redirect_user_admin_request', '__return_false' );
}

#2 @johnjamesjacoby
8 years ago

40348.patch does the following:

  • Updates /wp-admin/user/admin.php to expose the existing redirect filter on single-site
  • Replaces get_network()->site_name (in admin header & bar) with get_site_option( 'site_name' ) because get_network() is only available for multi-site installations

This ticket was mentioned in Slack in #core-multisite by jjj. View the logs.


8 years ago

@johnjamesjacoby
3 years ago

Refresh, using Subversion instead of Git this time

#4 @johnjamesjacoby
3 years ago

Latest patch focuses only on the change to wp-admin/user/admin.php and skips the get_network() debug notices, which I believe now should be handled in a separate issue.

Note: See TracTickets for help on using tickets.