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.


  • See all related Premium Extensions for Groups in our shop.
  • Groups Drip Content is used to release content on a schedule. Content dripping can be based on user account creation, group memberships and specific dates and times.
  • Groups Restrict Categories features access restrictions for categories, tags and other WordPress taxonomies, including support for custom post types and taxonomies.
  • Groups WooCommerce Sell Memberships with Groups and WooCommerce. Groups WooCommerce grants memberships based on products. It automatically assigns a customer to one or more groups based on the products ordered. Use any payment gateway that is supported by WooCommerce, including PayPal, Stripe and many others. Groups WooCommerce also integrates with WooCommerce Subscriptions for a highly flexible membership solution.
  • WooCommerce Group Coupons This extension for WooCommerce uses Groups and WordPress roles to limit the validity of coupons.
  • WooCommerce Product Search is the essential extension for every WooCommerce store. It provides the best Search Engine and Search Experience for WooCommerce and is compatible with Groups and its access restrictions on products.
  • Groups Import Export provides import and export facilities for Groups. Users can be imported and assigned to groups, users can be exported in bulk.
  • 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 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 Restrict Comments Pro This extension for Groups allows to restrict who can post or read comments based on a user’s group membership.
  • 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,619 Responses to Groups

  1. Bart August 3, 2018 at 9:52 am #

    Hey guys, is there a way to add multiple locations to a group?

    • Kento August 5, 2018 at 12:33 pm #

      Hi Bart,

      I’d say that depends on what you’re using to manage locations … if you have a custom post type then you can restrict the location as usual, see Posts, Pages and Others on this for details.


  2. Max July 31, 2018 at 2:55 pm #

    Hi Antonio & Kento,

    the login shortcode of the Groups Plugin has a small “stay logged in” checkbox. This checkbox stays without effect on my site since I am using another plugin that is limiting the user session time to 15 min. inactivity due to security reasons. The logged in function gets overruled.

    My question is would there be a possibility to hide this “stay logged in” checkbox in order to not confuse users?

    Thank you for your support,
    best regards,

    • Kento August 1, 2018 at 7:46 am #

      Hi Max,

      You can hide the checkbox by using the following CSS rule in your theme’s stylesheet:

      p.forgetmenot {
      display: none;

      This will simply hide it from the users and should cause less confusion in your case. Thanks for using the plugin!


      • Max August 1, 2018 at 9:15 am #

        Hi Support,

        thank you for your response and code, this sounds exactly like the fix I would need. I added the css code to the themes CSS (see screenshot), but unfortunately the “stay logged in” checkbox still appears on the groups login. (see screenshot)

        Do you know what I am doing wrong or how to fix it?

        Thank you for your support,
        best regards,

        • Kento August 1, 2018 at 9:51 am #

          Hi Max,

          The snippet you have copied also managed to get the surrounding HTML tags from my comment added … that’s weird 🙂 Please remove the <code> and </code> tags so you only have this added:

          p.forgetmenot {
          display: none;


  3. tom June 29, 2018 at 5:27 am #

    hi antonio,

    you dont need the groups import export extension to just import posts, products, etc with, do you?

    however, the products we have imported do not show up at all without or with groups access restriction. the only time they show is when we disabled the groups plugin. any idea?

    We added a test product without using wp all import but with the groups plugin activated and miracously it shows up on as well. any idea?


    • Kento August 1, 2018 at 11:01 am #

      Hi Tom,

      If the plugin you use to import also imports postmeta, then it will very likely have imported the restrictions set by Groups. You would need to make sure that the groups exist.


  4. Rob Cain June 24, 2018 at 10:45 pm #


    Thanks for a great set of plugins. I have a question:

    At present, the core Groups plugin does NOT apply to WP media files, only to the associated attachment (posttype). The Groups File Access plugin-plugin, on the other hand, defines a separate area for restricted media items, but also does NOT cover standard WP media files.

    Thus, there is an important gap in funcitonality footprint – and arguably an often needed requirement.

    Extending your Groups plugin to provide such functionality, is technically speaking, pretty straight forward. (indeed you already have pretty much all the code you need, just a question pof how it is integrated).

    Is this shortfall you are planning on addressing, soon.? (Any good reson why not?).

    I ask, since my alternative is to extend your Groups plugin by writing my own plugin(-plugin) – since I am pretty lazy, and would rather just pay a reasonable price for something that exists. Do you offer any support for plugin-plugin writeres – technically or commercially?

    Many thanks

    Rob Cain
    Director, SystemCore Ltd, UK

    • Kento August 1, 2018 at 1:20 pm #

      Hi Rob,

      You’re right, this is indeed a much needed improvement and I’ve been looking at the possibilities to do it several times but had to postpone due to other priorities up to now.

      We’re always open for suggestions and cooperation, if you’re still interested in this features, please let me know and we can see if we can figure out something in due time that would be a suitable solution.


  5. dhananjay June 21, 2018 at 5:55 am #

    hI Kento,

    Can i use membership with a workflow plugin like editflow or oasis. or do you have your own workflow plugin which i can use alongwith membership?

    • Kento August 1, 2018 at 2:07 pm #


      That’s interesting – I’ve had a quick look at both Oasis and Edit Flow. Would Zapier also be an option and what process would you need to implement?


  6. jens June 20, 2018 at 8:59 pm #


    how can I check programatically whether a certain post or post_id is restricted a particular group. The thing that is configured in How can I check for an $id of a post that the current user could read it? Background is that we have internal pages that should not turn up in the Sitemap.xml as asked here:

    I want to make sure that group-restricted posts/products do not turn up in the Sitemap.xml.

    I looked at the Groups examples and API docs but could not find anything.

    • Kento August 1, 2018 at 4:29 pm #

      Hi Jens,

      Please excuse the late reply and I hope this might still be useful. You can check this easily:

      $group_ids = Groups_Post_Access::get_read_group_ids( $post_id );
      if ( count( $group_ids ) > 0 ) {
      // this post is restricted by one or more groups ...


  7. Prabin Dangol June 8, 2018 at 9:58 am #


    I want to use this plugin with Easy Digital Download Plugin. I want to create a group of customers(who have purchased the product) and make the forum available to them only.

  8. Siva Teja Varma May 1, 2018 at 11:18 am #

    Hi Kento

    Disabling “Ion Library Importer New” and “Ion Ga Tracking” plugins doesn’t work.
    Even I have disabled most of the active plugins and tried to use ‘Groups’ plugin, but it’s still not working.

    I have also tried changing the themes and importing some capabilities from other sub-site, None of them worked.

    Please let me know if you require any other information.

    Siva Teja

    • Kento May 2, 2018 at 12:31 pm #


      That’s strange, but at some point a plugin created a conflict, probably messing up the options. What you could try is to disable all other plugins except Groups, use a default theme like Twenty Seventeen, enable debugging and check the debug.log again – if the error still appears, then it’s certainly due to that.


  9. Ben Laor April 30, 2018 at 12:00 pm #

    I have a very obscure problem with the “groups” plugin, i’ll try to explain it as best i can:
    I have products that belong to a group of registered users (so only logged in users can view them)
    I also have a product that everyone can view (because it belongs to no groups)
    Now lets say i have two different browser sessions open, one as a logged in user, and the other as a “guest”, both on the front page of my store where i see a bunch of products for the logged in session, and one product for the “guest” session.
    I go into my admin area for the site (in a completely independent session) and i press update on a product (without changing anything and no matter which product)
    If i go to the “guest” session and refresh, and then go to the logged in session i would see only my “guest” product and none of the logged in products i am supposed to see. If i go and press update again, and this time refresh on my logged in session, i will again see all the logged in products normally. It seems like whichever session i refresh first after updating any type of product (changed or not) it would kind of “set” the front page display according to that session, and it would stay that way until i update again and refresh with the logged in session first.
    This only happens if the groups plugin is active by the way.

    I am using wordpress 4.9.5,
    woocommerce 3.3.5,
    groups 2.3.1

    If you have any idea as to what is causing this or any direction i can pursue i would be most grateful as i am at a loss… (been wracking my head over this for days)
    If you need any additional information feel free to contact me by email or in here

    • Kento May 2, 2018 at 11:16 am #

      Hi Ben,

      This is most likely an issue with caching – if you have caching enabled for users that are logged in, then you must disable it – otherwise the cache is taking whatever was seen last and will present it to both normal visitors and authorized users.


  10. ben laor April 24, 2018 at 10:51 am #

    I have been using the groups plugin for quite a while. I used the plugin to create two different groups (students, alumni) and added access capabilities for both (student_access, alumni_access). Then i added these different capabilities to users in my site and to products in my woocommerce store (so students have access to different products than alumni) and everything worked great!
    I recently updated groups plugin to the latest version and all the products that were marked with the groups access capabilities disappeared. If i delete the groups plugin they reappear but obviously i lose the groups functionality which i need so much. Have you run into an issue like this? if so, do you know how to solve it?

  11. Siva Teja Varma April 4, 2018 at 5:43 am #


    We have also noticed that we are unable to save the Groups-> Options and facing this error:
    Fatal error: Cannot use string offset as an array in /var/www/html/support/wp-content/plugins/groups/lib/core/class-groups-options.php on line 139

    Debug log:
    edited – moved to

    • Kento April 12, 2018 at 8:05 am #

      Thanks for the logs, it seems that the plugins “Ion Library Importer New” and “Ion Ga Tracking” are messing with WordPress options. Please try to disable these and the errors should be gone.

  12. Siva Teja Varma April 4, 2018 at 4:55 am #

    Here is the trace:

    edited – moved to

  13. Siva Teja Varma March 27, 2018 at 11:40 am #

    Hi Antonio

    This is the error we have found in debug mode:
    [27-Mar-2018 11:14:47 UTC] PHP Fatal error: Cannot use string offset as an array in /var/www/html/support/wp-content/plugins/groups/lib/core/class-groups-options.php on line 161

    Siva Teja

    • Kento April 2, 2018 at 7:09 pm #

      Hi Siva,

      Thanks for the that, is this the only line that appears in the debug.log? It’s difficult to say without knowing the surrounding context. Can you please post the full trace related to this line?


  14. Siva Teja March 20, 2018 at 6:18 am #

    Hi Antonio

    We have network activated ‘Groups’ plugin and is working fine for one sub-site, While for the other subsite its showing a blank screen if user searches some thing in Groups or Capabilities.
    Also as a admin I am unable to save the configurations under Groups->Options , After clicking on save its again showing a blank screen and the changes are not getting saved.

    Please let me know, How to fix this Issue.

    Siva Teja

    • antonio March 27, 2018 at 8:04 am #

      Hi Siva,
      The plugin should work in multisites. Maybe there is another problem, please try enabling WordPress debug, editing your wp-config.php file and replace the following line:
      define('WP_DEBUG', false);
      with these lines:
      define('WP_DEBUG', true);
      define('WP_DEBUG_LOG', true);
      define('WP_DEBUG_DISPLAY', false);

      Then try to visit the Groups admin screens in the subsites.
      A new debug.log file must be created in your wp-content folder is there is a problem.
      Kind Regards,
      Antonio B.

  15. Ana March 14, 2018 at 11:05 am #


    With [groups_user_groups] I obtenin the group name by user. I would like to know how to obtein the group_ID of these groups name.
    thanks in advance.

    Regards, Ana.

    • antonio March 14, 2018 at 3:36 pm #

      Hi Ana,
      If you want a shortcode that displays the groups name and the id, you can add this code in your functions.php file, and use the new [groups_user_groups_id] created.
      Kind Regards,
      Antonio B.

      • Ana March 14, 2018 at 4:39 pm #

        THANK YOU VERY MUCH Antonio.

        • antonio March 15, 2018 at 5:16 pm #

          You’re welcome !

  16. Jen March 3, 2018 at 5:20 am #

    Thank you for the excellent plugin! Is there any plan to include an option to specify the direction (including bi-directional) of inheritance for particular capabilities? Here is an example of what I mean by direction of inheritance. For a nested group like:

    Region A
    Office A
    Office B
    Region B
    Office C

    I’d like read capabilities to be bi-directional: content restricted to Company can be viewed by all other groups in this list. Content restricted to Office A can also be viewed by Region A and Company, but not by siblings or aunts and cousins (so to speak).

    I’d like edit capabilities to be inherited bottom-up: the company should be able to edit any content created by anyone in any of the other groups. An office should only be able to edit its own content. A region can edit its own content and any content in its child offices. In this scenario, parents always have more edit capabilities than their children.

    To clarify my above definitions: I’d describe the current inheritance pattern as top-down or additive – the top level group has the fewest capabilities compared with its children and grandchildren, who have the most capabilities.

    It is possible to manually create the bi-directional scheme I described by making sure that, for instance, a company level user is also added to all of the region and building groups (which is potentially a lot of groups). I could be missing something, but I don’t think it is presently possible to create bottom-up capabilities without doing something (TBD) with the API (the existence of and documentation for which is greatly appreciated).

    This is what I’ll probably end up doing for edit capabilities, but I’d be really interested to hear if there are any plans for adding more control over inheritance patterns.

    • Jen March 3, 2018 at 5:24 am #

      Apologies – the formatting on the example got munged when I clicked submit. Here’s this instead:

      –> Region A
      —-> Office A
      —-> Office B
      –> Region B
      —-> Office C

    • antonio March 8, 2018 at 10:07 am #

      Hi Jen,
      With Groups you can do the first step: “content restricted to Company can be viewed by all other groups in this list.”, but not the second. In our case, the inheritance indicates specialization, so that the children can see more than the parents. I’ve been thinking of some solution to do it bottom-up, but I do not find anything immediate, you should use the API and create a customized solution for your case.
      Kind Regards,
      Antonio B.

  17. Jack February 23, 2018 at 5:56 pm #

    what are the limitations on how much of a page’s functionality you can really customize with JUST the standard features of this plugin (meaning without having to do any heavy scripting)? I use a WooCommerce plugin for an online store, and was wondering if there was a way to hide the pricing from a specific customer, while still being able to place an order. Ideally I would be able to remove the payment options from page entirely, but it would still produce some sort of order for us to process at our facilities. Is this a difficult process to achieve with this plug-in. Does anyone have any insight?

  18. Bindu February 21, 2018 at 11:47 pm #

    I went through documentation many times but looks like I am missing something here.
    Is there any way to show the hierarchy of the users like admin, manager, supervisor, and user on the front end side. I do see under Groups-> Tree.
    However, I was wondering if we can see something like this-

    Admin(can see/ edit/delete)
    – Manager
    – Supervisor
    – User

    Manager (can see/ edit/delete)
    – Supervisor
    – User
    Any help is really appreciated!!

    • Kento February 22, 2018 at 9:24 am #

      Hi Bindu,

      There’s this plugin which is close to what you’re asking for I think: it provides a shortcode you can use to list the users for a specific group.

      It doesn’t provide the full hierarchy, but maybe this helps you?

  19. Jon February 19, 2018 at 11:45 am #

    Kind greetings,

    I am looking for a way to show how many times a customer has ordered on our invoices. (We use PDF invoices and packing slips). Do you have a plugin that might do something like this? I could use groups if there was a way to assign them to a group automatically based on how many times they have ordered?

    • antonio February 19, 2018 at 4:40 pm #

      Hi Jon,
      With Woocommerce Groups by sales you can add your customers to groups according to the total amount of all their purchases, or the number of purchases.
      Kind Regards,
      Antonio B.

  20. Luca February 13, 2018 at 9:49 am #

    Hi, I’m a developer, I do not ask for support but I’d like to better understand if Groups can be useful for my next project. Basically, I’ll have to group users, and that’s what Groups is for, ok. But Iwill need 2 additional things, that I plan to code by myself:

    1. Frontend: users should be able to register, and while registering, they should be able to choose what group they will belong to.

    2. Frontend: users should have a profile page where they can change their group.

    3. Backoffice: I would like to add a calendar to each Group edit view. This is because users belonging to a specific group, will be able to do some specific actions based on that calendar. Each group will have its own calendar.

    So, it it technically possible to:

    – Let users choose the group they will belong to while registering?

    – Let the users change group on a profile page after registering?

    – Modify the admin Group edit view with other things, specifically, add custom fields to it? Maybe using ACF plugin (or even coding, no problem)?

    I just want to know this things. Could you give me these infos and/or eventually give me some suggestions?

    Thank you, regards

    • antonio February 13, 2018 at 4:28 pm #

      Hi Luca,
      1.- With Groups User chooses plugin you can do it.
      2.- With the plugin above, you have available the [guc_select /] shortcode.
      3.- Sorry, the Groups are not custom post types, so you can not apply them ACF. You have available the Groups API that you can use to create your own solution, maybe creating calendars as custom post types and restrict them with groups.
      Kind Regards,
      Antonio B.

      • Luca February 13, 2018 at 4:44 pm #

        ok thank you Antonio

  21. Rolf January 20, 2018 at 3:16 pm #

    I was testing groups for use in access control, but it sort of breaks my site. I cannot create new pages – I just get a warning, same as below.

    In the “groups” box at the “add new page” I get the following warning:

    Warning: count(): Parameter must be an array or an object that implements Countable in /home/devringoflife/public_html/wp-content/plugins/groups/lib/core/class-groups-group.php on line 635

    I really like the concept of the plugin, but it has to work obviously.

    I am running wordpress 4.9.2 and using the Enfold theme. The site is a staging and testsite with an almost fresh install.

    I realize that groups is untested with my version of wordpress, but thought you should know.

    Thanks, Rolf

    • antonio January 22, 2018 at 4:45 pm #

      Hi Rolf,
      Groups should work with the 4.9.2 WordPress version.
      It seems that something was not installed well. If you can, uninstall the plugin by deleting the data and tables (from Affiliates->Options you have an ‘Delete all Groups plugin data on deactivation’ option), and reinstall the plugin.
      If the problem persists, please let me know.
      Kind Regards,
      Antonio B.

  22. Vadim January 19, 2018 at 4:04 pm #

    Parent hierarchy works fine for me for pages and posts, but when I try to implement it through shortcodes it does not work. I have to specify each group in a shortcode. Is it supposed to be this way? Or may be you have a solution?

    • antonio January 22, 2018 at 4:22 pm #

      Hi Vadim,
      Right now it’s the correct way, you need to set all groups.
      It sounds logical to be able to filter the children automatically, we will review it, thanks for the contribution.
      Kind Regards,
      Antonio B.

  23. Siva Teja December 21, 2017 at 12:00 pm #


    We are facing below Issue with the Groups plugin:

    Once the Groups plugin is activated we are unable to Bulk Edit pages (Default Functionality from the WordPress) also for Some subsites we are unable to load Dashboard-> Appearance-> Customize page.

    FYI- We are using Zephr themes version 4.2, Can someone please let me know the configurations that need to be done for Bulk Edit pages to be working along side with the Groups plugin.

    Siva Teja

    • antonio December 22, 2017 at 9:31 am #

      Hi Siva Teja,
      Sorry, I can not replicate this issue.
      Try to enable WP debug editing your wp-config.php file and replace the following line:
      define(‘WP_DEBUG’, false);
      with these lines:
      define(‘WP_DEBUG’, true);
      define(‘WP_DEBUG_LOG’, true);
      define(‘WP_DEBUG_DISPLAY’, false);
      after that add a file named debug.log under your wp-content folder.
      Then try to run your “Bulk edit page” action.
      When performing the actions i mentioned keep checking your wp-debug.log file in case there are issues logged.
      Kind Regards,
      Antonio B.

  24. Dennis December 12, 2017 at 10:42 am #

    Hi, is it possible to have a (restricted) member list page?

    Cheers, Dennis.

    • Kento December 13, 2017 at 1:38 pm #

      Hi Dennis,

      Yes, maybe this plugin can help you – it provides a simple shortcode to list users. You can use and extend it appropriately for what you want to display. You place that on a page with restrictions on itself or on its content.


  25. Max November 24, 2017 at 2:28 pm #

    Dear itthinx team, I did write you an extensive support request yesterday. When browsing through earlier issues you helped me solve in the past I had to realise that I wrote you a very similar request April 19, 2017 at 3:43 pm. You did provide me with a quite interesting possible solution which I pursued but never managed to get working for some reason. As priorities shifted within my project I could not pick it back up again until now. Now having to face that same problem again I will start by trying to implement your suggested solution from back then. In case I hit a wall I would reply you to your answer back then. Anyways, I truly appreciate your dedicated support and helping with rather complex issues and apologise for my rather long problem descriptions at times.

    • antonio December 18, 2017 at 9:47 am #

      Hi Max,
      Do not worry about the descriptions, this helps us to understand the scenario better.
      If you prefer, open a topic in the forums.
      Kind Regards,
      Antonio B.

  26. Max November 23, 2017 at 5:40 pm #

    Hi Groups team,

    I am using the groups plugin successfully for a while now and It did a good job when restricting entire pages or single sections to different user groups or groups with different sets of capabilities. I am working with wordpress using a theme that uses visual composer and the shortcodes that come along with it. So the way I have it setup now is the way below making sure users
    1) have to be logged in to see the page content
    2) only see the entire content if they are allowed to see
    3) showing the user informative message in case they have to log in to see the message or in case they are simply not allowed to see the content.

    (For further detail on the shortcodes and sequence I used plese see below.)

    So far so good but I now need to implement more than one layer of restricted content. So instead of either showing an entire site, or one item of content to a user or not I have to add addtional layers. With this i am failing so far. It seems the opening and closing parts of the shortcodes do not connect anymore and instead of restricting content they get displayed as if they were actually visible content.

    What I would need to do in particular is make sure that on top of the functionality provided so far I can add a second layer of restriction making some content elements available to this group of people and others available to that group of people alternating while at the same time making sure all users have to be logged in to access the content.

    A scenario I would need to enable is:
    1) have to be logged in to see the page content
    2) only see the entire content if they are allowed to see
    3) showing the user informative message in case they have to log in to see the message or in case they are simply not allowed to see the content.
    4) still within the people allowed to see that particular site, there will be certain videos, text blocks or images only reserved to a particular user group.

    I am struggeling to make item 4) work for different usergroups without breaking the code and having the site show shortcode bits as if it was actual content.
    I did try to render my own shortcodes within visual composer for the groups short codes as well but this did not improve things unfortunately.

    More detailed info on what shortcodes I use and in which sequence:


    [groups_non_member group="Registered"]Please Log in.[/groups_non_member]

    [groups_can_not capability="see_page_X"]sorry you are not allowed to see X[/groups_can_not]

    [groups_can capability="see_page_X"]



    When dealing with a plugin that is using visual composer some those shortcodes has to be implemented into visual composter shortcodes like “rows” and “page sections”. This is where I think the poblem actually comes from and where I am desperately looking for a solution.
    The way I have things implemented in functionally so far is like below.

    [vc_row][vc_column][mk_padding_divider size=”20″]

    [vc_row css=”.vc_custom_1470306330188{margin-bottom: 10px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}”][vc_column]
    [groups_non_member group="Registered"]Please Log in.[/groups_non_member][mk_padding_divider size=”20″][/vc_column][/vc_row]

    [vc_row css=”.vc_custom_1470306330188{margin-bottom: 10px !important;padding-top: 0px !important;padding-right: 0px !important;padding-bottom: 0px !important;padding-left: 0px !important;}”][vc_column]
    [groups_can_not capability="see_page_X"]sorry you are not allowed to see X[/groups_can_not][/vc_column][/vc_row]

    [groups_can capability="see_page_X"]




    Please let me know if you have experience or input on how I could solve my problem since I really like the plugin genereally but now have to move on to a bit more advanced setup.

    My site is uploaded but passworprotected, let me know in case you would need access to have a look.

    Best regards,

  27. David H. Lawrence XVII November 15, 2017 at 9:48 pm #

    Can I get you guys to implement integration with Zapier and/or IFTTT? I’m trying to use Thrivecart to add customers to groups (like I can with WooCommerce, which I’m trying to transition away from to Thrivecart), and my dev guy says the two just won’t talk to each other (Thrivecart and groups), and he’s investigated the Groups API.

    I rely heavily on your products, and don’t want to move to another access management tool!


    • Kento November 16, 2017 at 12:44 pm #

      Hi David,

      Thanks for getting in touch David, I’ve tried to find your account but can’t locate any related to your email or website. Can you please get in touch via support at itthinx dot com with an order number so we can check your access and make sure you can also post in the forums?

      Now regarding your suggestion. I’d certainly be interested in working out an integration with Zapier and am curious to know which aspects you would want to connect. Also I’d like to know what motivates the move from WooCommerce to Thrivecart …


      • Sonny March 23, 2018 at 7:01 pm #

        One example of a useful Zapier integration would be with Documentation. I.e., so that Zapier could upload documents to the site and specify which groups can access it.

        • Kento April 2, 2018 at 7:17 pm #

          Hi Sonny,

          Many thanks for the suggestion, I’ll take it into account.


  28. DarkAllMan October 23, 2017 at 8:21 am #

    When doing a search on, for instance woocommerce products, how would we filter only visible products/posts in the query using wpdb?

    • antonio November 21, 2017 at 3:32 pm #

      Hi DarkAllMan,
      You can use the Groups_Post_Access class available in the Groups API. Maybe this code can help you as example.
      Kind Regards,
      Antonio B.

  29. Dan October 6, 2017 at 8:31 pm #

    How can I show on a post what groups are allowed to read that post?

    • Kento October 8, 2017 at 6:14 pm #

      Hi Dan,

      It depends … if the post is fully restricted, those who can’t access it won’t see it. In that case you could use the [groups_sandbox_posts] shortcode provided by this free extension Groups Sandbox (details on that page).

      If you only restrict content partially on the post, you could state it on the first’s excerpt or within its content. See the Content Sections documentation for details.


  30. Tony September 27, 2017 at 2:15 pm #


    I’m trying to figure out if it’s possible to edit the [groups_join group="X"] button shortcode to make it a different color rather than the default gray. I’ve read something about using CSS but I’m pretty new to all this so I’d appreciate step-by-step help. How would I make this formatting?


    • antonio September 28, 2017 at 8:33 am #

      Hi Tony,
      You can use this css code:
      .groups-join input[type="submit"] {
      background: red;

      You need to add this code in your styles.css file of your child theme (wp-contents/themes/your-child-theme-folder)
      Kind Regards,
      Antonio B.

  31. Colin September 20, 2017 at 6:07 pm #

    Hi Antonio,

    I’m using groups to restrict access to a large number of pages. I notice that previous to a recent update, if a page was restricted to all but a certain group, users who were not members of this group could not see a link to this page in a wordpress menu. I notice that after updating the plugin, everyone can see these restricted pages in menus, though they cannot access them without privileges.

    This is a major problem for my site, as I only want visitors to be able to see pages on the menu that they have access for. Any ideas?


    • antonio September 22, 2017 at 1:52 pm #

      Hi Colin,
      The menu restrictions should continue working as before. Please try enabling the “Enable legacy access control based on capabilities” option from Groups->Options.
      Please use the forums for support questions.
      Kind Regards,
      Antonio B.

  32. Jay September 3, 2017 at 9:14 am #

    Hi there,

    I’m using “members” plugin along with “groups”.

    So, I have customers who are automatically added to particular “role”. I can manually add users to particular “group”, but is there a way to assign a registered customer to particular “group”?

    For example, I created ‘VIP’ group. So, when user signs up, he or she is automatically assigned as VIP group.

    please help.


    • antonio September 4, 2017 at 8:06 am #

      Hi Jay,
      You can use this code in your functions.php child theme’s file, changing ‘Premium’ by ‘VIP’.
      Please use the forums for questions.
      Kind Regards,
      Antonio B.

      • Jay September 4, 2017 at 8:17 am #

        Hi antonio,

        Thanks for help. So, the code you provided will automatically assign “VIP” role to particular group (for example “VIP-Domestic”)?

        • antonio September 5, 2017 at 8:21 am #

          Hi Jay,
          No, with this code, new users are automatically assigned to the ‘VIP’ group.
          Kind Regards,
          Antonio B.

          • Tevya January 19, 2018 at 11:10 pm #

            Is it possible to add users of a particular Role (in our case “Give Subscribers”) to a Group? Something similar to this, except anytime someone is added to the “Give Subscribers” role, they’d also be added to the “Core Leaders” Group.

            • antonio January 20, 2018 at 4:28 pm #

              Hi Tevya,
              with Groups User Chooses you can select the default regitration groups, and/or groups according to the role where the user is added.
              Kind Regards,
              Antonio B.

              • Tevya January 20, 2018 at 5:33 pm #

                Thanks @antonio, that’s almost what I need. Except we’re using for donations, and it appears that plugin only works with WooCommerce and WP’s built-in registration. We also need to remove them from the group, if they’re moved to another user role.

                • antonio January 22, 2018 at 3:53 pm #

                  Hi Tevya,
                  Yes, the plugin is based in the ‘set_user_role’ hook of WordPress (it really is not necessary to use woocommerce).
                  By example, if the user was ‘author’ and he is changed to ‘editor’, then the user is removed from the author’s groups, and added to the editor’s groups.
                  I have not tested the plugin with GiveWP, if you send me an email to info[at]eggemplo[dot]com, I can send you a copy so you can try it.
                  Kind Regards,
                  Antonio B.

  33. Chris September 1, 2017 at 2:09 am #

    Hi, great plugin…

    I haven’t used the plugin yet but was wondering if this allows for user created and managed groups or if it’s just under control of the admin. I am hoping to find somewhere where they user base can create their own groups.

    Thanks much,

    • Kento September 1, 2017 at 5:39 am #

      Hi Chris,

      Thanks for asking! Currently group creation is only handled on the back end although work is being done to extend this but I can’t really give an ETA for these features.


  34. John M August 30, 2017 at 8:52 pm #

    I downloaded and activated Groups 404 Redirect. In settings, Redirect to wordpress login is checked and the Redirect restricted categories is checked. Yet when one not in the group selects the restricted content, he/she still gets a 404 error. Your plugin is not working.

    • antonio August 31, 2017 at 7:47 am #

      Hi John,
      Please open a topic on the Groups forum with this question, adding your plugins version.
      Antonio B.

  35. JOHN August 26, 2017 at 12:09 pm #

    I purchased the Groups Restrict Access add-on and it seems to work. That is, when one not in the group tries to read a restricted post, he/she is not allowed to see the post. That’s the good news. The bad news is that visitor, not in the group, gets a 404 error. What he/she should get is a restricted access message or a redirect to the log in page.

  36. John Mills August 25, 2017 at 12:41 pm #

    Pre-sales question:
    I’d like to restrict viewing a category of posts to all users, but not to visitors (the public). I have set a group and all registered users are in the group. If I purchase your add-on “Restrict Categories” will it permit only those in the Group to read the restricted category of posts ???
    Other categories of posts are to remain readable by all, i.e. registered users and the public.

    Is this do-able???

    • antonio August 25, 2017 at 3:52 pm #

      Hi John,
      Yes, you can do it using the Groups Restrict Categories. This works like the Groups plugin, but applying the restriction by categories.
      On the documentation page you can see more information about the plugin.
      Kind Regards,
      Antonio B.

      • John Romaine August 26, 2017 at 5:20 am #

        Could this be a solution for my question above?

        Restricting everything in the back end to dedicated moderators but keeping everything open in the front end to the public.

        • antonio August 26, 2017 at 9:32 am #

          Hi John,
          Sorry, you can not do it. You can restrict content to users who are in a group, but not restrict content to a group and keep the content free to the public, if a content is restricted to a group, only the members of this group can see the content.
          Kind Regards,
          Antonio B.

  37. Chris August 24, 2017 at 5:42 pm #


    is it somehow possible to set a default group for new posts?
    Some members of my site often forget to set an group and this leads to invisible post and missing notifications for other members.


    • antonio August 26, 2017 at 3:46 pm #

      Hi Chris,
      On this comment you have a code that you can use.
      Kind Regards,
      Antonio B.

  38. idbcm August 21, 2017 at 10:48 am #


    I’m using this plugin to control access to certain posts and it’s working perfectly, however, I ran into an issue with Mailpoet.

    Posts that are group-restricted are not sent through Mailpoet’s newsletters (they show up on the newsletter preview, but don’t appear on the emails that are sent).

    Is there a way to change this?
    Thanks, beforehand.

    • antonio August 23, 2017 at 7:50 am #

      Hi idbcm,
      Exactly what plugin are you using? So I can check how it works.
      Kind Regards,
      Antonio B.

      • idbcm August 23, 2017 at 1:14 pm #

        Hi, thanks for the reply.

        I’m using Groups to control the access to certain posts and Mailpoet to send the automated post notifications. They’re not playing well together (the restricted posts are not sent through Mailpoet to the mailing list subscribers, even though they appear on the newsletter preview).

        If you have any idea what needs to be changed, please let me know.
        Thank you.

        • antonio September 1, 2017 at 8:14 am #

          Hi idbcm,
          Really I don’t know how the MailPoet plugin works. There are multiple MailPoet plugins, please give me exactly what are you using and I’ll try this.
          Kind Regards,
          Antonio B.

          • idbcm September 1, 2017 at 3:41 pm #


            Of course. I’m using Mailpoet 3 (latest version):

            I really appreciate your help.
            Thank you!

            • antonio September 4, 2017 at 9:39 am #

              I have been testing the plugin, but by how it works, it only adds the articles that are not protected to the newsletter. During editing you see all articles, because you are logged in as an administrator. But when the email is sent, only the not protected are included.
              Kind Regards,
              Antonio B.

              • idbcm September 4, 2017 at 10:55 am #

                Hi, Antonio,

                Thank you again for your reply. Yes, it appears to be doing that. I also tried with a different plugin, and the behavior is the same.

                As far as the Groups plugin goes, do you know if there’s something in the code that controls this? Because I’m using a mailing list set up with Mailpoet to send these protected articles to specific people, if I could simply disable the Groups functionality when sending the newsletters, I think that would work.


                • antonio September 5, 2017 at 8:09 am #

                  Having a look at the Mailpoet plugin, I can see in mailpoet/lib/Newsletter/AutomatedLatestContent.php line 61, this instruction: $parameters['suppress_filters'] = false;. If I change ‘false’ to ‘true’ it seems to work. Maybe a filter here would be great, but I think it does not. If you ask the creator of the plugin maybe he can help you.
                  Kind Regards,
                  Antonio B.

                  • idbcm September 5, 2017 at 8:56 am #

                    Hi, Antonio,

                    It seems to be working.
                    Thank you so much for your assistance!

                    • antonio September 5, 2017 at 4:28 pm #

                      Perfect, kind regards !

      • idbcm August 31, 2017 at 10:55 am #


        Do you have any idea of how to get around this? I’m using Groups with Mailpoet.
        I tried having a look, but for both plugins there are thousands of lines of code and I couldn’t figure out what could be causing the issue on either.

        Thank you.

  39. RuLO August 16, 2017 at 5:00 am #

    Awesome! Thank you! ?

  40. rulo August 15, 2017 at 9:35 pm #

    Hi!! There:

    I Have a question, How can I display a List of members of a specific group. e.i. The name of the group is: “Silver”, how can I display a List of members of this group. I Had installed the plugin: ,but after activate it, nothing happened, What can I do ¿?.

    • antonio August 16, 2017 at 4:37 am #

      Hi Rulo,
      After install the plugin, you need to use the shortcode [groups_users_list_group group_id=”xx” /] You need to change xx for your group_id (integer number)
      Kind Regards,
      Antonio B.

  41. Neil August 12, 2017 at 10:33 am #

    Hi Antonio,

    Is it possible to have all content created by users to be only visible within their group automatically – without selecting the privacy options? Or to ask it another way, how can I programatically set certain custom post types to be restricted to members of the author’s group?

    • antonio August 14, 2017 at 9:25 am #

      Hi Neil,
      Using the Groups API, you can check the current user capability/group, so when a post is saved, restrict this.
      Maybe this code can help you as reference.
      Kind Regards,
      Antonio B.

  42. Sergio August 8, 2017 at 9:53 am #

    Hola Antonio,

    If a post / page is restricted to a group_A, then only the users on this group_A or group_A_1 / group_A_2 … (children of group_A) can access this post / page.

    But with the use of shortcodes, it works the same?

    [groups_member group="group_A"]
    some text example…

    Now, children of group_A, group_a_1 and group a_2 can see this restrict content or not?
    Or only can see this text the users off the group A? and their children can’t see this content?
    If cannot see, there is a solution / arguments to add in the shortcode to make it possible?



    • antonio August 8, 2017 at 2:59 pm #

      Hi Sergio,
      Using the shortcode, you need to indicate all the groups, something like this:
      [groups_member group="group_A,group_A_1,group_A_2"]
      some text example…

      We have noted it as a shortcode improvement, I’m sorry I can not give you a delivery time.
      Kind Regards,
      Antonio B.

      • Sergio September 14, 2018 at 10:32 am #

        Hello Antonio, I understand that there is still no solution to the shortcode problem that I mentioned to you a while ago?


        • Kento September 25, 2018 at 10:31 am #

          Hi Sergio,

          It’s still pending, my concern is that it would change the outcome on existing sites which could lead to undesired results in some cases. But otherwise I think it would be appropriate to have it take those group hierarchies into account by default.


  43. John Romaine August 3, 2017 at 1:27 pm #

    Hi Antonio,
    I am currently testing this plugin and it works very well. Thanks for producing such great software. I do however have a question that I’m hopeful you can help me with.

    Id like to keep restrictions limited to users and groups in the back end, but have the front end completely open to the public. In other words, I only want restrictions applied to users in the back end, so that they can only update, delete and edit content that they have access to, but at the front end (what the actual public sees) everything should be viewable.

    Does that make sense?

    At the moment when I create a piece of content and assign it to a certain group, it disappears from the front end because members of the public aren’t of course members of any groups.

    I would happily pay to have this feature added.

    Thank you.

    • Kento August 5, 2017 at 2:40 pm #

      Hi John,

      Many thanks for your feedback and question about the plugin. What you’re asking sure makes sense to me, in fact, it’s part of what I’m currently working on. Can’t give an ETA on these features yet except I’d like to see these things available ASAP … I assume you’re working on a project where you need to have more fine-grained access restrictions related to who can edit what – just where you already show content to the public openly, instead of hiding it on the back end, to restrict who is allowed to edit, delete, update etc. makes more sense in general applications.

      Do you have a schedule for your project?


      • John Romaine August 5, 2017 at 10:30 pm #

        Hi Kento,
        Thanks for the response mate I appreciate it.

        Answer to your comments and questions below…

        it’s part of what I’m currently working on. Can’t give an ETA on these features yet except I’d like to see these things available ASAP …

        Excellent, sounds great.

        I assume you’re working on a project where you need to have more fine-grained access restrictions related to who can edit what – just where you already show content to the public openly, instead of hiding it on the back end, to restrict who is allowed to edit, delete, update etc. makes more sense in general applications.

        The plugin does exactly what I need it to in the back end, being able to assign content to specific users and groups is fantastic, I would just like the front end completely open. To both the public (regular web visitors) AND those that have restrictions in the back end.

        For eg. I am using your plugin on a car site. Ive created a number of groups, and assigned users that are knowledgeable about certain types of cars in those groups. So members that are experienced and knowledgeable about 1965 Ford Falcons, can contribute and control content about 1965 Ford Falcons, but not have access to any other types of cars in the back end, HOWEVER they can see ALL the cars on the front end. Members of the public of course can see everything on the front end as well.

        In other words, restrictions are applied as intended by the plugin in the back end, but there are NO restrictions at all on the front end.

        Do you have a schedule for your project?

        At the moment Im doing research and testing etc, but I would like to get this over to my web guy within a week if possible.

        Thank you.

        • Kento August 17, 2017 at 4:03 pm #

          Hi John,

          Thanks for your comments, from what you explain, what I understand is that this is basically restricting who can control content on the back end, although that content is publicly visible.

          The difference in what I’m working on and how you have outlined it, is that in the model I consider, users won’t be locked out completely from viewing things on the back end (unless it’s protected content), but they wouldn’t be able to create, edit or delete stuff unless they have the right permissions.

          It’s been almost a couple of weeks since you posted (and sorry it took so long to reply) – I imagine you’ve moved further with your project now. Unfortunately I don’t see a chance of providing you with something you could at least test for your purposes shortly. Sorry this doesn’t help much for now …


          • John Romaine August 17, 2017 at 10:35 pm #

            Thanks for your comments, from what you explain, what I understand is that this is basically restricting who can control content on the back end, although that content is publicly visible.

            That’s exactly right.

            I don’t want any restrictions on the front end. I want it open so everyone can read it.

            Surely this is an easy thing to do? Wouldn’t it simply be a matter of removing code?

            • Kento September 1, 2017 at 6:08 am #

              Unfortunately not, John. It might seem easy by concept, but it’s technically rather complex and there are many important aspects from performance to security involved … it’s not a matter of removing code … I wish it were that simple 🙂

  44. Doc August 1, 2017 at 9:13 am #

    When setting group capabilities and using the parenting functionality i noticed that capabilities a group inherits still shows up in the capabilities list that can be assigned to the group in the editing section.

    I think it would be nice if Capabilities aren’t shown when a group already inherits those capabilities from a parent.

    • Kento August 2, 2017 at 6:46 am #

      Hi, many thanks for the suggestion. I think that removing the capability would be too restrictive (you simply might want to add it although the parent already has it). But we could mark them as already inherited, I’ve taken note to include this improvement. Thanks!

      • Doc August 2, 2017 at 8:50 am #

        You have a good point, it might be to restrictive yes. It would be nice tough if the capabilities were marked if they are inherited. Currently i am making a wordpress site where information needs to be managed for groups of users and till this far the groups plugin is working perfectly. Thanks for building a free plugin with these capabilities 😉

        • Kento August 5, 2017 at 2:22 pm #

          Many thanks for your suggestion, and I’m always happy to hear that it’s useful 🙂

  45. Loic July 31, 2017 at 7:17 am #

    I’m using Wp All Import in my site. Is it possible to import posts with groups restriction?

  46. Raúl July 27, 2017 at 4:07 pm #

    Hi there I have a question: Using Menu Item Visibility Control plugin how can i hide a item for a specific group ei. “Gold” or/ and “Silver”, not by role, I read in the comments something like “current_user_can(‘read’);” but if I want restrict/hide the item for a Specific Group, which will be the code?.

    • antonio July 28, 2017 at 8:41 am #

      Hi Raúl,
      You can use something like this: current_user_can(‘your_capability’);
      Kind Regards,
      Antonio B.

  47. Yaron Guez July 19, 2017 at 11:51 pm #

    Hi! I just threw together a plugin that extends WP User Query to allow querying by Group IDs. If anyone finds it useful, it’s over here:

    • antonio July 21, 2017 at 7:13 am #

      Hi Yaron,
      Thank you very much for the contribution and share it.
      Kind Regards,
      Antonio B.

  48. Rich July 16, 2017 at 7:05 pm #


    How would I create a designated page so that a group member could easily view all the available content for their group. I have read the documentation several times and just don’t see anything that addresses this, unless I’m missing something. Seems like there would be a short code or something that would automatically populate a designated page with all of a particular group’s content.

    • antonio July 17, 2017 at 4:09 pm #

      Hi Rich,
      when an user visits your blog, directly he can only see the content that he has access to.
      Are you using any shortcode ?
      Kind Regards,
      Antonio B.

  49. Ganesh July 9, 2017 at 7:01 pm #

    Can assign group admin? Who can manage there own group user.
    For example: A Group admin is user 1
    And it has 10 user which user 1 can manage. Like editing, approving, deleting, etc

    • antonio July 13, 2017 at 8:41 am #

      Hi Ganesh,
      from Groups->Options you can set the Permissions. But if you need to change the user’s groups, you need to have access to manage the users, so you need to be Administrator.
      Really there isn’t an option to have a user who is admin only of his group.
      Kind Regards,
      Antonio B.

  50. Cliff DesPeaux July 6, 2017 at 7:38 pm #

    Hi Antonio, thank you for the great plugin!

    Do you know if there’s a way to fix this minor UI issue?

    • antonio July 7, 2017 at 6:43 am #

      Thanks Cliff,
      We will review it, thank you for notifying us.
      Kind Regards,
      Antonio B.

Leave a Reply to Kento 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