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.

Extensions

New Groups Restrict Categories and Groups Import Export.

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

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

  • 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.

Framework

  • 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

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

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!

Twitter

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

Introduction

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.

[/groups_member]

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.

[/groups_can]

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:

Groups

Here you can:

  • add groups
  • remove groups
  • assign capabilities to groups

Capabilities

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.

Options

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.

Shortcodes

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

Download

Download the Groups plugin on WordPress.

2,108 Responses to Groups

  1. Iain December 7, 2016 at 11:33 am #

    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!

    • Kento December 10, 2016 at 4:25 pm #

      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

  2. Jeremy A Muckel December 15, 2016 at 7:37 pm #

    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!

  3. Jeremy A Muckel December 19, 2016 at 2:34 pm #

    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.

    • antonio December 20, 2016 at 9:06 am #

      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.

  4. Mahlon December 24, 2016 at 2:58 am #

    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

    • Kento December 24, 2016 at 5:29 pm #

      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

  5. David December 27, 2016 at 4:03 am #

    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?

    • antonio December 27, 2016 at 8:34 am #

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

  6. John December 29, 2016 at 9:28 pm #

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

    • antonio December 30, 2016 at 6:58 am #

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

  7. Dave January 2, 2017 at 7:18 am #

    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

    • antonio January 4, 2017 at 8:48 am #

      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.

      • Dave January 5, 2017 at 4:09 am #

        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

        • antonio January 11, 2017 at 11:13 am #

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

          • Dave January 17, 2017 at 5:24 pm #

            Thank You Antonio!!!!

  8. Max January 5, 2017 at 3:02 pm #

    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

    • Max January 5, 2017 at 4:31 pm #

      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]

    • antonio January 13, 2017 at 10:14 am #

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

      • Max January 19, 2017 at 11:34 am #

        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

        • Max January 19, 2017 at 11:35 am #

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

        • antonio January 21, 2017 at 7:06 am #

          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.

          • Max January 25, 2017 at 10:56 am #

            Hi Antonio,

            thank you for this fix.

            Best regards,
            Max

  9. Michelangelo January 16, 2017 at 9:41 am #

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

    • antonio January 16, 2017 at 11:16 am #

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

  10. Michelangelo January 16, 2017 at 10:06 am #

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

    • antonio January 16, 2017 at 11:27 am #

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

      • Michelangelo January 16, 2017 at 11:45 am #

        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

        • antonio January 17, 2017 at 7:33 am #

          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.

  11. Bengt January 17, 2017 at 5:25 pm #

    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?

    • antonio January 18, 2017 at 8:42 am #

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

  12. Paul Keene January 18, 2017 at 9:51 pm #

    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.

    • antonio January 19, 2017 at 6:42 am #

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

      • Paul Keene January 23, 2017 at 4:06 pm #

        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.

        • antonio January 24, 2017 at 10:12 am #

          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.

  13. Michelangelo January 20, 2017 at 11:27 am #

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

    • antonio January 21, 2017 at 6:50 am #

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

  14. Paul P January 24, 2017 at 10:12 pm #

    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?

  15. Bruno January 29, 2017 at 7:41 pm #

    Hello,

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

    Thank you and best regards, Bruno

    • antonio January 30, 2017 at 7:09 am #

      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.

  16. Max February 2, 2017 at 1:44 pm #

    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

    • antonio February 3, 2017 at 12:19 pm #

      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.

      • Max February 3, 2017 at 6:32 pm #

        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

        • antonio February 6, 2017 at 6:47 am #

          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.

          • Max February 7, 2017 at 5:39 pm #

            Hi Antonio,

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

            Best regards,
            Max

            • antonio February 8, 2017 at 8:53 am #

              Thanks, answered by email.

  17. Len February 4, 2017 at 4:23 pm #

    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

    • Kento February 5, 2017 at 8:51 pm #

      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

  18. Daniel February 17, 2017 at 2:21 pm #

    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!

    • antonio March 2, 2017 at 9:11 am #

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

  19. Dustin DeRyke February 21, 2017 at 4:38 pm #

    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?

    • antonio March 2, 2017 at 9:14 am #

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

  20. Sally February 21, 2017 at 4:43 pm #

    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?

    • antonio February 22, 2017 at 8:59 am #

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

  21. Camden February 22, 2017 at 6:13 am #

    Is there a feature where customers make their own groups?

    • antonio February 22, 2017 at 7:22 am #

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

  22. Mortada Sarheed February 23, 2017 at 1:33 am #

    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.

  23. Mortada Sarheed February 27, 2017 at 7:44 pm #

    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

    • antonio February 28, 2017 at 8:31 am #

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

  24. jvmedia February 28, 2017 at 4:50 am #

    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

    • antonio March 13, 2017 at 6:30 am #

      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.

  25. loic March 3, 2017 at 3:57 pm #

    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

    • antonio March 12, 2017 at 3:51 pm #

      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. Loic March 8, 2017 at 10:03 am #

    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.

    • antonio March 12, 2017 at 4:06 pm #

      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.

      • Loic March 14, 2017 at 9:51 am #

        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

        • antonio March 15, 2017 at 10:59 am #

          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.

  27. Mike March 11, 2017 at 4:58 am #

    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?

    • antonio March 13, 2017 at 6:14 am #

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

      • Mike March 21, 2017 at 4:17 am #

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

        • antonio March 21, 2017 at 8:31 am #

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

  28. Ade March 14, 2017 at 8:30 pm #

    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.

    • antonio March 15, 2017 at 10:42 am #

      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.

      • Ade March 16, 2017 at 3:39 pm #

        Thanks for the help Antonio!

  29. Max March 15, 2017 at 1:42 pm #

    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

    • antonio March 20, 2017 at 8:05 am #

      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.

      • Max April 14, 2017 at 3:07 pm #

        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

        • antonio April 17, 2017 at 3:51 pm #

          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.

          • Max April 19, 2017 at 3:16 pm #

            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

  30. Michael March 24, 2017 at 5:10 pm #

    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?

    • antonio March 27, 2017 at 7:06 am #

      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.

  31. Paul P March 25, 2017 at 6:02 am #

    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

    • antonio March 27, 2017 at 6:59 am #

      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.

  32. Andreas March 29, 2017 at 2:21 pm #

    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 🙂

    • antonio March 30, 2017 at 5:58 am #

      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.

  33. Calvin April 5, 2017 at 9:51 am #

    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

    • antonio April 5, 2017 at 8:46 pm #

      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.

  34. Calvin April 6, 2017 at 2:36 am #

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

    • antonio April 6, 2017 at 7:47 am #

      Done, don’t worry.

  35. Lucien April 6, 2017 at 2:19 pm #

    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

    • antonio April 7, 2017 at 7:44 am #

      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.

  36. Alex April 7, 2017 at 1:23 pm #

    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!

    • antonio April 10, 2017 at 6:25 am #

      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.

  37. Peter Mueller April 10, 2017 at 3:11 pm #

    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.

    • antonio April 11, 2017 at 7:26 am #

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

  38. Max April 19, 2017 at 3:43 pm #

    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

    • antonio May 10, 2017 at 12:52 pm #

      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.

      • Max May 10, 2017 at 2:56 pm #

        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

        • antonio May 11, 2017 at 6:16 am #

          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.

  39. James April 21, 2017 at 3:41 am #

    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

    • antonio April 28, 2017 at 5:37 am #

      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.

  40. Andrew Schmitt April 24, 2017 at 4:03 am #

    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]

    • antonio April 24, 2017 at 6:43 am #

      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.

  41. taich May 7, 2017 at 8:26 am #

    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?

    • antonio May 8, 2017 at 7:21 am #

      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.

  42. Max May 10, 2017 at 2:07 pm #

    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

    • antonio May 11, 2017 at 6:59 am #

      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.

  43. Matt May 23, 2017 at 10:30 am #

    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?

    • antonio May 23, 2017 at 6:14 pm #

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

Leave a Reply