Members is back with a brand-new edition

I’m pretty excited about today. Two months and some 200+ code commits ago, I decided to take on the biggest update to the Members plugin to date. After busting through several roadblocks and getting some constructive criticism from community members during the process, I believe Members can truly claim the title of the best user, role, and capability management plugin for WordPress.

There were two major categories of things I wanted to tackle in this update:

  • A sorely-needed UI/UX overhaul.
  • Make some oft-requested features available.

While there are still some features I couldn’t get around to in this release, many of the code changes will allow me to take them on in future releases.

If you want to skip all the details, go ahead and grab a copy or install/update from your WordPress plugins screen.

New role management screen

Members: Manage Roles Screen

This version makes use of WordPress’ list table class to handle the output of the role management screen. It won’t look extremely different from the previous screen, but it does offer some benefits such as:

  • Pagination if you have many roles.
  • Screen options tab to show/hide columns.
  • Role groups (can be filtered by plugin devs).
  • Columns that can be customized by plugin devs.

New edit role screen

Members: Edit Role Screen

The edit/new role screen received the biggest visual update. I wanted to give it a similar treatment to the edit post screen in WordPress so that it seemed more familiar and flowed with the rest of the UI. The following are some of the changes.

  • Tabbed groups to quickly find capabilities.
  • JS-based interface for several features.
  • Ability to grant, deny (new feature), or remove a capability from a role.
  • Plugin developers can add custom meta boxes.

Multiple roles per user

Members: Multiple User Roles

Multiple roles per user is a feature that has often been requested over the years. It was my hope that core WP would make this a bit easier, but the ticket for this has gone nowhere in core. I had to jump through a couple of hoops to make it happen, but I think it’s well worth it.

This feature coupled with granted/denied capabilities can make for some pretty powerful stuff.

Other notable user features

The above is just the major user-facing features. These were huge tasks to take on. The “denied” capabilities feature alone meant I had to rethink the entire edit/new role interface to even make it work.

Here’s a few other things worth noting:

  • The content permissions meta box got a facelift. You can now move it to any meta box holder on the screen without it looking wonky. The meta box also now accepts custom HTML.
  • Help tabs everywhere. While we had help tabs before, I completely overhauled them. So, be sure to click the “Help” tab on Members screens when needed.
  • New settings page. Like other things, this received an overhaul as well. I think you’ll like the changes.

Developer features

In the coming days, I plan to write tutorials on new developer features. I want you all to start integrating your plugins with Members.

  • Role groups.
  • Capability groups.
  • Edit/New role meta boxes.
  • Custom role translations.

I’ve already written one tutorial on creating role groups. That’s something you’ll want to check out if your plugin has custom roles.

Also, if you’re interested in working with Underscore JS templating, I encourage you to dig into the code. The “Edit Capabilities” tab sections and fields on the edit/new role screen are all handled by Underscore templates.

Anyway, have fun with this release!


  1. Thanks so much Justin for this plugin. I use it all the time in every project.
    Donation just done đŸ™‚

    1. I just shot you an email. Thanks for the donation.

  2. Awesome. Can’t wait to update all the sites I have running Members! First thing tomorrow morning I’ll be installing the new version! Thanks for an awesome plugin!

  3. I’ve never used before. But I’m going to use it on my new site which is half-way done. Thanks for the hard-work putting up an awesome plugin!

  4. This is amazing! The multiple roles per users is incredible. This will come in handy just as I have some role/caps work to do!

  5. Samuel

    What does exactly the “Deny” capability feature? I mean, a role can have a capability or don’t have it, but deny it?

    1. Essentially, denying a capability means that you’re explicitly denying that capability to any user with that particular role. This is quite different than simply not having a capability. Let me give you an example.

      Imagine you run a site that has two roles: 1) Role A and 2) Role B. Role A’s users can publish posts and publish pages. Role B’s users can publish forums.

      Now, imagine you want to give a specific user the ability to publish posts and publish forums but not publish pages. Well, you could create a Role C with those specific caps or you can deny the publish pages cap for Role B.

      That way, you can give both Role A and Role B to your user. Because publishing pages is explicitly denied to users of Role B, that user won’t have that cap.

      This is an overly simplistic example. Basically, denied caps usually only come in handy when you have users with two or more, overlapping roles. Most users will never need denied caps, but they come in handy when you’re building complex sites with multiple roles per user.

      Like I said in the example, you could’ve created a separate Role C. Imagine that scenario repeated 20 times on one site where you have things that are overlapping. You could potentially be looking at 60 or more roles on just a single site, which is far too many roles to manage.

  6. jake

    Is it possible to give users access to only a specific category of posts?

    I see it is most likely possible to do by setting up a custom post type and have logged in users only able to view the custom posts but I was hoping to avoid extra plugins if possible.

  7. Haven’t used the members plugin yet, but looking forward to implement it in my soon to be launched personal blog.

    Furthermore I really appreciate your detailed blog posts and documentation!

Comments are closed.