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,641 Responses to Groups

  1. Aj July 7, 2015 at 1:27 am #

    Hello. Is there a way to allow a ‘public, unprotected RSS feed’ even though the site is protected by an activated ‘Groups’ plugin? I’m having difficulty giving email marketing services like MailChimp access to the RSS feed for publishing new blog articles from our site.

    Any help is appreciated. Thanks!

    • antonio July 8, 2015 at 5:00 pm #

      Hi Aj,
      maybe using [groups_member] and [groups_non_member] shortcodes instead of to restrict the post completely, could be a solution.
      Antonio B.

      • Aj July 8, 2015 at 8:09 pm #

        Thanks Antonio. Unfortunately, in that scenario, the restricted content would be absent from the feed and I need it to be available to the MailChimp service. I know this is a contradictory situation because I want to restrict the content to users only but also make it available to a third-party service (ie. MailChimp). Do you know if there is any way to allow the third-party access by embedding the Groups credentials in the feed URL? I have seen some web articles about using the format, ‘’ to allow the third-party access to the feed. The ‘user:password’ would be a new user in Groups that is setup just for the feed access. Have you heard of this? It seems like it works for some people that use standard WordPress password protection, but did not work for me with Groups. I thought that you might know of a way to pass the credentials in the URL such that Groups would recognize and allow access.

        Thanks for your help.

        • antonio July 15, 2015 at 8:25 am #

          Hi Aj,
          sorry, I know nothing about it.

        • kento July 15, 2015 at 10:34 am #

          Hi Aj,

          Regarding the scheme to mention, it doesn’t work with Groups (unless you had a mechanism that would effectively authenticate and log the user in, but that’s not something built into Groups). Also note that one would have to use https:// and not http:// for security reasons. In any case, it’s an interesting idea, but you’d have to build something or use something existing to make it work that way.


  2. Jerry June 30, 2015 at 12:21 am #

    I have two membership options, general and premium. The premium is charged monthly for cumulative content. The problem is, there is no incentive currently in place to keep people from upgrading, printing the content and downgrading only to do the process all over again a few months later.

    How do I set an initial membership fee that is applicable for subscribers looking to upgrade to a premium membership ONLY after they have downgraded from a premium membership. I’d like it so subscribers who have never upgraded to a premium membership in the past do not see it but subscribers who have previously had a premium membership are charged an up front fee.


    • antonio July 2, 2015 at 3:02 pm #

      Hi Jerry,
      sorry, it’s not possible. You can set an initial fee, but not changes it according to if the user has been befora premium.
      Antonio B.

  3. whoaloic June 29, 2015 at 10:09 am #

    What’s the point of “Links” menu?
    Do you think you could erase this menu in next plugin update?

    • kento June 29, 2015 at 10:30 am #


      If you see that menu, go to Groups > Options and disable the administrator override option please.


      • whoaloic June 29, 2015 at 10:36 am #

        All right,
        I unckeck Administrators override all access permissions derived from Groups capabilities.
        But what’s the point of this menu?
        Do you plan to remove this feature?

        • kento June 29, 2015 at 10:44 am #

          It’s not produced by Groups, it’s a deprecated WordPress feature which comes up when the override is activated due to the capabilities. Nothing to worry about really.

  4. Mark June 22, 2015 at 4:28 am #


    I am installed the groups plugin and I have followed the steps to manually add a new group and capability. The first time I did this it worked fine, but any other group & capability I manually add is not appearing in the drop down to allow me to secure a post.

    If I create a quick group / capability from the post, this seems to work OK.

    Also, I am planning to use this plugin to create a ‘friends of xxx’ group for each user, in order to allow the user to restrict who can view the post. Will I run in to performance issues by doing this when my site grows to thousands (or hopefully more) of users? I noticed the capabilities and groups are all stored in a single field in the database and I fear that this will start to slow things down.


    • antonio June 22, 2015 at 9:07 am #

      Hi Mark,
      You need to add the new capabilities in Groups->Options:Capabilities section.
      Relating to performance, there should be no problems. There are many sites that use groups and have thousands of users.
      Antonio B.

      • Mark June 22, 2015 at 11:50 am #

        Thanks Antonio,

        I have added the new capability like you described above and it does not work. As I noted above, the first one was fine but additional capabilities are not working.

        As for performance, if I have 5000 users I will also have 10000 groups and capabilities as each user will have a friends and followers group. Are you sure this won’t suffer for performance?

      • Mark June 22, 2015 at 12:09 pm #

        OK, I have figured it out. My admin user was not a member of the new group. Therefore I could not add the capability to the post.

        I still need confirmation regarding my performance concerns.

        • kento June 29, 2015 at 10:00 am #

          Hi Mark,

          Groups is very scalable but if your setup will support the amount of users you will have or not is not dependent on Groups but on everything around it, server architecture included. It’s not a question of whether someone can confirm to you if a piece of software will be able to support what you’re doing (given that the software works as it is supposed to) but you making sure that you deploy the right resources for the job … and that involves testing the whole set of tools that you want to use together for scalability, not only one or a part of them.


  5. Osteomag June 19, 2015 at 12:35 pm #


    So, I have a question regarding the parent groups, and I don’t think I saw it here already.
    Here is the thing : I have done some tests to understand how your plugin works, and there’s a feature that surprise me. When I put a user in a child group, it isn’t linked to the parent theme (for example : my group named Pro is a child theme of my group Subscriber. When I put a user in the group Pro, it doesn’t belong to the group Subscriber)

    I’d like to know if this is normal, since capablities are inherited from the parent group. Does that mean that I have to add them manually in the parent group ?

    Thank you in advance for your reply !

    • antonio June 19, 2015 at 2:23 pm #

      Hi Osteamag,
      Groups inherit capabilities of their parent groups. So if you have a group ‘Animals’ with the ‘animals’ capability, and you create a child group ‘Cats’, then it will have ‘animals’ capability.
      Antonio B.

      • Osteomag June 19, 2015 at 2:55 pm #


        Yes, I did have understood this functionnality with the capabilites. My question is more about the links between a parent group and a child group.

        For example, I’m using the short code [groups_member] to restrain the access to my articles to certain groups. Let’s say I have the parent group Animals (to follow your example), and two child groups linked to it, named Cats and Dogs.
        When I tried to use the shortcode [groups_member group="Animals"], the users who were registered in the groups Cats and/or Dogs couldn’t see the article. It was only when I added them directly to the group Animals that they could read my content -even though they have the same capabilities as my group Animals.

        That’s why I was a bit confused, I thought the capabilities would have prevent this… Or maybe there’s something I did wrong ?

        Thanks !

        • antonio June 29, 2015 at 9:16 am #

          Hi Osteomag,
          you could use [groups_can] shortcode to do it with capabilities.
          Antonio B.

  6. Sherle June 15, 2015 at 8:23 pm #

    Have just installed Groups, prior to purchasing Groups for Woocommerce. I have tried to add new groups and new capabilities, but when I do neither show up in the list of Groups or list of Capabilities. If I try to re-add them, I am told they already exist? I can’t find a list of known conflicts and have disable other plugins. Thanks for your help ASAP.

    • antonio June 16, 2015 at 5:48 am #

      Hi Sherle,
      maybe you have some data in the filter (above the groups/capabilities table) ? try to Clear this filter.
      Antonio B.

  7. Nick Hilliard June 13, 2015 at 9:25 pm #

    I have an issue in which I cannot delete group with ID=1 or even change the name. Is there a way to do that?

    • antonio June 14, 2015 at 9:21 am #

      Hi Nick,
      sorry, you can not delete/rename ‘Registered’ group.
      Antonio B.

  8. Rena June 9, 2015 at 6:52 pm #

    I’d like all my users to only be part of one group without overlap. Is there an easy way to remove a user from one group when he moves to the next one?


    • antonio June 9, 2015 at 8:21 pm #

      Hi Rena,
      if you are using the Woocommerce Integration you can select in the product page the groups to add/remove.
      If not, you can use the action groups_created_user_group to create your own solution.
      Antonio B.

      • Rena June 10, 2015 at 6:46 am #

        Hi Antonio,

        I am using it with WooCommerce. The remove groups would be great, but it doesn’t seem to be working. I also tried to do this:

        add_action( ‘woocommerce_order_status_completed’, ‘check_user_group’, 10, 1 );

        function check_user_group($order_id) {

        $user_id = get_current_user_id();

        require_once( ABSPATH . ‘wp-includes/pluggable.php’ );
        if ( $group == Groups_Group::read_by_name( ‘Starter’ ) && $group == Groups_Group::read_by_name( ‘Gold’ )) {
        $group_delete = new Groups_User_Group( $user_id, 2 );
        $group_delete::delete ( $user_id, 2);



        but no luck there either.

        woocommerce_order_status_completed() is not being called.


        • antonio June 10, 2015 at 7:57 am #

          Hi Rena,
          I don’t know why the function is not called.
          But this code should work fine, except if you update the order from the backend, then the $user_id is the administrator, not the customer. This code should get the customer’s id:
          $order = new WC_Order( $order_id );
          $user_id = $order->user_id;

          Antonio B.

  9. Dustin June 9, 2015 at 6:41 pm #

    I am having trouble formatting. I am simply using the [groups_member group="A"] code to show/hide files. As an example:

    [groups_member group="A"]File1[/groups_member]
    [groups_member group="B"]File2[/groups_member]
    [groups_member group="A,B"]File3[/groups_member]
    [groups_member group="C"]File4[/groups_member]
    [groups_member group="A"]File5[/groups_member]

    I would like each of these items to display in a list, as follows (let’s assume I have access to Group A):

    However, the items all run together and display as follows:
    File1 File3 File5

    I have tried spaces and pressing Enter after each line, but haven’t had any luck.

    Any suggestions? I have ~200 files that I want to add to a single page, and then display them based on the [groups_member] rule, but I need them to display as a list, not as a run-on line of items. Thanks!

    • antonio June 10, 2015 at 5:50 pm #

      Hi Dustin,
      if you are in text mode, you can try:
      [groups_member group="A"]<li>File1</li>[/groups_member]
      [groups_member group="B"]<li>File2</li>[/groups_member]
      [groups_member group="A,B"]<li>File3</li>[/groups_member]
      [groups_member group="C"]<li>File4</li>[/groups_member]
      [groups_member group="A"]<li>File5</li>[/groups_member]</ul>

      Antonio B.

  10. Jerry May 30, 2015 at 12:50 am #

    I see that I can do it using
    $user_id = get_current_user_id();
    if ( $group = Groups_Group::read_by_name( ‘Registered’ ) ) { // if the Group exists
    if (Groups_User_Group::read( $user_id , $group->group_id )) { // if the user_id belongs to this group

    So if I wanted to restrict “this text only” Then I think I would insert the following into my template:
    $user_id = get_current_user_id();
    if ( $group = Groups_Group::read_by_name( ‘Registered’ ) ) { // if the Group exists
    if (Groups_User_Group::read( $user_id , $group->group_id )) { // if the user_id belongs to this group
    “this text only”
    But it doesn’t work. Please show me how to do it properly

    • antonio May 31, 2015 at 8:43 am #

      Hi Jerry,
      remember that this is php, if you add: echo "This text only" should work.
      Antonio B.

      • Jerry May 31, 2015 at 6:37 pm #

        Thanks for the quick response. I apologize for being less specific.
        I want to restrict this code:
        <form action="/wp-admin/admin-ajax.php” method=”post” id=”rate-product”>

        <input type="hidden" name="post_id" value="ID ?>” />

        So I input this code

        $user_id = get_current_user_id();
        if ( $group = Groups_Group::read_by_name( ‘Premium’ ) ) { // if the Group exists
        if (Groups_User_Group::read( $user_id , $group->group_id )) { // if the user_id belongs to this group
        <form action="/wp-admin/admin-ajax.php” method=”post” id=”rate-product”>

        <input type="hidden" name="post_id" value="ID ?>” />


        and all that shows up for Premium users is the $user_id = get_current_user_id();
        if ( $group = Groups_Group::read_by_name( ‘Premium’ ) ) { // if the Group exists
        if (Groups_User_Group::read( $user_id , $group->group_id )) { // if the user_id belongs to this group
        <?php….etc text

        What am I doing wrong?

        • antonio June 2, 2015 at 8:04 am #

          Hi Jerry,
          please use to show code. Maybe you need to add <?php before the code to open the php block.
          Antonio B.

      • Jerry June 2, 2015 at 3:30 pm #

        Hi Antonio,

        I’m sure I’m doing something wrong. I made some adjustments, the code looks clean to me however the restricted content is not visible to the Premium group. Thank you so much for you assistance. Here is the code

        • antonio June 3, 2015 at 7:42 am #

          Hi Jerry,
          you can try to remove the line if(!already_voted($post->ID)) to rule out the motive.

          • jerry October 19, 2015 at 4:34 am #

            I had given up for some time but now this functionality has deemed essential. I can use the code you’ve suggested to restrict text however it doesn’t work when restricting PHP (specifically a or other PHP. Is there a specific way to restrict other functions on a template than text. Thank you kindly.

            • antonio October 19, 2015 at 5:40 am #

              Hi Jerry,
              maybe you have set your php code after ‘?>’
              Please share your code using
              Kind Regards,
              Antonio B.

              • Jerry October 19, 2015 at 10:02 pm #

                Here you go Antonio. This is the section of code I need to restrict access to. Thank you so much!

              • Jerry October 20, 2015 at 12:05 pm #

                Hi Antonio,

                I was very excited to receive your response because I’ve grappled with this for quite some time. When I applied it I found that it restricted the content from any visibility. Is there perhaps a plugin conflict that only applies to usage of Groups within the theme? Also, is there anything I may do to help troubleshoot. I know this is my problem, not yours. I appreciate your assistance and hope we find a solution. Thank you

                • antonio October 21, 2015 at 7:43 am #

                  Hi Jerry,
                  I’ll try to help you. Please send me dashboard admin access to support at itthinx dot com and tell me what is your theme file that you are modifying (please indicate this conversation in the email).
                  Kind Regards,
                  Antonio B.

  11. Jerry May 30, 2015 at 12:29 am #

    Awesome plugin, thank you so much! All I want to know at the moment is how to apply it to themes. I have a “Premium” group and a “Registered” group. How do I make a section of a theme visible only to members of the Premium group?

    • antonio May 31, 2015 at 8:45 am #

      Hi, Answered here.

  12. Jessica Couto May 29, 2015 at 6:01 pm #

    We are using groups, group subscriptions with woocommerce and woocomerce subscriptions. We would like to have the excerpts of the pages/posts to display but then the link to the post/page be the restricted. Is this possible? Another question – I read about the short code in the posts to display content to the regsitered/non registered users. Is there a way to have default content display for users not in any groups? There are over 1800 posts so we don’t want to enter this in each post.

    • kento May 31, 2015 at 7:44 pm #

      Hi Jessica,

      I’ve created Groups Excerpts, an example child theme, which shows the excerpts on protected posts and provides a default message along with the excerpt. You can use it within your own theme if you copy from its functions.php to your child theme.


  13. Nick May 20, 2015 at 4:42 pm #

    I’m using the latest version of the Groups plugin and also Jetpack/Omnisearch. An attempt to use Omnisearch results in this fatal error from the Groups plugin:

    PHP Catchable fatal error: Object of class WP_Post could not be converted to string in /var/www/html/wp-content/plugins/groups/lib/access/class-groups-post-access.php on line 397, referer:

    • kento May 23, 2015 at 8:13 pm #

      Hi Nick,

      It doesn’t happen with other plugins so I’d suppose this is an issue with Omnisearch. Anyhow, it seems it’s going to be dropped – “JP plugins will not be maintained after the end of June 2015” – so this could be a good time to look for an alternative.


  14. Marco May 20, 2015 at 12:51 pm #

    Hi there,

    I am using the plugin in combination with Email Users to define email lists for all registered users.

    We register all our members manually. There is no registration form on the website. I now just wondered if there is an option to put a new user on creation directly into a group.

    That would be pretty handy 🙂

    Cheers Marco

    • antonio May 20, 2015 at 1:53 pm #

      Hi Marco,
      you can use the Users_auto_group function. You need to change ‘Premium’ by your group’s name and add this function to the functions.php theme file.
      Antonio B.

      • Marco May 20, 2015 at 3:50 pm #

        Tanks for the fast reply.
        Ok, this is a solution, but would add other (special) users to this group aswell, right?

        It would be cool to have an option to chose or select a group/groups on the backend registration form.

        • antonio May 22, 2015 at 10:47 am #

          Hi Marco,
          yes, with this solution all new users (frontend and backend) will be added to the group.
          To add only new users from the backend, you could use ‘is_admin’ function as condition.
          Antonio B.

          • Marco May 26, 2015 at 4:31 pm #

            Ok, still not exactly what I need 🙂

            My website has no front end user registration (check the link on my name)

            All users are registered on the backend. An every user I register is part of one or more groups, depending on the person, not the role.

            Person 1 -> Usergroup 1 and 2
            Person 2 -> Usergroup 1 and 3
            Person 3 -> Usergroup 3, 4 and 5
            Person 4 -> Usergroup 1
            Person 5 -> Usergroup 3 and 4

            and so on.

            Everyone has the subscriber role.

            • kento May 26, 2015 at 5:02 pm #

              Hi Marco,

              I think what you’re asking for is that we add the group choice to the Users > Add New form on the back end, right? I wanted to do that quite some time ago but WordPress didn’t implement any hooks at that time (I think around 3.8-ish) that would allow us to extend the form with additional fields. That’s why you would have to first create the user and then edit it to assign the groups.

              WordPress uses wp-admin/user-new.php and there simply doesn’t seem to exist a direct way to add additional fields to the form.

              If you have any suggestion that you would like to contribute, I’d be happy to take it into account.


  15. nakulsa May 16, 2015 at 9:27 am #

    how can i redirect user based on the capability that i added using groups plugin in integration with woo commerce. i created capability user level 1, user level 2 and how can i redirect user level 1 to one page and user level two on another page when they log in.

  16. imacg May 12, 2015 at 3:06 pm #


    there seems to be a conflict between Groups and which I am trying to use to add in extra BuddyPress tabs.

    With Groups switched on the plugin content – which it grabs from assigned pages in a custom menu – do not appear, with Groups off the page content comes through OK.

    I wonder what could be causing this effect.

    As it stands the menu plugin goes because I need Groups, but I also would like some custom BuddyPress profile tabs too..


    • kento May 14, 2015 at 9:48 am #


      I’ve installed that plugin but it has quite a few issues, I’d assume that the notices, warnings and errors it produces have something to do with that – here’s an extract from the debug.log after it is enabled:


    • kento May 14, 2015 at 9:51 am #

      With Groups enabled the menu items appear as before with that plugin on the profile menu, it’s possible that the items you are missing are actually protected by Groups.

  17. Paul May 8, 2015 at 2:42 am #

    The page i’m restricting is not showing in the main navigation,and when I enter the page in the address bar i’m able to access it. I’m using the 404 redirect plug in too which isn’t having any effect. Id like to be able to see the page in the main navigation and then redirect to a “Members Sign” up page. What am I missing here?

    • Paul May 8, 2015 at 2:59 am #

      I found the problem. I am using Modern Tribes Events and the page I created was automatically deleted because of the custom slug I used was the same as the pages slug. In any event, is there away to add the group restriction to an Events?

      • kento May 10, 2015 at 10:37 am #

        Hi Paul,

        Have you checked if the post type that plugin creates has access restrictions enabled under Groups > Options?


        • Paul May 11, 2015 at 5:22 pm #

          Yes that did it thank you. Why are the pages that are restricted not showing in my navigation though. Id like potential members to click on the nav and be redirected (404 plugin) to members sign up page.

          • kento May 12, 2015 at 8:43 am #

            You’ll need to add custom links for them if they should be visible, otherwise they will be hidden due to the access restrictions.

  18. Lucy May 7, 2015 at 2:00 pm #

    Is there a shortcode to add a login form to a page to allow users to log in?

    • antonio May 7, 2015 at 2:17 pm #

      Hi Lucy,
      maybe this post can help you.
      Antonio B.

  19. Dennis May 2, 2015 at 3:57 pm #

    Hi there, I am running wp and woo commerce. I have setup Groups now. Users cannot sign up themselves, but I want to control that, and I have added a number of users as registered now. Once these users have logged in, their ‘dashboard’ page shows, but it i snot possible for them to change or update their password, and addresses? What am I doing wrong?

    • antonio May 4, 2015 at 8:52 am #

      Hi Dennis,
      it seems a problem with another plugin. Please try to disable Groups and test it (Groups should not lead to)
      Antonio B.

  20. Stef May 2, 2015 at 1:16 pm #

    Hi there,

    I’ve made French translation for Groups and Groups WooCommerce.
    If you are interested in send me an email.

    Please note:

    > POT file is not available in groups/languages folder
    > Two sentences missing from groups-woocommerce POT file and so are not translatable.

    Kind regards,

    Stéphane P.

    • antonio May 5, 2015 at 4:32 pm #

      Hi Stéphane,
      please send us your translation to support at itthinx dot com.
      Thank you very much for the contribution,
      Antonio B.

  21. Dennis May 2, 2015 at 6:26 am #

    hi there! I run wordpress/woocommerce . Is it possible to restrict access to the entire shop? The shop page is hidden already, but via search or via the ‘return to webshop’ on the 404 page visitors (without being registered) can have access to the shop’s product pages…

    • antonio May 4, 2015 at 8:37 am #

      Hi Dennis,
      if Groups->Options you can select ‘Product’ in Access restricions. Then in your product edit page you can add the visibility restrictions.
      Antonio B.

  22. imacg April 27, 2015 at 3:38 pm #


    can you tell me a bit about groups_read_post and what it is intended for. Is it so that all groups can read a post, and if so do they all need that capability added to their list, or is it assigned by default.

    If all groups have it then it is only used to open up a post to all, is that the way it works..?

    I am a bit confused on that as you can see.

    Another question on group capabilities. If I am protecting forums for example I assume I need to add forum type capabilities to a group, so in effect are all the groups capabilities “off” by default and must be added to each new group as required..?

    thanks for some guidance on the above…



    • kento May 9, 2015 at 6:08 pm #


      Regarding the access restrictions, please have a look here – the capability you mention would be assigned to a group that should be allowed to read posts protected by it, but it’s much more flexible than that.

      Regarding forums and other post types, please also review the documentation link I’ve mentioned.


      • imacg May 12, 2015 at 4:22 pm #

        Hi Kento,

        thanks for the link, I read under Membership Management that all users get added to the Registered group so you don’t have to do anything else.. there doesn’t seem to be a registered capability though.

        I assume I could add one if I choose. This might make it more obvious and in line with the other group/capability link-up.

        The question on content access restriction for Registered users brings me back to groups_read_post capability which appears to be assigned to Registered by default, is that then the default capability which is assigned to all logged in users, and is it required to be assigned to all content or is that done in the background by default – i.e. all users are Registered and all content is open by default to them..?.

        Does it also then have to be assgined to all other groups – i.e. they all need groups_read_post or not, or do they need to be sub groups of Registered to create the same affect..?

        thanks for clearing this up for me..

        • kento May 14, 2015 at 9:56 am #


          The capability isn’t assigned by default to registered users, it’s simply one that is created by default and enabled for access restriction. It really doesn’t matter if you use that one or a new one to protect the posts.

          Have you tried the quick create field in the access restrictions box on posts? Give it a try, simply input something like Gold or Premium and then publish the post. This will create the group and a related capability which is used to protect access to the post. Then assign a test user to that group, log in as that user and you will see that this user can view the post while other visitors won’t.


      • imacg May 13, 2015 at 8:34 am #

        Hi Kento,

        more specifically, if I add a capability called registered to the Registered group will it work for all registered and logged in users, and can I then forget about groups_read_post all together..

        What exactly is it meant to be used for..?


  23. mike April 26, 2015 at 2:54 am #

    is there any way to add/remove user from group with javascript or other code? Specifically on Contact form 7 event on_sent_ok. Thanks!

    • antonio April 27, 2015 at 10:31 am #

      Hi mike,
      you can use this code as reference:
      $user_id = get_current_user_id();
      if ($user_id != null) {
      if ( $group = Groups_Group::read_by_name( 'Premium' ) ) {
      $result = Groups_User_Group::create( array( "user_id"=>$user_id, "group_id"=>$group->group_id ) );

      Antonio B.

  24. firesidelibrarian April 24, 2015 at 5:12 pm #

    I am new to WP, and looking for a plugin that will allow me to restrict access to a new post type (“Business Meeting”) so only registered members of the site can view it. The description of this plugin seemed to indicate it would work for this purpose. I’ve read and re-read the instructions, but am still unclear how to make this happen. Can you please help? Thanks in advance, and happy Friday!

    • antonio April 29, 2015 at 11:15 am #

      Hi firesidelibrarian,
      please have a look to documentation page.
      In your case when you install Groups plugin, simply edit the post/page and add ‘groups_read_post’ capability on Access Restrictions metabox (so only registered users can see this post/page)
      Antonio B.

  25. Adam Poirier April 22, 2015 at 12:12 am #


    For some reason the Access Restrictions are showing up for all my pages but not my posts. I have uninstalled most of my plugins and it still doesn’t appear. I also re-installed the Groups plugin and still nothing.

    I just moved the Website to a new hosting plan and Groups worked perfectly with the same theme before.

    Any idea why it’s not appearing?

    Best regards,

    • antonio May 8, 2015 at 5:30 am #

      Hi Adam,
      be sure you have selected ‘Post’ in Groups->Options. In the post edit page in ‘Screen Options’ (above) you should selected ‘Access Restrictions’.
      Antonio B.

  26. luc April 21, 2015 at 3:42 pm #


    I need some stuff in groups plugins with sensei that is not allowed. Sensei not manage well teacher so groups is needed and not totaly set for it. Can be great to have:

    – add automaticly a superior group to all the post that an user create with a capability on a group like “force_group_on_create” and “force_group_superior_on_create”

    Jo have group B inheret to group A. All the post that he do are group A or B, depend of the selection of the capability for this group.

    -group can manage, create only sub-group and create own capability “group-sub-admin”

    -manage admin panel like “advanced access manager plugin” to erase menu that are not supported by capability (solved with adminize)

    -group file access improved that allow group to upload in own folder when creating courses Can be great to upload on a superior group – (solved with advanced file manager)

    Teacher group

    Set the upload folder to School or Teacher group when teacher upload.

    Other thing, when i set that a group can create courses, it s obligatory that he have capability to create post, otherwise, he can access to page all courses, but when he click on new course, acces is denied.

    • kento May 9, 2015 at 5:58 pm #


      Thanks for the suggestions. Some of the features you mention are already on our roadmap, not specific to Sensei but as a general enhancement to Groups. The file management features per Group would also make an interesting addition to Groups File Access, but it hasn’t come to have these included to such an extent yet.

      Regarding the permissions to create courses, you should be able to set up a group that has the necessary permissions. Have you checked which permissions Sensei requires so they can do that?


  27. Felicity April 21, 2015 at 3:36 am #

    Hi There,

    Just wondering if anyone else has had any issues editing a user from WordPress when searching? I’m using WP 4.1.1 and Groups 1.4.15. I’m logged in as an Administrator. I can edit the user groups fine on the All Users page 1, however if I search for a user and try and edit the user or add them to groups I get sent to the Home page every time.

    I have a large db of users so can’t edit any of them atm which is a bit of an issue… Just found it after upgrading but can’t remember what version I had before that… Can you please help me debug or fix?

    Thanks so much!

    • kento April 21, 2015 at 10:28 am #

      Hi Felicity,

      Could you please activate debugging for your site? Ideally, do it on a staging site instead of your live site – see Debugging in WordPress for details on how to enable debugging please. This is to see if anything comes up in the debug.log that could give us some clues … once you have that enabled, try to go through the process you describe again and please use pastebin to post the contents of your debug.log and post a link to them as a reply to this conversation here (if it’s large, if it’s just a couple of lines you can post it in the comment).


      • Felicity April 22, 2015 at 9:34 pm #

        Hi There, thanks very much for your response!

        I have enabled debugging and nothing has come up in the debug.log or on the site….

        Of interest, I had this problem initially on even the User List page, I deactivated the plugin and reactivated it and it and the links started working and the Bulk Group edit started working. However now I have 3 users that when I search for them, I can’t edit them or bulk update them no matter what. Others I can… There’s no difference between any of the links… If I take out wp_http_referrer from the user-edit.php link it DOES work though…

        The /wp-admin/user-edit.php page returns 302 and redirects to the home page every time. As does the Bulk Group User update… I tried deactivating everything and going to the default 2015 theme, clearing cookies and browsing data and it’s just stuck. So then I deleted all the Groups plugin data (on stage) and it’s still happening…

        I even put a die(); statement on the user-edit.php page but that wouldn’t stop the page from redirecting… So it’s not coming from within the user-edit.php page, does that mean it’s probably .htaccess or cache?

        i’ve also tried reinstalling all the WordPress files… no change…

        On another note, I installed bbPress and Groups on another site and produced the same error when searching… I did a series of tests and deactivated and reactivated the plugins in various order, then wrote out some text in the /wp-admin/user-edit.php page, and then it just started working fine!!! It’s still working, even after I replicated the error, the only thing I changed was deactivating and reactivating the plugin… and writing something into user-edit.php
        My brain is about to explode as I can’t see any logic in any of it 🙁 So that’s the 2nd test site with 2 users I produced is working okay now…

        Not sure what else to try now! Sorry for the hassle! Wondering if I’m going crazy… 🙂

        • Felicity April 22, 2015 at 10:03 pm #

          Nope I was wrong… the second install doesn’t work again.. I added some users and changed the bbPress role of one to Participant and it’s doing it again. Sometimes when I search it goes to the home page sometimes when I edit…

          I can edit them all on the front list though… Definitely seems to be bbPress and Groups problem…

      • Felicity April 24, 2015 at 2:16 am #

        Hey Kento, thanks for your response. I debugged this thing like crazy and nearly went nuts so I spoke to the hosts and they’d been working on mod_security on the server which stopped some of the functions working. That’s why it was so bizarre! So turns out it’s all fixed and it wasn’t your plugins fault! The groups plugin is still as fantastic as ever! Thanks anyway!

        • kento April 24, 2015 at 12:41 pm #

          Hi Felicity,

          Great to hear that’s been resolved, thanks for the update on that! Do you have any particulars on what they have changed? It could be good to know in case someone else experiences a similar issue.

          I love to read feedback like your’s, “fantastic as ever” makes me more than happy to hear 🙂 If you have a couple of spare minutes, I’d like to ask you to post a quick review and rating on Groups over at – the feedback really helps to show how many people are putting the work to good use.


  28. EGFS April 20, 2015 at 7:51 pm #

    Hello Antonio. Thanks for your response. Can you explain a bit more what you mean by, “You can check your wp_postmeta database table (‘groups-groups_read_post’ as meta_key)”. Check the ‘wp_postmeta’ database table for what? For ‘groups-groups_read_post’? What does the “as meta_key” mean? Is this something I do within Groups > Options? Or is this something I have to open a databased viewer like PHP MyAdmin in order to see?

    Please clarify and explain what I should be doing. Thanks.

    • kento April 20, 2015 at 9:45 pm #

      What exactly do you want to know? You previously mentioned “I have it set up such that all Users belong to only one Group” and then you mentioned “I made some changes were I removed some Capabilities from some Groups and set them up in the simpler plan I described before.” – this doesn’t make any sense really. Please review the documentation for Groups which you have here. Also there’s no difference in how you would use Groups with respect to the version you have used before and the latest one. Also if you want to maintain a conversation please post as a reply to the appropriate reply you get, if you just post a new comment we don’t have a clue what you’re talking about as we’re getting a lot of new comments every day.

      • EGFS April 20, 2015 at 10:50 pm #

        Thanks Kento. I see the difference in the ‘Reply’ now. Sorry about that. At the bottom of the comments it says ‘Leave a Reply. Logged in as [username]’. I presumed that meant it would leave a reply based on the comment I made while logged in. I see now that there is a separate ‘Reply’ button. I will use that from now on.

        Below is my original post, since it seems that may have been missed with the different comments/replies not being connected to each other.

        (edited – please don’t duplicate or post huge chunks of information but rather link to or use pastebin)

        • kento April 21, 2015 at 10:50 am #

          Ok, let me have a look at the admin section please – something doesn’t make sense here and I suppose it’s how you’re testing it or have it set up. I’ll have a look and let you know what needs to be changed if you send admin credentials to support at itthinx dot com and please make sure to include a link to this conversation.

          • EGFS April 21, 2015 at 6:46 pm #

            I figured it out! As I was re-reading the documentation I came across a section that I didn’t pay much attention to the first time: Groups Hierarchy. As I read this more closely I noticed a couple of things for the first time
            1) Group Permissions are assigned by hierarchy as well as by explicit adding of capabilities.
            2) Permissions are inherited in the hierarchy.

            I had thought of and used the hierarchy as a way of visualizing the distribution of groups, I didn’t realize it was also assigning capabilities based on the inheritance of the hierarchy. THAT is why any member of a lower group (ie. Shop GMs) could see everything an EGFS Admin could – because it was inheriting those permissions in the tree! I designed the tree upside down when I thought it was for visualization only!

            That is the answer, I just need to either remove the hierarchy altogether or flip the hierarchy upside down so that it works properly (which is what I will do).

            Thanks for your help Kento!

            • kento April 21, 2015 at 7:19 pm #

              Thank you very much for the update on that!

              This is an issue with the user interface that needs to be fixed; the inherited capabilities should be shown and identified as such where the capabilities assigned directly are shown for each group. As it is right now, the inherited ones are hidden and thus lead to confusion just as in this case.

              We already had this on our todo list to be fixed, but I’m pushing it right to the top!

              Again many thanks!

              • EGFS April 21, 2015 at 7:49 pm #

                Thanks Kento. That sounds like it would be a big help. Right now I’m just glad I can finally get my site back. 🙂 I basically stopped doing any work on it last Wed when I ran into this issue because I didn’t know what was wrong or what it would take to get it right again. Having the interface show those inherited capabilities would be really helpful. Thanks for moving that up the priority list and for all of your help.

                On a side note, I apologize for my frustration earlier. My frustration is not with ITthinx support staff or even the plugins, it is with this comment system for support. I understand it a bit better now, which certainly helps, but it took 6 days for me to get to this point and during that time I felt like I was set adrift in the sea.

                It was an uncomfortable and frustrating situation to be in but what was worse was that it seems like it could be completely avoidable. I understand and appreciate how much it takes to setup and manage a support system (we have over 80 restaurants and a single support system to manage all of the guest feedback, complaints, questions, etc.). I do not begrudge any company some time to wade through support requests and get a response back, I understand that takes time.

                My issues with the current comment system.
                Lack of Comment Submission Transparency.
                With the current comment system, when a comment is submitted it either hides the comment altogether or shows the comment with the ‘Awaiting moderation’ tag. When that condition stays that way for a long period of time, you begin to wonder if the comment ever got into the system correctly.

                Lack of Comment Searchability.
                The current system provides no way to self-serve and search through issues that have already been discussed to see if maybe your issue has already been discussed.

                Cumbersome Navigation.
                The new remake, while nice looking, makes it much more difficult to even FIND the comments related to a specific plugin. For example, to even find the ‘Groups’ plugin webpage takes five clicks on the site. The plugins are not listed alphabetically (I can’t tell what the sort order is?) and there is no search capability to find the plugin you’re looking for.

                Easy Solution?
                A lot of this could be solved seemingly easily by using a support forum instead of comment system. For example, I purchased the Groups and WP Download Manager plugins at the same time. I had some questions/issues with both after getting them installed and initially configured. The WPDM site has a ‘paid user only’ support forum to search and ask questions. I was able to find many of my answers right away and those I couldn’t find I submitted a forum post about. The response time between Groups and WPDM support was similar, but with WPDM I could see my post right away and could back to it after a day or so easily by showing ‘my posts’. The whole experience ended up taking a much shorter amount of time and I didn’t feel any of the frustration during the process that I did with Groups. And the funny thing is, that experience had nothing to do with the support staff and the plugins themselves! Those were pretty much even between the two. It all had to do with the system used for support.

                Now maybe my experiences are an anomaly and not indicative of the ITthinx user base in general, but I wanted to share that just in case it was helpful for improvement.

                Thanks for your help and patience.

                • kento May 9, 2015 at 5:38 pm #

                  Thank you very much for your detailed feedback on the comments sytem. In fact, I pretty much agree with you on the public posting system, we do have a premium support forum area for customers, but the comments that we’re using here are still the ‘normal’ built-in comments provided by WordPress OOTB. So yes, that certainly can use some improvement taking into account the points you have outlined 🙂

  29. EGFS April 17, 2015 at 11:50 am #

    Comment Reply sent Fri 04.17.15 at 645am CST.

    I just noticed while re-reading my comment from Thu 04.16.15 at 630am CST, that there is something stated poorly. I said “I have it set up such that all Users belong to only one Group.” That could be easily interpreted incorrectly. What I should have said was, “I have it setup such that any one User does not belong to any more than one Group.” There are several Groups, and there are Users in each Group, they are just not in more than one Group.

    • antonio April 20, 2015 at 7:50 pm #

      answered here.
      Antonio B.

  30. EGFS April 17, 2015 at 11:41 am #

    This comment system STINKS! The last comment/reply I sent was over 24hrs ago, but it does not show up in the comments list! It never does. I submit a comment to the black hole, roll some dice, check my horoscope and pray that the comment will show up in the list several hours later! Sometimes it shows up, sometimes it doesn’t – too bad, so sad – for me. But I waste several hours with a non-functional plugin waiting to see if my correspondence even gets to somebody. It really is lot like using carrier pigeons to message. You put the bird up in the air, with no real indication of whether its going anywhere and have to wait 24hrs to see if you need to send another pigeon with the original message! With the timezone delay (it appears you are 5hrs ahead) it is VERY frustrating!

    I started this comment on Wed 04.15.15 at around 930pm CST. It is now Fri 04.17.15 at 630am CST and I am no closer to a solution.The only response of any substance that I’ve received (from Kento) apparently misunderstood my initial comment and had the problem reversed. Below is the response I sent yesterday morning, Thu 04.16.15 at 630am CST. This was one of those comments that apparently just never showed up? Can you understand how frustrating that can be?

    (edited – moved content here

    I will hope that this comment shows up. I guess all I can do is wait the requisite 24hrs to see if the comment shows up, that doesn’t even count if anyone responds. Very frustrating.

    • antonio April 20, 2015 at 7:49 pm #

      Hi EGFS,
      sorry, your comment did exist. It was with another username so I could not find it.
      The comments are published after moderation, but we are working to improve this.
      Antonio B.

  31. Aj April 16, 2015 at 11:48 am #

    Thanks for the response Kento.

    I’m not sure I understand the first part of your response. I have it set up such that all Users belong to only one Group. In the example I cited, the main problem I have is the opposite of what you responded – the ‘GM (All)’ group user is able to see the ‘access_admin’ restricted page. In fact, that user can see ALL pages, regardless of their access restrictions. The only way I could get a page to be hidden was to remove all access restrictions from the page.

    In regards to the second part of your response, I have not manually enabled caching, does that get turned on be default? Where could I go to check or change that setting?

    The ‘GM (All)’ user has always been assigned to that Group. I’m not sure if that makes a difference.

    One last thing. In this situation, everything was working fine under 1.4.13. I made some changes were I removed some Capabilities from some Groups and set them up in the simpler plan I described before. That’s all that was done and the ‘no restrictions’ behavior started immediately after. I had not done anything else with the system. It was only AFTER I could not find anything that seemed wrong with the setup that I updated Groups to 1.4.15.

    Thanks for your help.

    • antonio April 20, 2015 at 7:45 pm #

      maybe you have this problem. You can check your wp_postmeta database table (‘groups-groups_read_post’ as meta_key)
      Antonio B.

  32. Aj April 16, 2015 at 2:22 am #

    I had the Groups plugin (1.4.13) installed and running fine but things were getting complicated for me with Groups and Capabilities, so I went back in and simplified things. Now the access restrictions are not working at all. I’ve looked over my settings several times from several different angles and everything looks correct. What am I doing wrong?

    I have a basic Group hierarchy.
    – Admin
    – Corporate
    – Owner
    – GM (All)

    I then created some basic Capabilities.
    – access_all
    – access_owner
    – access_corp
    – access_admin

    I then added the Capabilities to the Groups in reverse order.
    – Registered (created for Groups: Blog Protect)
    — no capabilities
    – GM (All)
    — access_all
    – Owner
    — access_all
    — access_owner
    – Corporate
    — access_all
    — access_owner
    — access_corp
    – Admin
    — access_all
    — access_owner
    — access_corp
    — access_admin

    All seems good, simple and makes sense. Then I started to implement it. I took a Page and added the ‘access_admin (Admin)’ read access restriction. The plugin widget said, “Enforce read access for ‘access_admin (Admin)’. Only groups or users that have one of the selected capabilities are allowed to read this page.”

    I logged in as a ‘GM’ user and the page showed up in the Site Map and was able to viewed. What am I doing wrong?

    In ‘Options’ I have all four of the Capabilities added as well as the default ‘groups_read_post’. I did not add ‘groups_read_post’ to any of the Groups, but I did test adding it and it made no difference.

    Any help would be greatly appreciated. I have since updated Groups to 1.4.15, but the issue still persists.

    • kento April 16, 2015 at 11:38 am #

      Hi, regarding your page which is restricted by access_admin – the user you have used to check access must belong to another group apart from the GM (All) group, otherwise the page would be hidden. Another possibility is that you have caching enabled for logged in users, if that is so, you must disable that because it’s not compatible with group-based access restrictions.

      • EGFS April 16, 2015 at 10:12 pm #

        I left a comment about 10hrs ago, but I still don’t see it in the comments list. Did the comment get submitted successfully?

        • antonio April 17, 2015 at 5:39 am #

          Hi EGFS,
          sorry, your last comment is on 2015/03/13 at 1:31 pm.
          Antonio B.

  33. Andriu April 15, 2015 at 2:37 pm #


    Is it possible to set the plugin up so that a “Group Administrator” (defined by a WP Admin) can manually add new users to his group only?


    • antonio April 16, 2015 at 8:15 am #

      Hi Andriu,
      in Groups->Options you can set permissions by roles.
      Antonio B.

  34. Matthew Keath April 15, 2015 at 11:27 am #


    Is there are way to redirect groups to different pages after they have logged in?

    Thanks 🙂

  35. Dan April 14, 2015 at 5:08 pm #

    Hello, I using Groups and woocommerce Groups to restrict access to the reservation page and use Groups 404 to redirect to signup page on my English and French site. All works great until you add another language to the loop. I’m using WPML and WooCommerce Multilingual and when a client tries to access the reservation page before being a member, they are faced with a blank page. My default (english) homepage is set at and my french homepage ends with
    Is there a way of fixing this?

    Thanking you in advance.


  36. golfstrokes April 13, 2015 at 8:35 pm #

    I’ve been having an issue with Groups when combined with WooThemes Sensei. The issues are on two fronts:

    1) Even with the “admin overrides all group restrictions” setting checked, I cannot see any courses with the standard Sensei “mycourses” page. It used to show me all the courses (as if I was a customer), now it render nothing but a blank screen. If I type in the URL for a specific (protected) course, I can see the course; I just don’t get any courses listed with the mycourse page extension.

    2) If I create a user and add them to a group associated with a protected Sensei, it doesn’t grant access to the course. The only way that I have found to give the user access is to generate a sale through woocommerce. Is there a way that I can grant access to these courses without having to process a $0 sale?

    • kento April 15, 2015 at 2:15 pm #

      #1 Please review my previous response regarding WSOD – if that’s what happens, you should enable debugging in WordPress and please post the conents of wp-content/debug.log after trying to access one of the pages where that happens. If there’s an error in your setup then we can check the log to see what is causing it.
      #2 How exactly have you set it up? Please give details about the group and capability used to restrict access and also about the user.

  37. Doug April 11, 2015 at 4:45 am #

    The new update doesn’t work with any major caching plugin. I had to turn off WP Rocket due to the conflict. I have since tried W3 Total Cache and WP Super Cache. Both of those result in the same symptoms.

    The symptoms are that when a user attempts to view their course list in WooThemes Sensei (courses are protected by groups), the page returns blank.

    Can you tell me what caching plugins the new Groups update DOES work with?

    • kento April 15, 2015 at 2:06 pm #

      Hi Doug,

      It does work with caching plugins and of course that includes the major ones. Which settings are you using please? Regarding the blank page, do you mean a WSOD or just a 404? You mention W3TC, it works with that plugin and also with Super Cache. Please detail the exact steps that you have taken so we can reproduce any issues you might have experienced, if there’s anything depending on your particular setup, then I’d be very interested in finding out what happens so it can also be taken care of.


  38. Rob April 9, 2015 at 1:58 pm #

    Hi, I’m currently using groups with WooCommerce & WooSubscriptions to restrict content in posts.

    I would like users to be able to click on the post but then be redirected (using the groups 404 plugin) to a ‘sign up for access’ page.

    However, when you enforce read access to the posts, all the abilities such as being able to display the featured image, putting the post link in a menu etc, become invisible to non registered users.

    Therefore, at the moment, I’ve been wrapping content in the groups shortcodes to display content depending on the users group. As you can imagine, with lot of posts, this can be quite time consuming.

    -My question 🙂
    Is it possible to still show non-registered users the menu links, featured image, post title, excerpt etc and then once they try to click on the post, are then redirected to a Sign Up Page.

    Many thanks for your help.

  39. Doug April 9, 2015 at 2:58 am #

    I updated the Groups plugin to 1.4.15 which was intended to fix a certain caching issue. Unfortunately, it is cause a caching issue for me. I use WP Rocket (2.5.3 and/or 2.5.4) and with the new version of Groups my protected content does not render at all.

    Thankfully I was able to get the content to render by deactivating my WP Rocket plugin, but I need the performance of WP Rocket’s caching and the CDN I have configured with it.

    Can you look into the incompatibility with WP Rocket?

    If not, is there a way for me to get my hands on a prior version of the Groups plugin so I can return my system to a performant state?

    • kento April 15, 2015 at 2:10 pm #

      What exact settings are you currently using with their plugin? Do they implement wp_cache_get() fully? I’ve tried to access their site but am getting a 502 Bad Gateway …

  40. Jennifer April 5, 2015 at 2:35 pm #

    Hi there.

    I’m just following up on this thread…

    We’re very anxious to find a solution to this issue as we have several customers waiting for the functionality. Anything you can do to assist will be greatly appreciated.


    • kento April 7, 2015 at 3:48 pm #

      Hi Jennifer,

      Can you please check if your problems persists with the latest version?


  41. Josh April 3, 2015 at 9:12 pm #

    Actually, if I understand you correctly. Can I create a new group called something other than “registered,” and alleviate this problem? Then I can take those that are registered and add them manually to the new group I have created?

  42. Josh April 3, 2015 at 9:11 pm #


    Thank you for the response, however, I believe you just repeated what I already know…

    As I said up above
    I DON’T want them AUTOMATICALLY added to registered. I need to to add them manually, once they have been approved.

    I’m aware of bulk editing and have gone through to remove the ones that are being added. BUT, there is no way to sort my list of retail customers that is 17,000 users long, so I have to scroll through all 17,000 users manually and “look” to see who has been registered.. Very inefficient and time consuming.

    Please tell me that there is a way to not have users automatically “registered.”

    If not, I’m afraid this plugin will not work for me.

    • kento April 3, 2015 at 9:55 pm #

      Hi Josh,

      It seems you’re misunderstanding what he’s trying to say. There is a Registered group to which all users are added automatically. You can’t and don’t need to change that. If you want to add users manually to a certain group, it isn’t the Registered group but a group that you specifically create for that purpose. Once you have created that group, you can proceed to add those you want to it.


  43. Josh April 3, 2015 at 2:57 pm #


    I’m using this plugin already and it’s working great except for 1 major detail. When our customers purchase a product a user profile is created for them. When this user profile is created it is automatically adding them as a member of the group (I only have/need 1 group.) I don’t want them to be automatically added to the group and use it more of a access granted feature. Where once they are approved I can add them to the group manually.

    I went through all the settings and don’t see this option. Please help, thank you.

    • antonio April 3, 2015 at 8:54 pm #

      Hi Josh,
      when a new user is registered, he is added to ‘Registered’ groups.
      If you need to add an user to a group, you can do it in Users->All Users editing the user or with the bulk actions available above the user’s table.
      Antonio B.

  44. Justine April 3, 2015 at 1:31 pm #

    We are looking at this plugin and were wondering if it’s possible to do this:

    When a user logs in, they are redirected to their “user” page – the user page should be different for all users, and users should not be able to access other users’ personal page

    • antonio April 3, 2015 at 9:00 pm #

      Hi Justine,
      To redirect when an user logs in you can use Peter’s Login Direct plugin.
      To restrict access to a page you can use Groups, but in your case you’ll need create a group by user. If you need to create frontend profile pages, maybe you should search in WordPress Plugin directory.
      Antonio B.

  45. Karim April 1, 2015 at 7:03 pm #

    We have created that but to get the content etc. we need it to be on the single.php template page. Currently we don’t even get there as it gets redirected to the 404 before hand

  46. Karim April 1, 2015 at 6:45 pm #

    We’re using the groups and groups for woocommerce plugin both. I would like to still direct users to the restricted pages vs. 404 (or the 404 redirect plugin forcing them to a single page) which has the logic to only show partial content and then a link to buy access. Is this possible do do on a large scale basis vs. using shortcodes on hundreds of old files? Any help would be very very helpful.

    • kento April 1, 2015 at 6:54 pm #

      Hi Karim,

      You could use a teaser page for each restricted content and put a link to it there, e.g. style it as a “Get Access” button – you could also link to a general Sign-Up page on each of the teasers.

      Would that be an option?

      • Karim April 2, 2015 at 12:59 pm #

        Unfortunately, every single post has the option of being partially viewed. Is there a way or extension that will allow me to stop the 404 redirect (again, not like the 404 extension) BUT still pass the access restriction to the original page? Could I add a new membership group for all or something to that effect?

        • antonio April 8, 2015 at 7:57 am #

          Hi Karim,
          as @Kento says you can create a page with a “Get Access” button. And using Groups 404 redirect set this new page as destination.
          Antonio B.

  47. Rob Kinnear March 30, 2015 at 4:33 pm #

    Ok – I would like to build a template that shows a login form when the user in not part of a group but then shows the full content when logged in. Is it possible to show and hide parts of php template code using the groups plugin?

    • antonio April 1, 2015 at 1:45 pm #

      Hi Rob,
      you can use [groups_member] and [groups_non_member] shortcodes. If you need php code, I hope this can help you as reference:
      $user_id = get_current_user_id();
      if ( $group = Groups_Group::read_by_name( 'Registered' ) ) { // if the Group exists
      if (Groups_User_Group::read( $user_id , $group->group_id )) { // if the user_id belongs to this group

      Antonio B.

      • Rob Kinnear April 1, 2015 at 2:20 pm #

        Ok – thanks Antonio. Looks like that should help me with what I need!

        • antonio April 1, 2015 at 3:10 pm #

          Perfect 😉

          • Freya May 24, 2015 at 9:36 pm #

            I’m having the same issue. Which php should you add this to? Or where on Groups?

            Cheers, Freya

            • antonio May 25, 2015 at 8:55 am #

              Hi Freya,
              you can use the php code changing the ‘Registered’ group to your group’s name. Or calling the shortcode from the php file.
              Antonio B.

              • Freya May 25, 2015 at 3:19 pm #

                Thanks Antonio, appreciate your response! I apologise, but my knowledge of altering the php on widgets isn’t very advanced, although I’ve changed general php before.

                Am I supposed to add this to the functions.php, or is there are php file that specific for this widget? Is so, where do you find it??

                • kento May 25, 2015 at 6:23 pm #

                  Hi Freya,

                  Can you please clarify exactly what you need help with? You mentioned you have the ‘same issue’ but I don’t see what exactly you need help with. Maybe you don’t even need to fiddle with PHP at all, if it’s just about using the shortcodes then it’s very easy. Also you mention a widget … which widget do you mean?


                  • Freya May 27, 2015 at 6:08 pm #

                    I have the ‘same issue’ because I believe we were asking for the same thing. Perhaps we’re not. I am working on a website that is hiding pages of the website when you’re not logged in. I would like these pages to always be available on the menu, but direct to a login if the user isn’t logged in.

                    I apologise for using the term widget.

                    If short codes are easier, fantastic! Could you give me some clear direction on where to place the short codes?

                    • kento May 31, 2015 at 5:05 pm #

                      Hi Freya,

                      Thanks for clarifying, that’s easier then. If you just want the menu items to be always visible, although they point to a page that should be protected from unauthorized users, then you can use Custom Links under Appearance > Menus. Add a custom link to the menu by indicating the URL of the restricted page and a title. It will always appear in the menu, even though the page is restricted. Now to have the visitor redirected to a specific page or the login, you can use Groups 404 Redirect, that would complete what you try to achieve I think.

                      Please feel free to ask if you need further help.


      • tystra May 14, 2015 at 8:22 am #

        How would you go about using the [groups_member] shortcode with multiple groups? In the shortcode you just need to add a comma, however it is not that simple when converted over to PHP code. How can you display the content to one group or another group using the above example? Thanks in advance!

        • kento May 15, 2015 at 9:22 pm #


          With multiple groups you would simply build a conjunction using && or a disjunction using ||, there’s nothing special about that and in fact it’s more flexible than with the shortcodes.


  48. Rob Kinnear March 27, 2015 at 1:31 pm #

    Hi – I am having problems with the homepage of my site which keeps showing 404 page not found to non-member when I restrict access to it (fine without any restrictions). All other restricted pages are working fine (am using the Groups 404 redirect to send non-members to the wp-login.php). It seems to work when I redirect to a page or post but not the wp-login. Any ideas of what could be causing this?


    • kento March 27, 2015 at 10:42 pm #

      Hi Rob,

      What you describe sounds like it’s working as expected. If you restrict access to the home and are using the 404 redirect, it should avoid a redirect loop and thus come up with a 404 if you have it redirecting to the home page.


  49. Rubén March 26, 2015 at 12:30 pm #

    Hello! I use the plugin is Group Pricing. The problem is that it makes me discount on Regular_Price , and must do so on the SALE_PRICE .

    • antonio March 26, 2015 at 3:39 pm #

      Hi Rubén,
      please ask to the plugin author website in, I am happy to help you there.

    • Stephen May 19, 2015 at 1:39 am #

      Awesome plugin. I’m using Groups in conjunction with WooCommerce. I’m looking for something very basic but can’t quite see it.

      I simply want to echo out the Groups name of each customer on the admin-new-order.php email template.

      So that the Shop Manager gets a message such as:
      Group(s): Registered, Special Customer

      Or if it can’t easily spit out an array, just check one or two of the groups, eg. if ‘Special Customer’ then echo ‘Special Customer’!!

      what’s the exact php to spit this out?

      • kento May 21, 2015 at 11:09 pm #

        Hi Stephen,

        Thank you very much for your kind feedback on the plugin 🙂 Regarding your question, it’s pretty simple. You can get a Groups_User object for the current user:

        $groups_user = new Groups_User( $user_id );

        And then you can access the groups that the user belongs to using


        which is an array of Groups_Group from which you can get the group name and other properties.

        I hope that helps. If you could spare a couple of minutes and do a quick review on Groups, that would be much appreciated 🙂


        • Stephen May 31, 2015 at 11:36 pm #

          Hi Kento, thanks very much for your reply. Very helpful and great of you to respond to everyone as best you can.

          Could you please remove me from email comments from this thread. Your ‘manage email subscription’ links don’t appear to be working. I’m sure this would be affecting other users of your helpful site too.

          Thanks and best regards.

          • kento June 1, 2015 at 7:57 pm #

            Hi Stephen,

            You’re very welcome, sorry for the inconvenience with the comment subscriptions – we’re in the process of moving to a better solution (the current one really sucks).


    • Laurent July 6, 2015 at 7:56 am #


      Just installed the groups plugin (and bought group file access alongside), installed everything and it runs fine.

      Just got a question about the option to show / hide content based on the group of the user (works fine too btw) Is it possible to add content visible only for non registered users (not tied to groups) for exemple :

      This content / page is only visible for registered / members, please login first [login page url]

      And that content will be hidden once the use is logged in



      • kento July 6, 2015 at 8:54 am #

        Hi Laurent,

        Yes that would simply be:

        [groups_non_member group="Registered"]
        This content / page is only visible for registered / members, please login first [login page url]

        Which basically means, if the viewer is not a member, the content enclosed is shown. You can also make this more specific, if you indicate a group e.g. Registered in the group attribute. See


        • Laurent July 6, 2015 at 3:46 pm #

          Thanks for the quick reply, will definetly try that asap.

          Thanks again,


Leave a 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