Groups File Access

File downloads for authorized users

Groups File Access is a WordPress plugin that allows to provide file download links for authorized users. Access to files is restricted to users by their group membership.

  • Provide file downloads for Premium Members.
  • Allow registered users to download files from your site.


  • Restrict access to downloads to authorized user groups
  • Full multisite support (WordPress network installations)
  • File management area
  • Upload files via FTP and bulk import
  • File access notifications (customizable)
  • Flexible shortcodes: [groups_can_access_file], [groups_can_not_access_file], [groups_file_info], [groups_file_url], [groups_file_link], [groups_file_visibility], [groups_file_access_service_key]
  • Limited or unlimited number of downloads per user
  • Key authentication file access

Access to files is restricted by group membership. To be able to download a file, a user must be a member of a group that is assigned to the file. If an access limit has been set for the file, the user must also have accessed (downloaded) the file fewer times than the file’s access limit.

If you want to restrict access to a file to users that belong to a certain group, create the group, add the desired users to the group and assign the group to the files that the group should be able to access. More than one group can be assigned to a file.

Shortcodes are used on posts or pages to render links to files, provide information about files and conditionally show content to users depending on whether they are allowed to access a file.

For example, the [groups_file_link group="Premium"] shortcode renders links to files that members of the Premium group can click to download the files.


See the Groups File Access product page.

The GFA PDF Viewer is a free integration with PDF Viewer.


See the Group File Access documentation pages.


Please visit the Demo site.

639 Responses to Groups File Access

  1. lamiki July 5, 2017 at 10:02 am #

    I’m looking for a plugin that prevents direct download of pdf files that users store in the library. They alone must be able to access it. Does this plugin allow this?

    • antonio July 19, 2017 at 9:26 am #

      Hi lamiki,
      yes, with this plugin you can restrict files only to the users who are in a group.
      Kind regards,
      Antonio B.

  2. calvin choi July 7, 2017 at 9:52 am #

    I would like to know how to login the demo site?

    What is the username and password?

    I have tried to register, but no confirmation email sent to my email account

    • antonio July 11, 2017 at 6:55 am #

      Hi Calvin,
      You can create your own account. In the demo site, some files are restricted to registered users, so you can see how this works.
      Kind Regards,
      Antonio B.

  3. MickymX July 25, 2017 at 2:09 pm #


    I’ve bought it in 2015 and use it only one time.
    Today I would like to use it again, but I’ve got a question.
    There is possibility to be notificated when a user download a file.
    There is a way to optain a list (csv, xls, txt, ..) of the downloaded files and user name ?
    Thanks 😉

    • antonio July 27, 2017 at 11:25 am #

      Hi Mick,
      From the settings you can enable administrator notifications ( ), sorry, the documentation page is not updated.
      Related to lists, sorry, this option is not available.
      Kind Regards,
      Antonio B.

  4. Karen Meade August 8, 2017 at 7:12 pm #

    A year ago I had to buy a new version of my Group Files access plug in as none of the links in my web-site would work when WordPress was updated. Now exactly the same thing has happened. Am I going to have to buy a new plug in every year?

    • antonio August 9, 2017 at 8:51 am #

      Hi Karen,
      Our plugins are distributed under these terms & conditions. Usually wordpress changes in a year do not usually make previous versions of plugins incompatible, but it really does not depend on us.
      Kind Regards,
      Antonio B.

  5. Adam Gillitt August 14, 2017 at 4:16 pm #

    I posted this on Friday, but I don’t see it yet on this page, nor have I received a response. This is a troublesome issue that is causing my client a lot of problems. Please advise, thank you. I can provide proof of purchase upon request.


    Large files (greater than a few MB) do not download correctly in browsers other than Chrome on all platforms and Edge for Windows 10. Small files download correctly in all browsers.



    Pause, then error: “Safari can’t open the page [url] because the server unexpectedly dropped the connection, This sometimes occurs when the server is busy. Wait a few minutes, and then try again.”

    Firefox spins indicator, nothing happens. No messaging.

    Windows 10:

    Firefox spins indicator, nothing happens. No messaging.

    Window 7:

    Firefox does not download.

    Solutions attempted with no results:
    • disabling and reenabling the plugin
    • disabling and reenabling mime file-type
    • Increasing available RAM and transfer allowance of Digital Ocean droplet
    • adding php.ini file to root directory
    php.ini set to:
    upload_max_filesize = 400M
    post_max_size = 401M
    max_execution_time = 300

    • Kento August 17, 2017 at 1:45 pm #

      Hi Adam,

      Sorry for the delay, I just saw your post. Could you please contact us via support at itthinx dot com providing temporary admin and FTP access so we can check your settings and run a few tests?


  6. Adam Gillitt August 14, 2017 at 9:03 pm #

    A correction- no large files download correctly in ANY browsers on ANY platform (which is better because it’s consistent). Browsers that appeared to be functioning correctly were in fact only creating 0kb files.

    • Kento August 17, 2017 at 1:51 pm #

      Ok thanks for the update, we’ll have to take a look at this with debugging enabled.

      • Adam Gillitt August 17, 2017 at 4:22 pm #

        Thanks, Kento. I have sent you additional details and logins via email.

  7. Andrew October 5, 2017 at 3:29 pm #

    It appears the plugin is not handling hierarchical groups properly.


    I have four groups called CARS, VW, HONDA, and GM. GM, VW, and HONDA are all subgroups of CARS which mean if a user is a member of HONDA they should also have access to files available only to CARS.

    Groups handles this well for post content protection, but I just noticed that file downloads do not inherit permissions. I had to explicitly add a user to both HONDA and CARS so that they could access a download that required membership in CARS.

    I tried to log into your demo site to reproduce the issue. Please let me know if this is a known issue with version 1.6.1


    • antonio January 30, 2018 at 8:50 am #

      Hi Andrew,
      Right now hierarchical is not available. We are working on an update to add this feature. We hope to have it for next week.
      Kind Regards,
      Antonio B.

  8. Daneil October 24, 2017 at 11:55 am #


    if a user is in several groups, is it possible to show ALL the files the user has access to on one page?

    For example like [groups_file_link]

    • antonio October 25, 2017 at 2:16 pm #

      Hi Daneil,
      you can use the [groups_file_link] shortcode with the ‘groups’ attribute, some thing like this: [groups_file_link group="*" /]
      Kind Regards,
      Antonio B.

  9. Maximimilian October 30, 2017 at 12:58 pm #

    Hi Antonio,
    I am using group file access as a wordpress plugin. in the WP dashboard I was informed that there is a updated Version of Group File access available. Currently I am working with Version 1.6.0. I wante to confirm this is the latest version.
    Thank you and best regards,

    • Kento November 1, 2017 at 12:19 pm #


      Thanks for asking! The latest version is 1.6.2 which is about to be released (before that it was 1.6.1). You should also receive the update notification as soon as it’s out.


  10. Zhonghe October 31, 2017 at 5:00 pm #

    Hi Antonio,

    I have files assigned with multiple groups, please let me know what is the shortcode syntax for displaying files with multiple groups attribute?

    I understand to display files with a single group is [groups_file_link group="Group1"], but I’d like to display [groups_file_link group="Group1"&"Group2"], can you please help me with the right syntax?

    Thanks, Zhonghe

    • Kento November 1, 2017 at 11:52 am #

      Hi Zhonghe,

      You can use a comma-separated list of group names. For example [groups_file_link group="Group1,Group2"]. More info is available on the Shortcodes documentation page of the plugin.


      • Zhonghe November 10, 2017 at 11:13 am #

        Thanks Kento.

  11. Jesus November 1, 2017 at 1:27 pm #


    Regarding the Groups File Access plugin I would like to know:
    1- If it is appropriate to set up an online store with WooCommerce that allows the client, after payment, to watch a streaming video (without download) during a certain period of time, for example, three days, three months, etc. During this time the client can watch the video as many times as he wants. Subscription with recurring payments is not necessary.
    2- If you encrypt the URL of the video?
    2- If it allows to know the IP of the client previously registered in a group with access permissions to the videos and detects and prevents in some way attempts to access the videos from other IPs of users who have not paid?

    Thank you,

    • antonio November 10, 2017 at 11:04 am #

      Hi Jesus,
      I think that you don’t need Groups File Access. You could do it with Groups. You could create protected pages where you embed you videos. So only users in the correct group could see the page content (videos).
      With Groups for Woocommerce you can sell access to the groups.
      Kind Regards,
      Antonio B.

      • Jesus November 10, 2017 at 8:51 pm #

        Hi Antonio:

        Your answer means that Groups (free) + GFA (payment) can not be configured with WooCommerce? Because it is not that registered users can access a protected page but that each client, after making the payment and registering, access the link that allows you to watch the video without downloading as a virtual product through WooCommerce.

        Thanks, Jesus

        • Kento November 10, 2017 at 9:56 pm #

          It doesn’t mean that you can’t use it with WooCommerce, it’s another option. I’d say it really depends on where you host your videos among other conditions. So … where do you plan to host your videos?

          • Jesus November 10, 2017 at 10:20 pm #

            Hi Lento,

            Videos are hosted on Vimeo PRO.


            • Kento November 11, 2017 at 12:58 pm #

              Ok with that you have the choice to embed a private video link on a page protected by Groups. You don’t need GFA if you don’t host the videos on your own server. What you can do is create a page, protect it with a group and place the private link there. But even the private links can be accessible by others if they know the URL so this is not completely secure – you can read more about that on Share unlisted videos with private links. Then they also offer the option to protect the video with a password, but if someone knows the private link and has the password, it’s still not completely secure because anyone could share that information with others.

              So … don’t they have an option where you can request the video container via their API and embed that on the protected page? This could effectively hide the video’s URL and would make it only accessible to group members who can view the content of the page protected by Groups.

      • Kento November 10, 2017 at 9:52 pm #

        Yes, if he uses some kind of secured temporary containers for the video that could be an option and he wouldn’t need to use GFA.

  12. Jesus November 2, 2017 at 3:39 pm #


    Regarding the Groups File Access plugin I would like to know:
    1- If it is appropriate to set up an online store with WooCommerce that allows the client, after payment, to watch a streaming video (without download) during a certain period of time, for example, three days, three months, etc. During this time the client can watch the video as many times as he wants. Subscription with recurring payments is not necessary.
    2- If you encrypt the URL of the video?
    2- If it allows to know the IP of the client previously registered in a group with access permissions to the videos and detects and prevents in some way attempts to access the videos from other IPs of users who have not paid?


    • Kento November 4, 2017 at 12:14 pm #

      Hi Jesus,

      #1 Yes that’s possible, you’d set up a product that grants group access during the desired number of days and restrict access to the page where the video is streaming with Groups.
      #2 Files handled by GFA are protected and use their own URL, the URL is not “encrypted”, it’s using an ID that directs at a specific file. The plugin supports Session Access (see the section under that heading on that page) and on please also look at this example of Embedding Video.
      #3 It doesn’t prevent access by IP, it protects files so only members of a group can access them (they need to be logged in to access a file).


      • Jesus November 10, 2017 at 8:21 pm #

        Hi Kento:

        So, if I have not misunderstood you, according to your answer it would be enough to use Groups (free) + GFA (for payment) to set up an online store with WooCommerce that allows the previously registered client, after payment, to watch a streaming video ( without discharge) during a certain period of time?

        I ask because the GFA and Groups documentation does not mention WooCommerce.

        Thanks, Jesus

        • Kento November 10, 2017 at 9:47 pm #

          Hi Jesus,

          It’s not really depending on WooCommerce, Groups + GFA do their own thing pretty well together. It’s rather a question of how to combine things to come close to requirements. So as there is no specific general requirement related to WooCommerce, you won’t see anything particular in there 🙂


          • Jesus November 10, 2017 at 10:14 pm #

            Hi Kento,

            But, then, Groups + GFA can be integrated with WooCommerce or not? Because the goal is to sell the videos as virtual products in WooCommerce.

            Thanks, Jesus

            • Kento November 11, 2017 at 1:05 pm #

              Yes of course they can be used together, but it doesn’t make sense to use GFA in this case because your videos are not hosted on your server but via Vimeo Pro. What you can do with Groups and WooCommerce is to sell access to the groups and use the groups to protect the pages where they videos are embedded. Video Pro also advertises “Sell videos online and worldwide” as one of the features of their Pro plan so I’d suppose they do offer some kind of container you can embed on the pages that will be secure. Let me know if that is so please, it’s interesting.

              • Jesus November 12, 2017 at 2:30 pm #

                Hi Kento:

                Thanks for the suggestion of the Vimeo API to hide the URL of the video. I’ve already asked Vimeo. This suggestion could solve the problem of visibility of the URL, although I do not understand how to prevent it from being copied. The sale of videos through Vimeo is another issue that we will address later, since marketing has to do it ourselves (Vimeo does not do it) we prefer to do it without intermediaries because it is more profitable. I’ll let you know when we do.

                There is another question that is earlier in the purchase process and that I do not understand when you say that what I can do is “create a page, protect it with a group and place the private link there”. Because the link to watch the video has an expiration, for example, 3 days. Where does the instruction automatically occur so that after three days the link does not work and, therefore, can not be used by the client? I thought GFA did that, but now you say that GFA is not necessary, that it only works if the video is hosted on a server of its own. But why does not GFA work if the videos are hosted on Vimeo, when today almost everyone hosts their content in the cloud?

                On the other hand, I do not see that Groups and WooComerce are enough to sell the videos, as you say: “sell access to the groups and use the groups to protect the pages where the videos are embedded”. Could you explain to me how it would be done? Why do not I see Groups joining WooCommerce? Because Groups is installed and does not appear in WooCommerce PRODUCT DATA, since this is where the type of product is indicated (simple, variable, virtual, downloadable, etc.). This is the appropriate place to indicate the restrictions that together bring (or so I understood) Goups + GFA: access to the video only for customers who have purchased it and to indicate the period of time that the video will be accessible. After that time, access to the client is automatically blocked so that you can not watch the video since the access you get with the purchase is temporary. If GFA is not necessary, as you say, from which plugin does this get done, since Groups does not?

                In short, how the problem is solved in the purchase process:

                1º The customer buys the access to watch a video without download, once the payment is confirmed, how do you automatically access the protected page where the video URL has been inserted using the Vimeo API as a container? What plugin does this and how?

                2º After the 3 days have elapsed, how and from where is the instruction given automatically so that they can no longer access the video? What plugin does this and how?

                Thanks, Jesus

                • Kento November 15, 2017 at 2:25 pm #

                  Hi Jesus,

                  Thanks for that, I’ll reply to the key points you mention:

                  – “… to hide the URL of the video. … the problem of visibility of the URL … how to prevent it from being copied …”

                  Of course you can’t prevent anyone from copying a link, the mechanism that grants access to the resource behind it is what secures it.

                  – “Where does the instruction automatically occur so that after three days the link does not work and, therefore, can not be used by the client? I thought GFA did that …” + “On the other hand, I do not see that Groups and WooComerce are enough to sell the videos …”

                  GFA protects files that you host on your own server, you upload files via GFA and it protects them by granting access to members of the right groups while they are members. If you want to sell access for 3 days using WooCommerce, then you’d need to use our integration between Groups and WooCommerce Groups WooCommerce. This will let you add a customer to a group automatically based on product purchases. It also works with WooCommerce Subscriptions.

                  Re #1 See Access Control with Groups – you would embed their video container on a page and protect that page using a group. You would set up a product that grants access to that group using Groups WooCommerce.

                  Re #2 Groups WooCommerce does that automatically based on the settings used for the particular product. If you use it with WooCommerce Subscriptions, then it will remove the user from the group once the subscription expires. If you use it with time-limited memberships (these don’t need WooCommerce Subscriptions and are built-in with Groups WooCommerce), it will automatically remove the user from the group.

                  I hope you get a better idea on how this works now.


  13. Srama November 20, 2017 at 2:15 am #

    I have a question about Groups File Access, specifically restricting the ability to upload files.

    Currently, it looks like the WordPress admin can upload files and restrict access to those files. And that is fine.

    Is there, however, a way that I the admin can allow a specific user (who is not an admin) the ability to upload files without opening up any other functionality to them.


    • antonio November 20, 2017 at 3:12 pm #

      Hi Srama,
      The user needs to have access to the ‘Administer Groups’ capability. From Groups->Options you can assign this capability to roles.
      Kind Regards,
      Antonio B.

  14. Javier December 3, 2017 at 11:44 am #

    Hi Itthinx team,

    I have bought your premium plugin on CodeCanyon months ago for a client website.

    My client has dozens of PDF files with restricted access to member groups with your plugin.

    She recently migrated all her website to another hosting company, but now it is not possible to access this PDF files, showing a 404 error message when somebody try to access to this restricted PDF files. “Not Found. The requested URL was not found on this server.”

    On the WordPress bakcend of the “Groups > Files” section shows the next message “Warning: finfo_file(/home3/(folder)/public_html/wp-content/uploads/groups-file-access/(name).pdf): failed to open stream: No such file or directory in /(folder)/sites/(website).net/web/htdocs/wp-content/plugins/groups-file-access/lib/uty/class-gfa-utility.php on line 77”

    Maybe the company that did the migration of her website did something wrong? we can recover all this links easily? or we need to upload again all the files in the new hosting.?

    Thanks for your help.

    • antonio December 4, 2017 at 5:43 pm #

      Hi Javier,
      This message indicates that the file folder is not the same in the new server. You can re-upload the files, or accessing to the database, in the wp_groups_file table, change the prefix path according to the new server file path.
      Kind Regards,
      Antonio B.

  15. Anna December 18, 2017 at 3:36 pm #


    I’m using the Premium version of Groups and Groups File Access on my site and am trying to track file downloads using Google Analytics. Using this plugin, I’m not able to track downloads the standard way on GA by detecting the file extension the URL. Do you have a suggestion for the best way to track file downloads with the plugin? I was thinking I could embed tracking code into the plugin, but I want to get an opinion from a plugin developer first.


  16. Tim January 2, 2018 at 4:38 pm #

    Im using the Groups file access and would like to show the file extention for rendered files? I need this for my application to accept the files!


    • antonio January 3, 2018 at 8:42 am #

      Hi Tim,
      You can use the [groups_file_url] shortcode with the href html tag, instead of [groups_file_link]. Something like this:
      <a href="[groups_file_url file_id="456"]">My_File_Name.pdf</a>
      Kind Regards,
      Antonio B.

      • Tim January 3, 2018 at 9:16 am #


        Yes that works but i need it to be in the URL, im using the service_key to provide a URL to put in the application, how can i do this?

        for example:

        or something similar?

        • antonio January 3, 2018 at 9:35 am #

          Maybe adding an extra param with the name? For example:
          Really the ‘name’ param will not be processed. I have not really tried this solution, but I think it will work.
          Kind Regards,
          Antonio B.

          • Tim January 4, 2018 at 9:40 am #

            Seem to work thanks!

            Im also waiting for the ip filter, did you had time to lookinto it?


            • antonio January 15, 2018 at 2:38 pm #

              Hi Tim,
              You could remind me of the ip filter problem.
              Antonio B.

              • Tim January 22, 2018 at 7:53 pm #

                I sent you an email on the contact form from your website, please reply thanks


                • antonio January 29, 2018 at 6:05 pm #

                  Please send me directly the email to antonio[at]itthinx[dot]com
                  Antonio B.

  17. Andrew January 3, 2018 at 3:49 pm #

    Is it possible to change the notification email address from Admin? We’d like to use Zapier to act on the file download notifications but by default they are sent to the administrator. Seems like this would be a useful feature.

    Also, we use WP Mail SMTP (popular plugin) and on Dec 12th Groups stopped sending it’s email through this plugin and instead started sending directly from our server.

    Here’s the SMTP changelog. Our other plugins appear to have adjusted to the change and are working correctly but not this one.

    We use a dedicated mailing service for verification purposes – we use DMARC and now all of the emails to admin from Groups File Downloads are flagged as Spam.

    • antonio January 4, 2018 at 9:07 am #

      Hi Andrew,
      The plugin uses the wp_mail function to send the notifications. Maybe you can use the ‘wp_mail’ hook.
      Related to Groups and SMTP, where are the plugin sending the emails? Are you usign any integration?
      Kind Regards,
      Antonio B.

      • Andrew January 4, 2018 at 2:12 pm #

        The SMTP plugin is supposed to intercept calls to send emails and does so for all plugins. It then uses an external email service via SMTP (we use mandrill) to send the email from a clean IP address. The SMTP plugin intercepts all calls to send emails from wordpress core.

        It was working with Groups File Downloads until recently. Now, when Groups sends an email to notify the admin of a download, it is somehow bypassing the SMTP plugin. Is Groups File Download somehow using a deprecated method of sending email that SMTP isn’t intercepting?

        Aside from that, I found the code that sends the emails – groups_file_served(). It requests the $admin_email from WordPress. Other than editing the plugin itself, is there a way I can modify this function to send to another address?

        Also – at the end of this function it calls:

        self::mail( $admin_email, $admin_subject, $admin_message, $tokens );

        Shouldn’t that be wp_mail? Is the plugin calling the PHP mailer directly?

        • antonio January 4, 2018 at 3:30 pm #

          self::mail is indicating the funtion mail in the class-groups-file-access.php file, that if you see this function, it uses the wp_mail WordPress function.
          Please give me your SMTP plugin version and the Groups File Access plugin version. I’m going to recreate the scenario to see if the same thing happens to me or not.
          Kind Regards,
          Antonio B.

  18. Andrew January 4, 2018 at 3:37 pm #

    We are using the latest for all:

    Groups 2.3.0
    Groups File Access 1.6.2
    WP Mail SMTP 1.2.2

    WP Mail SMTP is configured to use an external SMTP mailer, “Other SMTP” in the settings.

    The admin email for our site (set in WordPress general settings) is “”. But emails from Groups File Access come from “”.

    • antonio January 9, 2018 at 5:28 pm #

      Thanks Andrew,
      It seems that we send the email before the SMTP plugin is loaded.
      I created this plugin, which should solve it.
      Your feedback is welcome.
      Kind Regards,
      Antonio B.

      • Andrew January 9, 2018 at 6:49 pm #

        Thank you for your help. We will add the code to our theme.

  19. Angela January 25, 2018 at 8:46 pm #


    I just bought your plugin yesterday and it appears it cannot handle a folder system. I put all files into the uploads folder but it only read those files that are outside of the folders I also placed inside. I have thousands of files with a complex file structure. Is there any way to get this to work? Without this functionality the plugin does me no good. 🙁 Thanks in advance!

    • antonio January 29, 2018 at 5:01 pm #

      Hi Angela,
      Sorry, the plugin only works with a main folder. If you need refund, please have a look at this Codecanyon refund page.
      Kind Regards,
      Antonio B.

      • Angela January 29, 2018 at 6:56 pm #

        Thank you, Antonio!!

  20. Nidhi Gupta February 5, 2018 at 2:24 am #

    Hi there, I have been using this plugin for more than a month now and suddenly the files are not accessible even though I checked and all the permissions are correct and users are logging-in using the correct account details. We are only getting forbidden access message. Please help!!.
    Its urgent.

    • antonio February 5, 2018 at 8:53 am #

      Hi Nidhi,
      Please check from Groups->Files if the file’s path is the correct.
      If the problem persists, 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.

  21. Trevor Stephens February 7, 2018 at 3:48 am #

    Been using this plugin for, i think over 5 years, on two sites. I was sure we paid for it back then, but i cannot remember since it has been so long. We use it with woo-commerce and all the woo plugins for restricting pdf newspaper downloads.
    Anyhow, i recently updated our server to php7.1 , everything was great until i tried to upload a file to Groups/Files. The Files tab is blank. everything else shows up. I cannot upload a newspaper for our subscribers to download.
    I went into our server and set up multi PHP and set one site back to PHP 5.6 and the Groups/ Files shows up and works again.
    Is the Groups File Access plugin not PHP 7+ compatible? The version we are runngin appears to be 1.0.12

    • antonio February 7, 2018 at 3:45 pm #

      Hi Trevor,
      Your plugin version is too old. Please download the latest version from Codecanyon.
      Kind Regards,
      Antonio B.

Leave a Reply