Groups is designed as an efficient, powerful and flexible solution for group-oriented memberships and content access control.

It provides group-based user membership management, group-based capabilities and access control for content, built on solid principles.

Groups is light-weight and offers an easy user interface, while it acts as a framework and integrates standard WordPress capabilities and application-specific capabilities along with an extensive API.

Enhanced functionality is available via Official Extensions for Groups.

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.

Documentation

The official documentation is located at the Groups Documentation pages.

Features

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

Access to posts, pages and custom post types can be restricted by group.

If access to a post is restricted to one or more groups, only users who belong to one of those groups may view the post.

Fully supports custom post types, so that access to post types such as products or events can easily be restricted.

  • 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: ,
  • Control access to content by capabilities: show (or do not show) content to users who have certain capabilities –
    Shortcodes: ,
  • Blocks: The Groups Member block allows to restrict the visibility of its content to members of selected groups.
    The Groups Non-Member block hides its content from members of chosen groups.
    The blocks can be nested to provide multiple layers of access control to content.

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

  • Enable access restrictions by custom post type
  • An optional tree view for groups can be shown when desired
  • Provides its own set of permissions
  • Administrator overrides for tests
  • Cleans up after testing with a “delete all plugin data” option

Framework

  • Groups is designed based on a solid and sound data-model with a complete API that allows developers to create group-oriented web applications and plugins

Multisite

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

Extensions

Enhanced functionality is available via official Extensions for Groups.

Groups is a large project that is providing essential functionality to tens of thousands of sites since 2012. By getting an official extension, you help fund the work that is necessary to maintain and improve Groups.

  • Groups WooCommerce : Sell Memberships with Groups and WooCommerce – the best Group Membership and Access Control solution for WordPress and WooCommerce.
  • 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.
  • WooCommerce Group Coupons : Automatically apply and restrict coupon validity for user groups. Offer exclusive, automatic and targeted discounts for your customers.
  • Groups Drip Content : Release content on a schedule. Content dripping can be based on user account creation, group memberships and specific dates and times.
  • Groups File Access : Allows to provide file download links for authorized users. Access to files is restricted to users by their group membership.
  • Groups Restrict Categories : Features access restrictions for categories, tags and other WordPress taxonomies, including support for custom post types and taxonomies.
  • Groups Forums : A powerful and yet light-weight forum system for WordPress sites.
  • Groups Import Export : Provides import and export facilities around users and groups.
  • Groups Newsletters : Newsletter Campaigns for Subscribers and Groups, also integrates with WooCommerce.
  • Groups Gravity Forms allows to add users to groups automatically, based on form submissions.
  • Widgets Control Pro : An advanced Widget toolbox that adds visibility management and helps to control where widgets are shown efficiently.

Get involved

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

Feedback is welcome!

If you need help, have problems, want to leave feedback or want to provide constructive criticism, please leave a comment below.

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!

Stay informed or contribute

Follow @itthinx (or on Reddit, Mastodon, … ) for news related to Groups and other plugins.

Get development notifications, contribute code or open issues at the repository on GitHub.

Translations

Translations have been contributed by many from the WordPress community, via the GitHub repository Groups, the section for Groups on Translating WordPress or as direct contributions.

Where to get Groups

Groups is free. You can install it directly from your WordPress dashboard or download it from the Groups plugin page and install it manually.


Comments

2,691 responses to “Groups”

  1. Hi,

    we’ve been using Groups for some time. There are two issues I see:

    1. An incompatibility with WooCommerce (+1 Mio installs):
    When a product is set to be visible only for shopmanagers, then the ordinary non-logged-in user still sees html which refers to these ‘hidden’ products:

    within the

    This gives several 404er from the Google bot and other crawlers and it also surfaces a secret to the public (non-public URL and title are shown).

    2. Similar things happen with regards to the https://de.wordpress.org/plugins/google-sitemap-generator/ (+2 Mio installs):

    Same ‘hidden’ products (only visible to admin or shopmanager) are still exposed by the sitemap.xml. And again this exposes “secret” information and also Google Webmaster tools complains about 404er.

    If you want, drop me a mail, I am happy to provide a website for both cases by PM.

    Kind regards,
    Gerd

    1. antonio Avatar

      Hi Gerd,
      Sorry for the delay.
      1.- If you have a product restricted to a group, only the members of this group should see the product. non-logged-in users should get a 404. With Groups 404 redirect you can change the destination.
      2.- I have not tested this plugin, but I guess it’s okay to index all products, regardless of who can see them. Maybe Groups 404 Redirect can help you redirecting to a “Be a member” or registration page.
      Kind Regards,
      Antonio B.

      1. Hi Antonio,

        thanks for the reply.

        1. The product itself is 404, but it is hinted at from other products’ html. That’s what I meant. In other visible products the restricted products are always linked to in the head with “link rel=’prev’” and “link rel=’next’”. This is like having a safe (that is secured) but at the same time setting about path signs saying “This way to the safe”.

        2. Google complains about it. Why list products to be indexed if they are (rightly) not to be indexed? The root cause solution would be not to tell Google to index pages which are 404 anyway. So I think Google is right in here. Thought I do not know if this really results in a SEO punishment (Google’s SEO formula is secret) but I guess so since it’s a website’s malconfiguration. Would it be hard to make Googe Sitemap Generator respect that restricted pages should not be indexed? Maybe there’s a filter for this…

        Kind regards,
        Gerd

        1. antonio Avatar

          Hi Gerd,
          1.- I guess your ‘prev’ and ‘next’ links are added by your template or another plugin, so it does not filter restricted products.
          2.- I’ve been looking at the Google XML Sitemaps plugin, but I can not find a filter to use it. So you would have to do it manually by adding the post’s ids to be excluded in Settings->XML-Sitemap using the ‘Exclude posts’ option.
          Kind Regards,
          Antonio B.

  2. Hi,
    I am using the Groups plug-in within the WPLMS theme following a major theme and plug-in update and have found that when the Groups plug-in is activated, all the LMS courses I have previously created are hidden from view in the backend ie. cannot view or edit courses. When I deactivate the plug-in, the courses reappear. I have a range of capabilities in place to only display courses belonging to certain groups. I created two new courses but they don’t seem like they are connected with the previous courses (pre-update). Is Groups still supported in WPLMS? If so, what can I do to ensure group capabilities are protected, student results data is retained and courses display as normal?

    1. antonio Avatar
      antonio

      Hi Max,
      Really I have not tested this theme. If you have updated from Groups 1.x to Groups 2.x, maybe you need to enable the legacy mode from Groups->Options
      Also you can check if you have any groups restriction on the courses enabling the ‘Custom Fields’
      http://oi65.tinypic.com/b7127a.jpg
      Kind regards,
      Antonio B.

  3. Ryan Brinkhurst Avatar
    Ryan Brinkhurst

    No Matter what I do, disable plugins, start with plain theme – I can’t get this plugin to work. I’ve tried on two different servers. I keep getting “You cannot set any access restrictions.” – I’m the admin, and on the options page, I have all permissions.

    1. Ryan Brinkhurst Avatar
      Ryan Brinkhurst

      For anyone who runs into the same issue, I had to deactivate, delete, and reinstall the plugin

      1. antonio Avatar
        antonio

        Hi Ryan,
        Maybe the files were corrupted.
        Thanks for sharing your solution.
        Kind Regards,
        Antonio B.

  4. Sergio Avatar

    Hello, I want to use buddyforms to create form in the front end and I want to put in the form the group field.
    To make this, I have to know the custom fields ( post meta ) .

    Here I have the intructions to know the field name, but I can’t find this…
    http://docs.buddyforms.com/article/369-locate-the-post-meta-needed-by-other-plugins-to-use-the-custom-fields-in-the-form

    Someone can help me?

    Regards,
    Sergio

    1. antonio Avatar
      antonio

      Hi Sergio,
      Groups are not post meta, this data has is own database table. You could get the user’s groups, and use this on the code that this page is talking.
      Kind Regards,
      Antonio B.

      1. Sergio Avatar

        Thanks Antonio! I will try!!
        Sergio

  5. filippo Avatar
    filippo

    hi ther’s a way to reset group id’s ? ty

    1. antonio Avatar
      antonio

      Hi filippo,
      You can do it using mysql instruction “ALTER TABLE wp_groups_group AUTO_INCREMENT = 1”.
      Be careful with this, you can damage the database, makes a database backup before.
      Kind Regards,
      Antonio B.

  6. Hi there, I use your Groups plugin with Woocommerce, Since the latest upgrade to Woocommerce, there seems to be an issue with double discounting using your groups plugin. For some reason, for example, when a customer is assigned to a group giving an 8% discount, it gives an 8% discount but for some reason then a further 8% discount is applied. In this scenario, not other discounts or coupons are applied but it is doing a double discount. An example is:

    Product Price: £34.99
    8% Discount Price £32.19 – This is the price it should be sold at but it is selling it at £29.62 which is an additional 8% discount (£32.19 minus 8%).

    Are you aware of any issues with Groups since the Woocommerce upgrade?

    1. antonio Avatar
      antonio

      Hi Matt,
      Are you using any plugins for discounts?
      Kind Regards,
      Antonio B.

      1. Matt Conrad Avatar
        Matt Conrad

        Hi Antonio ,

        Thanks for getting back to me. Just WooCommerce Dynamic Pricing is installed and used with Groups to define a percentage discount. No other discounts are applied. Are you aware of any issues?

        Matt

        1. antonio Avatar
          antonio

          Thanks Matt,
          You should ask the creator of the plugin, it seems a question related to it.
          If you are using this Woocommerce Dynamic Pricing, it seems to be based on roles instead of Groups. Woocommerce Group Pricing is based on our Groups plugin.
          Kind Regards,
          Antonio B.

  7. Hi Antonio,

    I am developing an site with thematic sections that can be accessed navigating the main menu. Not all types of users are supposed to be able to access all sections so I am using the “Groups” plugin to prevent member from content they do not have permission for. One problem is that leaves users with a main navigation menu with many items with content they are not allowed to access only showing them the phrase “you are not allowed to access this content”.

    It would be great if I could use different versions of the navigation bar and showing each user groups a menu only hosting items they are actually allowed to access and read the content. Do you know of any way how I could accomplish showing different navigation menus to different user groups? I could target the menus to the different groups defined by the “groups” plugin or to the respective capabilities.

    Thank you and best regards,
    Max

    1. antonio Avatar
      antonio

      Hi Max,
      You could display only the menu item according to the user group.
      You can use the Menu Item Visibility Control plugin using code like this: current_user_can(‘your_capability’);
      Kind Regards,
      Antonio B.

  8. I have WP 4.7.4 and Woocommerce 3.0 and I can not activate Groups plugin. Whenever I try to activate it I get a message “This plugin can not be activated cause there is a fatal error”.

    What can I do?

    1. antonio Avatar
      antonio

      Hi taich,
      maybe the downloaded files are corrupt, please remove your current version and re-download the plugin.
      If the problem persists, you can enable the WordPress debug, and check if there is another problem.
      In order to enable debugging, edit your wp-config.php file and replace the following line:
      define(‘WP_DEBUG’, false);
      with these lines:
      define('WP_DEBUG', true );
      define('WP_DEBUG_DISPLAY', false);
      define('WP_DEBUG_LOG', true );

      When you enable the plugin and there is a conflict, then a debug.log file on wp-content folder will be created.
      Kind Regards,
      Antonio B.

  9. Andrew Schmitt Avatar
    Andrew Schmitt

    Hi,

    I’m migrating our site to Groups 2.0 and things are straightforward. The new approach makes sense.

    We had some custom code that would display which permissions were required to read a post if the user didn’t have permission. It was a major expansion of your code that would display an excerpt to a user who did not have the proper capability to read a post.

    I’ve pasted a fragment below. We set up our content such that capabilities mapped to categories. The code would would look at the required capabilities of the post, match them to post category slugs, and then display the category names/permalinks at the end of the tag or excerpt. This would allow a user to know what subscription was required.

    The problem is with 2.0, this will not work. Luckily, the group names also map exactly to the category slugs. I need the function that returns the group memberships required to view the post, not the capabilities. If $read_caps and $grc_term_read_caps is fed from groups rather than capabilities the code should work.

    I believe the functions that must be changed are:

    $read_caps = Groups_Post_Access::get_read_post_capabilities( $term_id );

    and


    $grc_term_read_caps = get_option( 'grc_term_read_capabilities', array() );

    Unfortunately the contractor who wrote this code is unreachable. I know you don’t support custom code but I thought this might be a straightforward fix. I’m happy to provide the rest of the code in its entirety if others wish to use it.

    [edited]

    1. Hi Andrew,
      Sorry, the comment system filters the code (if you need to add code in your comments, please use some system as pastebin.com)
      You can use:
      Groups_Post_Access::get_read_group_ids( $post_id ); // Returns a list of group IDs that grant read access to the post.
      and
      Groups_Restrict_Categories::get_term_read_groups( $term_id ); // Returns an array of group IDs that grant read access to the term.
      Kind Regards,
      Antonio B.

  10. Hi Guys
    Great plugin – thanks so much.
    I’ve got it working with woocommerce to hide Wholesale products from users not in a Wholesale group.

    The problem I have is that anyone can still see a Product restricted as Wholesale in the Related Products of another (not Wholesale) product in the same category.
    Is there a fix for this.

    Wholesale product http://dev.susantereba.com/product/vans-old-skool-ultramarine/ (Filtered as expected)
    Non-wholesale product http://dev.susantereba.com/product/adidas-originals-superstar/ (Can see the above product in Related section)

    Many thanks. James

    1. Hi James,
      We are working on an update that include this, while you can use this code (you need to add this in your functions.php file)
      Kind Regards,
      Antonio B.

  11. Dear Antonio,

    regarding the use of intthinx groups plugin combined with visual composer I am facing a problem that I hope you can help me out with.

    So far I was using the plugin to restrict access to entire pages to user groups with permission to see the sites content.

    I would have a header section visible to all users followed by the content of the respective page only visible to the group of users having permission. The structure was like below.

    Header Content

    [groups_can capability=""]

    Page content restricted to user group. This page content is structured using visual composer and consists of many page sections, rows, fancy text, imgs etc.

    [/groups_can]

    I am havin some trouble using the groups shortcode in combination with visual composer in certain cases but I found ways to make it work for the most part in this particualar situation.

    But now I am facing the situation that I have to restrict the entire page to be visible only for users who are registered and logged in, but even for those users (regisered, logged) certain sections of the page should be visible, while others should still be restricted.

    I tried solving this situation with the below structure below.

    Header Content

    [groups_can capability="A"]
    Page content that even if the users are registered and logged in should still be invisible . (This page content is structured using visual composer and consists of many page sections, rows, fancy text, imgs etc.)
    [/groups_can]

    [groups_can capability="B"]
    Page content that should be visible for registered and logged in users with permission. (This page content is structured using visual composer and consists of many page sections, rows, fancy text, imgs etc.)
    [/groups_can]

    [groups_can capability="A"]
    Page content that even if the users are registered and logged in should still be invisible . (This page content is structured using visual composer and consists of many page sections, rows, fancy text, imgs etc.)
    [/groups_can]

    This unfortunately did not work at all and the page layout got broken in many ways.

    My question is how can I stack differen levels of permissions on top of each other using visual composer?

    In a situation where the enire site is only visible to registered and logged in users, once logged in only certain sections are visible to user group A while others are visible to user group B this seems necessary.

    Hopefully you can help me with this,
    best regards,
    Max

    1. antonio Avatar
      antonio

      Hi Max,
      Sorry for the delay. Please take a look at this solution that I have created, I think that it can help you.
      Kind Regards,
      Antonio B.

      1. Hi Antoni,

        this sounds highly exciting and interesting. I tried as you said but did not manage to succeed. Since I did the changes I cannot start my site anylongoger, getting the message “error when trying to connect to database”

        could this be due to the fact that I got another wordpress version or visual composer version than you were talking about.

        When looking at my code for the original vc_row.php element it is like below (inlcuding your changes), so i spotted some differences.

        I posted you my vc_row.php and functions.php using those pastebin links.

        https://pastebin.com/KE1SVxy4

        https://pastebin.com/9GnhMvy2

        also when copying the original vc_row.php my path is slightly different from the one you mentioned its /wp-content/plugins/js_composer_themes/includes/templates/shortcodes/ just in case this matters.

        so “js_composer_themes” instead of “js_composer”

        Thank you for your supports, best reagards,
        Max

        1. antonio Avatar
          antonio

          Hi Max,
          I have tried using your codes, and it seems to work fine.
          The error to connect to the database doesn’t seem to be related with these changes.
          Please try to undo your changes and check if your web is alive.
          If this is the problem, you can try to do the changes step by step:
          1.- Add the new vc_row.php file to your child theme with the changes.
          If the website is alive, then:
          2.- Update your functions.php file with the changes.
          If the problem persists, you can send me a copy of your js_composer_theme to antonio[at]itthinx[dot]com and I’ll have a look at this.
          Kind Regards,
          Antonio B.

          1. Hi Antonio,

            thank you for your suggestion and support. I did try this and I am quite amazed to see that this really workes, the shortcode vc_row does now have this two additional input fields. Nevertheless entering capabilities into either the “groups_can” or “groups_can_not” field does not seem to have any effect. Either way the content within the row the capability restriction value was set for can be seen by both users in my tests. Looking a the code of the site I can see the see the “groups_can” shortcode not iplemented in the vc_row command but am missing the “/groups_can” closing shortcode. Is the /groups_can short code not necessary when working this way or does it have to be set manually.

            Also I tried to do the same edit for the Visual Composer Page Section short code editing the vc_section.php the same way you discribed for the vc_row.php but could not succeed there. (no additional “groups_can” and “groups_can_not” input field with the Visual Composer Short Code menue. This seems to be a very promising way of tackling this issue so I am excited to find out if you can help me make it work. Thank you for your great support

            1. Hi Max,
              Sorry for the delay.
              Please send me a copy of the file that your are using with the changes, and I’ll test it.
              Kind Regards,
              Antonio B.

              1. Hi Antoni, I did send you an email with the login details for the dashboard as requested. Additionally I will send you another mail with the files with the changes.

                Friendly greetings,
                Max

  12. Peter Mueller Avatar
    Peter Mueller

    After updating to version 2.1.1, the plug-in no longer worked. I had to remove it with the option “delete all data on deactivation” and reinstall.

    1. Hi Peter,
      That should not happen, we’ll review it.
      Thanks,
      Antonio B.

  13. I have a registration page for new users on my WordPress site. I would like anyone who completes the registration to be automatically added to a group. Is there a way to do this?

    Currently, I am adding them in manually, but this is not ideal.

    Thanks for your help!

    1. Hi Alex,
      You can use this code (you need to add this to your functions.php child theme file). If you want that your users can choose between groups, you have available this plugin.
      Kind Regards,
      Antonio B.

  14. Hi there,

    I got a question and I actually don’t find the answer. You can help me for sure.

    I got three level of users. In my tree group there are :

    Admin -> Group of Editors 1 -> Group of Authors 1
    -> Group of Authors 2
    -> Group of Editors 2 -> Group of Authors 3

    If i’m connected as Author in group 1, i want that (without changing anything cause i haven’t got the rights) my group and sup groups added automatically. Like that all users in the same group can edit my page, but my editors and sup admin can too…

    Can you say me or give me an exemple of how to do that ? Only add automaticaly “my group” and all “parent groups” to the page.

    Keep doin’, your plugin work like a charm !
    Regards

    1. antonio Avatar

      Hi Lucien,
      It’s really the other way around.
      If you have:
      Level 1 –> Level 2 –> Level 3
      (user1) (user2) (user3)
      (post1) (post2) (post3)

      User1 can see post1
      User2 can see post1 and post2
      User3 can see post1, post2 and post3

      This is how subclasses, if I have: Animals -> Mammals -> Dogs
      If I’m a cat, I’m mammal. So I can see what the animals see and what the mammals see, but not what the dogs see.

      I hope my example helps 😉
      Kind Regards,
      Antonio B.

  15. Sorry, I just found my question is answered by you, pls remove my duplicate question

    1. antonio Avatar

      Done, don’t worry.

  16. i am using groups plugin

    I have created a “group1” group
    I assigned user-a to this group1 group
    when I use user a to write a new post,
    How can i restrict he choose group to “group1” ? because this user can leave the group to empty

    how to avoid user fill empty in the group??

    Calvin

    1. antonio Avatar

      Hi Calvin,
      Maybe you can use this code as reference for add a default group when a post is saved (you need to add this code in your functions.php file and change the ‘160’ per your group’s id).
      Kind Regards,
      Antonio B.

  17. Hi there,

    I’ve got a problem with groups. When I input something in the Groups box “Read” field and save/update the page (or post, doesn’t matter), the input is gone. Only “Registered” will be saved. It doesn’t matter if the group already exists or if I try to create it via the input field.

    Do you have a hint?

    Thanks in advance 🙂

    1. Hi Andreas,
      Probably you have a conflict with another plugin.
      Please check if you have installed the last Groups version.
      Also you could try to enable the WordPress debug, editing the wp-config.php and replacing the following line
      define('WP_DEBUG', false );
      with these lines
      define('WP_DEBUG', true );
      define('WP_DEBUG_DISPLAY', false);
      define('WP_DEBUG_LOG', true );

      Then try to add a group as Read condition and update the post/page. If errors exist then a file named debug.log under wp-content folder will be created.
      Kind Regards,
      Antonio B.
      Maybe you can see more data in this debug file.

  18. Hi, I added the same question to the group pricing page, but have not received a response. Can someone answer this ASAP? We’re not able to enter some of our important groups because of this problem

    “We need to have a fractional discount for a specific group (i.e. 30.5% discount). When I add “0.305” to the Group Pricing section in WooCommerce, the resulting price rounds down (or up) but I can not get the specific price I need. Is there a way to turn off rounding in your code?”

    Thanks,
    Paul

    1. Hi Paul,
      It is a question related to the author of the plugin, please ask on their website.
      Answered on the topic, sorry for the delay.
      Kind Regards,
      Antonio B.

  19. With the new version where we need to assign “groups” to pages now instead of “capabilities” before, I am trying to assign an existing group to an existing page, but the group will not display in the list of available groups. Actually, only 3 of many groups show up. Is that because the many other groups are “children” of one of the 3 groups that do display??? How do I get this to work?

    1. Hi Michael,
      Please check if the user who is editing the page is in the group that you want. Now only if an user is in a group, he can restrict pages/posts to this group.
      Kind Regards,
      Antonio B.

  20. Hi
    I want to allow groups have access to their own content including files which are inaccessible to other group members. Is it possible for members of groups to upload their own files which are restricted to their group only? I understand that site admins can create content / upload files and assign group access rules but am not clear whether group members themselves have this capability on their own content?

    Thanks,
    Gord

    1. antonio Avatar

      Hi Gord A,
      An user can do this if he has ‘Administer Groups’ capability that you can configure from Groups->Options. But he will have access to all files and ability to manage groups.
      Kind Regards,
      Antonio B.

  21. Hi Antonio and Kento,

    I am using your groups plugin and groups file access plugin since a while in combination with visual composer. I like the functionality and was able to solve minor problems so far. One thing that keeps happening though is that in combination with visual composer the embedded groups shortcode seems to confuse visual composer, additional unintentional page elements get added randomly and some problems with page display such as background colours of page sections seem to be caused by the combination of the two plugins.

    Do you have any experience or tip how I could better integrate these two plugins and prevent this issues from happening. I would love to provide more specific information or screenshots where needed.

    Thank you for your support and best regards,
    Max

    1. Hi Max,
      Maybe this video can help you to map Groups shortcode in Visual Composer (sorry, the video is in spanish).
      Kind Regards,
      Antonio B.

      1. Hi Antonio,

        thanks a lot for your reply. I guess im lucky as I happen to speak spanish : ) I checked the video and it does bring some lite in the use of groups shortcodes and the shortcode mapping tool of visual composer but it does only work for some of the shortcodes.

        I am trying to show the content of the page only to registered and logged in users. I would like to display some informative text to make the users register and logg in if they are not and then I would like to display different content to user groups with different capabilities.

        I was able to accomplish this using the shortcodes below. (without using the mapping tool of visual composer) This worked but visual composer produced the above mentioned issues.

        [groups_login]
        [groups_non_member group="Registered"][mk_padding_divider size=”10″]Please register to be able to see the pages content.[mk_padding_divider size=”10″][/groups_non_member]
        [groups_can_not capability="see_finanzen"][mk_padding_divider size=”10”]Unfortunately your usergroup does not have permission to see this content[mk_padding_divider size=”200″][/groups_can_not]
        [groups_can capability="see_finanzen"]

        All The content of the site that should be restricted to members with the capability “see finanzen” which is implemented using visual composer elements.

        [/groups_can]

        Now I tried to use the shortecode mapping tool of visual composer like suggested in the video to make visual composer familiar with the groups code and stop it from misinterpreting, autoediting or deleting it.

        This works fine for the groups short codes that do not have content in between elements like [groups_login].

        It also works fine for the shortcodes that only have a single phrase of text content in between the opening and closing elements like [groups_non_member group="Registered"] Please register to be able to see the pages content.[/groups_non_member]

        But my big problem is that the shortcode mapping tool does not work for mapping the shortcode that restricts all the page content to only the user group who has permission to see this content, because the content is not just a text phrase but basically 70% of the page content of that particular page and its built using visual composer.

        [groups_can capability="see_finanzen"]

        All The content of the site that should be restricted to members with the capability “see finanzen” which is implemented using visual composer elements.

        [/groups_can]

        I did manage to use the shortcode mapping tool for the opening part [groups_can capability="see_finanzen"] as a single short code but I cannot map [/groups_can] as a single shortcode since the mapping tool is giving me a syntax error.
        If I embed the two elements [groups_can capability="see_finanzen"] and [/groups_can] in visual composer text blocks and place the page content in between they do not connect or communicate with each other and the closing bracket [/groups_can] gets displayed as visual text on the site, like actual content.

        These shortcodes so far only work for me if I put them directly into the code of the page in text editing mode. In that case visual composer starts editing, deleting or changing the layout of the site after a while as mentioned above.

        Do you know of any other way how I could make this work or how I could map a shortcode using the mapping tool that has big chunks of content in between the opening and closing bracket.

        Thanks a lot for your support, Best regards, Max

        1. Hi Max,
          Maybe using the ‘content’ param can help you, something like this: http://tinyimg.io/i/FbzPK6Z.png , http://tinyimg.io/i/nIf5dol.png
          This post talks about this using code, that can be another solution.
          Kind Regards,
          Antonio B.

          1. Hi Antonio,

            thank you for your reply and ideas. I did try using the “content” parameter as you suggested in the screenshots. First it looks good since I am able to define this shortcode, also enter the text conde of the hole site into the content field and save it. Never the less this does not work and the layout of the site breaks. (see screenshots)

            http://tinyimg.io/i/jPfnMOq.png , http://tinyimg.io/i/THtZYXb.jpg , http://tinyimg.io/i/RDRzxX3.jpg

            The post you mentioned about nested shortcodes sounds interesting but unfortunately i am no php programmer. I tried to make sense of the code but got lost. Could you point me in the right direction on how to make this work for my situation?

            Thank you for your support,
            kind regards,
            Max

  22. Hi, Love the ease of use of the Groups plugin. I have a question in regards to restricting content. Is it possible to display a message to the user saying ” This content is restricted” to users with no access AND when a user with access views same content the message is removed and the actual content is displayed in a dynamic fashion? or is there a work around?

    I’ve gone through the documentation but maybe I missed it. Thanks for the help, much appreciated.

    1. Thanks Ade,
      You can use the ‘groups_member’ and ‘groups_non_member’ shortcodes.
      Also you can redirect the users without access to another page using the Groups 404 plugin.
      Kind Regards,
      Antonio B.

      1. Thanks for the help Antonio!

  23. Awesome plugin. Has really been useful. However, we are concerned about forgetting to set permission and content being available to Anyone by default.

    is it possible to have the default access be “None” if a group isn’t selected?

    1. Hi Mike,
      If you are using the legacy mode, you can use this code changing 160 per your capability id.
      Kind Regards,
      Antonio B.

      1. Hi Antonio, thanks for the reply. We are not currently using legacy mode. is there another option in this case? Mike

        1. Hi Mike,
          I have created this solution. If you don’t adapt this code, the group will be always added.
          Kind Regards,
          Antonio B.

  24. Hello,
    when groups plugin is activated, I notice a bug with admin button “screen button”. I need it to show excerpt but the button does not work when plugin is activated.

    1. Hi Loic,
      Sorry, I can not replicate this issue. What are your WordPress and Groups versions? Pleease give me your Groups->Options.
      Kind Regards,
      Antonio B.

      1. WordPress 4.7.3 / Groups 2.0.2
        Groups->Options : Administrator access priority checked, Post type (I check those I need) (those I don’t check, I don’t have the issue), Show groups in user profile checked, permissions checked for admin, legacy settings checked

        1. Thanks,
          With this setting I don’t have this problem.
          That might be a conflict with a plugin. Please try to disable all plugins except the essentials and test with these only. Then enable other plugins individually and test again to see if the duplicates are created. When it happens, please let me know with which plugin so we can identify what’s causing the issue and solve it.
          Kind Regards,
          Antonio B.

  25. Hello,
    is it possible to use a capability in a template ?
    I try this : if ( current_user_can( ‘premium_read_post’ ) ) :

    But it does not work…

    Any help would be really appreciated

    1. Hi loic,
      ‘current_user_can’ is not a Groups function, this is a WordPress function based on WordPress capabilities.
      Please have a look the examples documentation page.
      Kind Regards,
      Antonio B.

  26. Hi there,

    We have a site where we need to separate users into 2 groups. The default Registered and then we created a Registered2 Group. Once we assign the Registered2 Group to a user, we found that when we went to create a post or page, Registered2 was not an option for restricting the visibility of that page or post (only Registered showed in the options).

    The second issue we have is that our client wants to show different navigation menus to different groups. So if a user from Registered logged in, they would see certain navigation and if a user from Registered2 logged in, they would see different navigation. Do you happen to have any recommendations for how to get this to work only using the Groups plugin? If not, would you have any recommendations for getting this to work with an additional navigation plugin (such as Nav Menu Roles) that is compatible with Groups?

    Thanks

    1. Hi jvmedia,
      If you are using the legacy mode, from Groups->Options you need to select the capabilities to display on posts/pages. If not,remember that the user who want to restrict a page/post need to be member of this group, so if you add your admin user to the Registered2 group, then he can restrict to this group.
      By default if a post/page is restricted to a group and you add this page/post to a menu, only the members who have access to this page/post can see this page/post on the menu.
      Kind Regards,
      Antonio B.

  27. Mortada Sarheed Avatar
    Mortada Sarheed

    Hello,
    Please i need some help.

    I have a group named “Premium” that group is only for the members who have an active subscription on my product.

    I have this other bookable product. THIS product shall be free for the people who’s in the ‘Premium’ group, but for all other people it shall cost DKK49. Link: http://pandascarwash.dk/produkt/book-en-vask-alm/

    How can i make that happen? Please help me

    1. Hi,
      Using Woocommerce Group Pricing plugin you can set discounts according to the user groups. Maybe this can help you.
      Kind Regards,
      Antonio B.

  28. Mortada Sarheed Avatar
    Mortada Sarheed

    Exclude a specific group from a page?

    I have 2 bookable products on my website.

    Product A shall only be available to see for people that have an active subscription – That is working fine, I got that to work.

    Product B shall be available to everyone BUT not to the people that have an active subscription – HOW do i do that?

    I can’t figure out how to exclude a group from a specific product/page.

    PLEASE HELP.

    1. Hi,

      I’ve created this plugin Groups WC Not Purchasable – you can see the instructions there, I hope that helps.

      Cheers

  29. Is there a feature where customers make their own groups?

    1. Hi Camden,
      From Groups->Options you can add permissions to roles, maybe this can help you.
      Kind Regards,
      Antonio B.

  30. Hi There

    I use the Groups plugin and I’d like to link any new user when they register with my email automation service – convertkit. I have set up a webhook and and a “zap” through zapier.com to do this. However, the first name of the user is not always transferred correctly when they register.

    Any thoughts on how to proceed?

    1. Hi Sally,
      Really this is not a question about Groups, I suppose that using get_userdata you can do it.
      Kind Regards,
      Antonio B.

  31. I’m am running into a problem with a handful of customers not being able to access the hidden content when they are logged in. I have Groups and the Groups 404 redirect plugin installed. Some customers are getting the redirect back to their My Account page (where I set it to so they could log in if not already) which shows them logged in and then they try to access the content again and it just loops them through this process. I have informed some of them to try logging out and then back in as well as clearing their browser’s cache but they were still not able to access the hidden content. The only way I have been able to fix it for them is to go into their account on the backend and hit the Log out everywhere button. Any thoughts on why this is happening and how to fix it?

    1. antonio Avatar

      Hi Dustin,
      We are working on an update that should fix this.
      Kind Regards,
      Antonio B.

  32. Hi – My Groups 404 redirect has stopped working. I’m using WP 4.7.2 is Groups 404 redirect supported on this new version? Not sure what to do at this point but any of my groups members that are not logged in go to a 404 page instead of the login page where they should and have been going until recently. Is there another way to redirect the page?

    Thanks!

    1. antonio Avatar

      Hi Daniel,
      We are working on an update that should fix this.
      Kind Regards,
      Antonio B.

  33. We installed the groups plugin on both our staging and live sites and activated both. We can add groups just fine on both. We can assign users to the groups on the staging site but not on the live. on the live site the groups assignment does not appear on the user profile

    1. Hi Len,

      There is an option to show groups in user profiles. You probably don’t have it activated on the live site – you’ll find it on your Dashboard under Groups > Options.

      Cheers

  34. Hi Antonio & Kento,

    I changed the datablase prefix “wp_” to something else for security reasons.
    So far I used Groups so far by running different user groups with different capabilities and restricting them. Recently It seems I cannot create new capabilities and add capabilities to existing groups. I suppose it is related to having a new database table prefix. Are you aware of this issue and do you know how I could fix it, since I would like to keep the new prefix and increase the security of my site?

    Thank you for your support,
    Max

    1. Hi Max,
      This should not be a problem.
      You could try to enable the WordPress debug, editing the wp-config.php and replacing the following line
      define('WP_DEBUG', false );
      with these lines
      define('WP_DEBUG', true );
      define('WP_DEBUG_DISPLAY', false);
      define('WP_DEBUG_LOG', true );

      Then try to add new capabilities and assign capabilities to groups. If errors exist then a file named debug.log under wp-content folder will be created.
      Maybe you can see more data in this debug file.
      Kind Regards,
      Antonio B.

      1. Hi Antonio,

        thank you for this information, I did this and did get a debug.log file created indeed. When opening it with my text editor I get hundreds of lines of process information. I am not experienced enough to know what I would be looking for. I understand you cannot extend your support to that level but do you have a hint on what I should be looking for? The search therm “groups” is found many times.

        Thank you for your support,
        Max

        1. Hi Max,
          please delete this file, and try again to create the capabilities. Then send me the file to antonio[at]itthinx[dot]com and I’ll have a look at this.
          Thanks,
          Antonio B.

          1. Hi Antonio,

            i sent you the file per mail. Please let me know if you would need anything else.

            Best regards,
            Max

            1. Thanks, answered by email.

  35. Hello,

    Is it also possible to restrict BuddyPress Groups and forums with Groups?

    Thank you and best regards, Bruno

    1. Hi Bruno,
      I’m trying to restrict BuddyPress groups, but it seems they are not compatible. If you need to restrict bbPress forums, you have available the Groups bbPress extension.
      Kind Regards,
      Antonio B.

  36. We need to have a fractional discount for a specific group (i.e. 30.5% discount). When I add “0.305” to the Group Pricing section in WooCommerce, the resulting price rounds down (or up) but I can not get the specific price I need. Is there a way to turn off rounding in your code?

    1. Hi Paul,
      Please ask it on the page of the Woocommerce Group Pricing plugin.
      Thanks,
      Antonio B.

  37. Michelangelo Avatar
    Michelangelo

    Hi,
    there is an API to get all the capabilities?
    thanks

    1. Hi Michelangelo,
      You can use this code.
      Kind Regards,
      Antonio B.

  38. Paul Keene Avatar
    Paul Keene

    Hi there, I am having an issue with the groups plugin. I am now no longer able to edit a user’s groups when previously I was … attached is a screenshot …

    http://imgur.com/a/V1oAG

    The Edit Groups link is not a link, and as such I am unable to correctly administer our members.

    1. Hi Paul,
      That does not seem to be part of our plugin. Please check if you are using another plugin.
      Kind Regards,
      Antonio B.

      1. Paul Keene Avatar
        Paul Keene

        Hi there Antonio, thanks for your response – apologies for not seeing it until now.

        I can assure you that I am only using your Groups plugin alongside Woocommerce Groups integration.

        1. Hi Paul,
          Please send me dashboard admin access to antonio[at]itthinx[dot]com indicating this conversation, and I’ll have a look at your settings.
          Kind Regards,
          Antonio B.

  39. I need to add a custom field for a group, description textarea is already there, I need to add a new field, cant find a way with api, is gris possible?

    1. Hi Bengt,
      Sorry this feature is not available.
      Kind Regards,
      Antonio B.

  40. Michelangelo Avatar
    Michelangelo

    Hi,
    there is a way to add a post to a group via API?
    Should I use Groups_Post_Access::create?
    thanks

    1. Hi,
      Yes, you can use this function, but remember that this is based on capability name.
      Kind Regards,
      Antonio B.

      1. Michelangelo Avatar
        Michelangelo

        Hi Antonio,
        no, I need to add a post to a group via API like as I can do manually when I publish a new post.
        thanks
        michelangelo

        1. Hi,
          With if your group has this capability, then with this function you can add access to this group (really the posts access work with capabilities).
          Kind Regards,
          Antonio B.

  41. Michelangelo Avatar
    Michelangelo

    Hi,
    the link to documentation (http://docs.itthinx.com/) is broken: 502 Bad Gateway
    Can you check, please?
    Thanks

    1. Hi Michel Angelo,
      It is now available. Thanks for letting me know.
      Kind Regards,
      Antonio B.

  42. Dear Groups Team,

    i am using your WP plugin and am a big fan so far but I have a problem and hope you can help me.

    I would like to convert an unrestricted site into a site that can only be seen if registered and logged in. If a not registered user enters the site he should see the text “please register and log in to access the site”. I was able to set this up correctly using the shortcodes below.

    ———————————–
    [groups_login]

    [groups_non_member group="Registered"]
    please register and log in to access the site
    [/groups_non_member]

    [groups_member group="Registered"]
    Entire content of the website
    [/groups_member]
    ————————————

    So far so good. My problem happens once I try to expand this to show the content of a website only to a certain group or a group with a certain kapability.
    So in addition to showing the site only to registered and logged in members (showing the “pls register and log in” text if not)I would like to show the site only to members of a group or groups who own a certain capability only.
    If the user is registered and logged in and member of the group he should be able to see the content of the site. If he is registered, logged in but no member of the group he should see the text “sorry, your do not have access to this content.”
    Of course this user should only see this message and none of the page content, vice versa a logged in member of this group should not see this message in addition to the page content.

    I tried this using the groups_member and groups_can short codes below, but this did not work.

    groups_member:

    ————————————–
    [groups_login]

    [groups_non_member group="Registered"]
    please register and log in to access the site
    [/groups_non_member]

    [groups_member group="Registered"]

    [groups_non_member group="Manager"]
    sorry, your do not have access to this content.
    [/groups_non_member]

    [groups_member group="Manager"]

    [/groups_member]
    —————————————-

    Problem: the logged in authorised user (manager group) will see the content of the page but still see the shortcode text “[groups_member group="Manager"]” displayed on top of the content as if it would be part of the content. The logged in but not authorised user will see correclty see the message “sorry, your do not have access to this content.” but in addition will see the shortcode “[groups_member group="Manager"]” displayed on top of the content as if it would be part of the content. In addition he sees all the content of the website, which we tried to prevent.

    —————————————-
    the same problems happen when i close with two shortcodes on the bottom like

    [/groups_member][/groups_member]

    to close the group “registered” and the group “manager”
    ——————————————————

    When using the groups_can shortcode, like below I pretty much have the same issues.

    ——————————————-
    [groups_login]

    [groups_non_member group="Registered"]
    please register and log in to access the site
    [/groups_non_member]

    [groups_member group="Registered"]

    [groups_can_not capability=“see_home”]
    sorry, your do not have access to this content.
    [/groups_can_not]

    [groups_can capability="see_home"]
    sorry, your do not have access to this content.
    [/groups_can]

    [/groups_member]
    ———————————————-

    Please let me know if you know what my error is or if you have a suggestion on how to tackle this issue. I understand that different groups can be combined in one shortcode separated by a comma like [groups_member group="Registered,Management"], but content would be shown as soon as a user is member one either one of those groups. If there is a way of showing content only to users who are part of both groups and restricting content to users only part of one group this might be a solution.

    Sorry for the length of my posting, I am just trying to be precise and give the relevant input. Your help would be highly apreciated.

    Thank you,
    Max

    1. The best workaround so far is setting it up like below but in that case the phrase “you do not have access to this content” shows when the user is logged in and not authorised (good) but also when he is logged out (bad as he should be asked to log in only here).

      [groups_login]
      [groups_non_member group="Registered"]
      please log in
      [/groups_non_member]

      [groups_can_not capability="see_home"]
      you do not have access to this content
      [/groups_can_not]

      [groups_can capability="see_home"]
      content of the entire site
      [/groups_can]

    2. Hi Max,
      You can use the conjunctive version of the groups_member shortcode: groups_cmember.
      Kind Regards,
      Antonio B.

      1. HI Antonio,

        thank you for your answer, this might be a solution. so the code you have to add anywhere in my theme´s function.php correct?

        Once done I would be able to use the short code like:

        [groups_member group="Advanced,Premium"]
        Only Members both Advanced and the Premium groups can see this.
        [/groups_member]

        members of only one group, either advanced or premium or none of the groups would not see the message correct?

        Best regards,
        Max

        1. sorry, i meant [groups_cmember group=”Advanced,Premium”] not groups_member

        2. Hi,
          Yes, you need to add this code in your functions.php child theme file.
          Exactly, only the users who are in both groups can see the content.
          Kind Regards,
          Antonio B.

          1. Hi Antonio,

            thank you for this fix.

            Best regards,
            Max

  43. I’m looking for a way to update a user and the groups they are in.

    Example:
    user@user.com has been in the system for awhile and he is part of certain groups:
    Group A
    Group B
    I now want to update the user to have access to Group C as well.
    I don’t want to do this in the dashboard, and will build a page for our sales team to make these changes through a form.
    I thought [groups_join] would help, but not seeing how that works.

    I use gravity forms to register new users and add them to groups, but updating only works for users who are logged in.

    Any advice would be a huge help,

    Thanks

    1. Hi Dave,
      Using [groups_join group="XX"] (where XX is your group C number) in a page, if a logged user visits this page, he will see a button for join to this group. If a guest user or an user in group C visits this page, then he will not see anything.
      Kind Regards,
      Antonio B.

      1. Thanks Antonio,

        The problem with that is I, don’t want the user to be able to change their access, I want a sales person to change the users access with a form. I have a page with modals that lead to different sections of the website. You can see the modals you have permission to see, based on the groups you are part of.

        So… something like this shortcode:
        // echo do_shortcode( ‘[groups_user_groups user_id='.$user_id.']‘);
        Where I can see the groups that a user is a part of.

        I want something like this:
        // echo do_shortcode( ‘[groups_join group='Group_C' user_id='.$user_id.']‘);
        Adding a user to a soecific group.
        I decide (or a sales person), what users can join Group C. Not in the dashboard, but through a webpage with checkboxes.

        Is this fathomable?

        Thanks again for any help.

        Dave

        1. Hi Dave,
          I have created this ‘groups_join_user’ shortcode. I hope this can help you.
          Kind Regards,
          Antonio B.

          1. Thank You Antonio!!!!

  44. Does this plugin support custom group-specific fields, e.g. group name, group location, etc.?

    1. Hi John,
      Sorry, exactly I don’t know what do you mean, maybe the documentation page can help you.
      Kind Regards,
      Antonio B.

  45. Love Groups and have purchased several extensions. But I’m moving from WooCommerce to SamCart. Do you have any integration with SamCart and/or Zapier or IFTTT?

    1. Thanks David,
      Sorry there isn’t integration for this cart.
      Kind Regards,
      Antonio B.

      1. Antonio, has there been any change in this, now that SamCart is so well known? I’m looking to be able to sell a product via Samcart and have the customer added to a group once they pay. If you have no interest in doing so, what would you suggest in terms of getting a Zap or IFTTT connector made? Is there a resource that I can find that will do this for me?

        1. Hi David,

          Sorry but we don’t have any plans to integrate with it … a Zapier integration should come along further down the road (I would love to have it done already) but it should be fairly easy to use e.g. https://zapier.com/help/how-get-set-up-hookpress-wordpress/ and Groups’ API http://docs.itthinx.com/document/groups/api/examples/ (first example on that page is adding to a group) to get the customer added.

          Cheers

  46. How do I add a user to a group? When setting up a new user I see where you can select which role but there’s no option for group

    1. Hi Mahlon,

      First create the new user and then edit to assign to the group. We’ll have this improved in a new release where you should be able to do it directly upon user creation, but due to technicals this isn’t possible until after the user has been created.

      Cheers

  47. Jeremy A Muckel Avatar
    Jeremy A Muckel

    Is there a way to choose a Group on the create user screen? My client would rather not have to create the user, and then go to list users, and then select a group.

    1. Hi Jeremy,
      This option is not available if you create the user from the dashboard. If you want to assign automatically the new users to a group, you can use this code, adding the code in your functions.php child theme file.
      If you want that the users can choose the group when they are registering, you have available the Groups User Chooses plugin.
      Kind Regards,
      Antonio B.

  48. Jeremy A Muckel Avatar
    Jeremy A Muckel

    Hello,

    This seems obvious so maybe there is functionality for this and I’m not seeing it, but instead of creating a new user, then going to edit user, then adding them to their group, why is there not a dropdown or something of groups right on the add user page?

    My client is saying it is annoying to have to make the user then go into edit and choose a group. They would like to add the user and select their group all in one step. How can this be accomplished?

    Thank you for your time. Otherwise this plugin is amazing!

  49. Hey there,

    I need a plugin that will create WP groups. Of course this one is the best. But I also need it to make users from particular groups login with either their email address or username.

    Can I make a particular group need to log in with their user name and another group log in with their email address?

    Thank you!

    1. Hi Iain,

      Thanks for considering Groups for your purposes 🙂 Regarding the login, if it were just for everyone, this plugin could be useful WP Email Login and it could be adapted to allow this for only users of certain groups with some modifications. Are you able to do that?

      Cheers

  50. Now that WordPress 4.7 is out, which introduces content endpoints in the REST API, how compatible is Groups with it?

    Will all permissions to pages and posts still apply to the endpoints exposed via the REST API? Has this been tested?

    Thanks.

    1. Hi Andrei,

      You can give it a try with a protected post very easily, for example assume you have a protected post with ID 123 and try http://www.example.com/wp-json/wp/v2/posts/123 you will see empty content. We will have to extend Groups to make it fully compatible so that you can retrieve content appropriately when authorized. Are there any parts you are particularly interested in?

      Cheers

      1. Did you have this feature now? In my case, I want to display posts which related to user who in the group A (example) only. While currently I can see that it list all the post which Group assigned to Null.

        Thanks,

        1. Hi Billy,

          Yes, you’ll need to to authenticate to access protected posts, see Authentication – you can use the Basic Authentication plugin for quick tests.

          Cheers

Leave a Reply

Your email address will not be published. Required fields are marked *

Share