Groups is a WordPress plugin that provides group-based user membership management, group-based capabilities and content access control. It integrates standard WordPress capabilities and application-specific capabilities along with an extensive API.


New Groups Restrict Categories and Groups Import Export.

  • Groups 404 Redirect allows to redirect visits to pages that are protected by Groups.
  • Groups Blog Protect restricts access to blogs based on group membership.
  • Groups File Access Groups File Access is an extension that allows to provide file download links for authorized users. Access to files is restricted to users by their group membership.
  • Groups Forums provides a powerful and yet light-weight forum system for WordPress sites.
  • Groups Gravity Forms allows to add users to groups automatically, based on form submissions.
  • Groups Import Export – An import and export extension for Groups.
  • Groups Jigoshop Groups integration for Jigoshop that supports memberships and subscriptions.
  • Groups Newsletters helps you to communicate efficiently, providing targeted information to groups of recipients through automated campaigns.
  • Groups Notifications allows to send automatic notifications to group members and the site administrator.
  • Groups PayPal – Sell memberships and subscriptions with Groups and PayPal.
  • Groups Restrict Categories features access restrictions for categories, tags and other WordPress taxonomies, including support for custom post types and taxonomies.
  • Groups Restrict Comments Pro This extension for Groups allows to restrict who can post or read comments based on a user’s group membership.
  • Groups Subscriptions is a subscription framework for Groups.
  • Groups WooCommerce Groups for WooCommerce is a WordPress plugin that allows you to sell memberships.
  • WooCommerce Group Coupons This extension for WooCommerce uses Groups and WordPress roles to limit the validity of coupons.
  • WooCommerce Groups Newsletters The WooCommerce Groups Newsletters extension lets customers subscribe to newsletters at checkout.


User groups

  • Supports an unlimited number of groups
  • Provides a Registered group which is automatically maintained
  • Users can be assigned to any group
  • Users are added automatically to the Registered group

Groups hierarchy

  • Supports group hierarchies with capability inheritance

Group capabilities

  • Integrates standard WordPress capabilities which can be assigned to groups and users
  • Supports custom capabilities: allows to define new capabilities for usage in plugins and web applications
  • Users inherit capabilities of the groups they belong to
  • Groups inherit capabilities of their parent groups

Access control

  • Built-in access control that allows to restrict access to posts, pages and custom content types to specific groups and users only
  • control access to content by groups: shortcodes allow to control who can access content on posts, show parts to members of certain groups or to those who are not members Shortcodes: [groups_member], [groups_non_member]
  • control access to content by capabilities: show (or do not show) content to users who have certain capabilities Shortcodes: [groups_can], [groups_can_not]

Easy user interface

  • integrates nicely with the standard WordPress Users menu
  • provides an intuitive Groups menu
  • conceptually clean views showing the essentials
  • quick filters
  • bulk-actions where needed, for example apply capabilities to groups, bulk-add users to groups, bulk-remove users from groups

Sensible options

  • administrator overrides can be turned off
  • optional tree view for groups can be shown only when needed
  • provides its own set of permissions
  • cleans up after testing with a “delete all plugin data” option

Access Control

Groups defines some capabilities of its own. The groups_read_post capability is used to restrict access to certain posts or pages to groups (and users) with that capability only.


  • Solid and sound data-model with a complete API that allows developers to create group-oriented web applications and plugins


  • All features are supported independently for each blog in multisite installations

Your opinion counts

You & Groups

Beta-testers and developers who need to integrate group-based features in their plugins and web applications: please use it and provide your feedback.


Feedback is welcome!

If you need help, have problems, want to leave feedback or want to provide constructive criticism, please do so here at the Groups plugin page.

Please try to solve problems there before you rate this plugin or say it doesn’t work. There goes a lot of work into providing you with free quality plugins! Please appreciate that and help with your feedback. Thanks!


Follow me on Twitter for updates on this and other plugins.


Content Access Control

Access restrictions on posts

On posts an pages (and custom content types) a new meta box titles Access restrictions appears. By checking Enforce read access, you can restrict access to the post to groups and users who have the groups_read_post capability. You need to assign this capability to a group and make users members of that group to allow them to see those posts.

Content visibility for members and non-members

The [groups_member] and [groups_non_member] shortcodes are used to limit visibility of content to users who are members of a group or users who are not members of a group. Multiple comma-separated groups can be specified.

Example: Limiting visibility of enclosed content to registered users.

[groups_member group="Registered"]

Only registered users can see this text.


Content visibility based on capabilities

The [groups_can] and [groups_can_not] shortcodes limit visibility of enclosed content to those users who have the capability or those who do not have it. Multiple capabilities can be given.

Example: Showing enclosed content to users who can edit_posts (standard WordPress capability).

[groups_can capability=”edit_posts”]

You can see this only if you have the edit_posts capability.


Integration in the ‘Users’ menu:

Users – group membership is managed from the standard Users admin view. Users are automatically added to the Registered group. You can add multiple users to other groups here and also remove them.

Sections in the ‘Groups’ menu:


Here you can:

  • add groups
  • remove groups
  • assign capabilities to groups


This is where you add, remove and manage capabilities.

Capabilities can be assigned to groups and users (1). These capabilities include the standard WordPress capabilities but you can also define additional capabilities for your web-application.

Groups defines some capabilities of its own. The groups_read_post capability is used to restrict access to certain posts or pages to groups (and users) with that capability only.

(1) Assigning capabilities to users is not integrated in the user interface yet but can be done through API calls.


Administrator override :

Administrator overrides can be turned off.

Permissions :

For each role these permissions can be set:

  • Access Groups: see information related to Groups.
  • Administer Groups: complete control over everything related to Groups.
  • Administer Groups plugin options: grants access to make changes on the Groups > Options admin section.

Testing the plugin :

A convenient option is provided to delete all data that has been stored by the Groups plugin. This option is useful if you just need to start from fresh after you have been testing the plugin.


Please visit the documentation page on shortcodes for up-to-date information: Groups Shortcodes


Download the Groups plugin on WordPress.

2,443 Responses to Groups

  1. Anton February 21, 2020 at 6:51 pm #

    Hi! Thanks for plugin! I have one question – i use Groups for restrict access to some pages in category, but users, who don’t have access don’t see this pages in lists of category. I want to show them, but if they try to access, they see another page with tariffs. How i can show thats pages in lists? Thanks!

    • Kento March 12, 2020 at 4:20 pm #

      Hi Anton,

      Thanks for using the plugin! When they try to access restricted posts, they will be denied access and you could e.g. direct them towards a specific page using and offer a list of the posts they would be able to access.


      • Anton March 12, 2020 at 6:13 pm #

        Hi! Thanks for answer. At this moment i find a answer) But have one more question – i use LearnDash and your plugin for restrict access and see this problem – when i restrict access for quizes everything is OK, i dont see this quiz in course list and learndash dont ask me to check them, but if i want to restrict access for Materials (pages with theory), i have some trouble – i see this in list, but if i click them, i have redirect.

        I want to material works how work quiz. Thanks!:)

      • Kelvin April 5, 2020 at 7:44 pm #

        Hi Kento, firstly I apologise, I love your plugin but I’m dammed if I can see where to post a request for help! I can list names of a group, but I would like to also see their email addresses and, best of all, email them individually or as a group. Can this be done? Thank you. Kelvin

  2. Tomas February 10, 2020 at 8:17 pm #


    Is it possible to assign different roles to 1 or more groups?

    Role “Subscriber” = “Group 1”
    Role “Editor” = “Group 1” and “Group 2”
    Role “Admin” = “Group 1”, “Group 2 and “Group 3”

    So each new user with a specific role also gets assign to the pre associated group/groups.

    kind regards

  3. Lynda January 28, 2020 at 3:16 pm #

    Hello I have a dropshipping shop and I work with the Alidropship and Stripe plugin to sell my products, what version of the compatible affiliate plugin can I hang to make it work on my site WITHOUT WOOCOMMERCE SVP?

    • Kento February 10, 2020 at 10:54 pm #

      Hi Lynda,

      We don’t have a particular integration for either of those, so if you’re looking for something that works without WooCommerce in that case you wouldn’t be able to use our system.


  4. Korgster January 8, 2020 at 3:12 pm #

    Hi Folks!
    We may use Groups for a project for one of our clients.
    Is it possible to allow members to upload and share documents within a group? For example, Group A consists of User1 and User2, both of which will upload pdfs for ONLY each other to see?

    We look forward to your response

    • Kento January 17, 2020 at 3:33 pm #


      Thanks for asking. We currently provide the Groups File Access premium plugin which allows to restrict access to files that are managed with it. But at the moment, it’s not possible to control who is allowed to upload files to a certain group only, so you would have to manage it specifically. If you want to have a look, the Documentation of the extension provides details.


      • Korgster January 17, 2020 at 4:27 pm #

        Thanks for replying Kento. Unfortunately it took too long to get a response and my client asked me to move on.
        Will keep it in mind for possible future projects.

        • Kento January 17, 2020 at 4:29 pm #

          Thanks Korgster, I appreciate the feedback. Good to know that there is interest for this kind of feature as we are revising the roadmap for Groups and extensions. Cheers!

        • David January 17, 2020 at 5:16 pm #

          35 minute response time is too slow? For questions about a free plugin? Wow. Your client’s impatience is so unfortunate.

          • Kento January 19, 2020 at 6:01 pm #

            I would agree but on this occasion it took me a week to reply, easy to miss though 😉

            • Korgster January 20, 2020 at 1:28 am #

              No problems Kento, I understand this can happen sometime.

  5. Chelsie December 5, 2019 at 3:04 pm #

    Hi there, when I assign posts (custom post type) to a specific group, users who are not in the Group can see it and users that aren’t can’t. Any idea why that is happening? Thanks!

    • Kento December 10, 2019 at 1:34 pm #

      Hi Chelsie,

      If you get inconsistent results where you have plain visitors seeing content that is intended for group members and vice-versa, that is most certainly due to caching. Make sure that you caching plugin does not serve cached pages to users who are logged in and also clear the cache after changing its settings.

      I would also recommend to have a look at this documentation page where you will find details on how access to posts, pages and other custom post types are managed with Groups.


      • Chelsie December 10, 2019 at 3:55 pm #

        I do not use any caching plugin. What happened is basically 1. We have a Custom Post Type created called Documents 2. We have two groups- one is Registered, and other is Staff. Some documents are given access to only Staff, but Staff can’t see any of them and we do not use caching plugins, so I am not sure how to fix this issue. Can you please help?

        • Kento December 11, 2019 at 1:54 pm #

          Hi Chelsie,

          The way you have set it up seems right and should really work just fine. We actually have a similar plugin that we use for documentation deployments, Documentation which works just fine with Groups and is using its own custom post type for documents. If it helps, you can compare its implementation with that of your custom post type.

          Anyhow, if you have documents protected by a group “Staff”, any user who belongs to that group would have access. Just in case, make sure that you are actually using that group and not a custom role of the same name as that wouldn’t work. You must make sure that those users who should have access do actually belong to the same group that is used to protect the documents.


          • Chelsie January 6, 2020 at 3:23 pm #

            Everything is set up and should work, but they don’t unfortunately. Is there a way I could get proper support for someone to look into it? If so please lead me to the link, thank you!!

            • Kento January 7, 2020 at 1:00 pm #


              We do provide help for the free Groups plugin here. There are specific support channels for premium extensions but your case is not related to any of those. If you have everything set up correctly and it does not work as expected, then the issue must be related to either of these causes which I would recommend you to verify:

              – errors in your custom code (check the logic)
              – conflicting plugins (disable them all while you test)
              – resources are exhausted (enable debugging and check the debug.log; also check server logs, make sure that PHP memory isn’t exhausted, database usage limits are correct, …)

              There is no error or inconsistency in Groups itself with regards to what you describe, so you will have to analyze your setup to figure out what’s causing the inconsistencies. If you are interested in hiring us for consulting and help on your project, please see our Contact section to request a quote.


    • Korgster January 20, 2020 at 1:26 am #

      Precisely as the dev posted here, @David,
      To be clear, as the dev mentioned, it wasn’t 35 minutes. Had it been 35min, I completely agree with you. However, it was a week.

  6. Lynda December 4, 2019 at 9:53 pm #

    Hello with affiliate plugin woocommerce light how can i create a second level of commission please?

    • Kento December 10, 2019 at 1:29 pm #

      Hi Lynda,

      Thanks for asking, the light version is intended to provide a free and simple alternative. Commission structures beyond the simple general it provides would require one of our premium versions Affiliates Pro or Affiliates Enterprise. You will see that they provide a very flexible rates system, I can recommend to have a look at the Rates section of the documentation for Affiliates Pro where you can see details.


      • Lynda December 10, 2019 at 3:47 pm #

        Hello, What version exactly can I take to be able to have commissions on my own sales and to be able to have commissions on the sales of my team please which are two different commission rate?

        • Kento December 11, 2019 at 2:23 pm #

          Hi Lynda,

          For this case I would recommend to use Affiliates Pro which should be sufficient based on the requirement of different rates for team members.


  7. Andreas Torgersen November 5, 2019 at 11:31 am #

    I use the group plugin on a page that runs with the Divi theme. I use the plugin to lock certain pages to specific groups. I want the option to display a custom unauthorized message when an unauthorized visitor tries to view a locked page. I have tried to use the shortcode [groups_non_member group="premiumgold"]Custom message[groups_non_member group="premiumgold"] to display an unauthorized message, but it does not work. Seems like the shortcodes only work for pages that are not locked directly. But because I use the Divi builder to create content then it does not work for me to use shortcodes to wrap content that should be hidden. So the perfect solution would be that I could continue use the protect functionality directly from the edit page screen, but add a shortcode that display a custom message to all non-group members of a specific group.

    • Kento November 5, 2019 at 11:33 pm #

      Hi Andreas,

      The shortcode you have indicated is missing a forward slash / in the closing shortcode tag – the correct form is:

      [groups_non_member group="premiumgold"]Custom message[/groups_non_member group="premiumgold"]

      You can in fact combine page-protection with content-protection using the shortcode or Groups’ blocks. You can simply protect the page using one group and protect content inside that page further with the shortcode or the blocks.


Leave a Reply to Chelsie Click here to cancel reply.

We use cookies to optimize your experience on our site and assume you're OK with that if you stay.
OK, hide this message.

Affiliates · Contact · Jobs · Terms & Conditions · Privacy Policy · Documentation · Downloads · Useful Plugins · My Account