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 Groups File Access documentation pages.


Please visit the Demo site.

823 Responses to Groups File Access

  1. Jon October 20, 2019 at 9:16 pm #

    Is there a way to use filenames for the URL, instead of a file id?

    E.g. instead of gfa?gfid=3 something like gfa?file=myfile.pdf


    • Kento October 22, 2019 at 9:06 am #

      Hi Jon,

      No that’s not possible, the links must be in the specific format using their ID.


  2. Said Lahrichi September 29, 2019 at 9:50 am #


    We are running a medical lab to test patients blood type, etc. and we would like a way to post their test results (pdf) where they can download them. however, we want to limit the downloads to only the patient and the doctor. Is there a way to do that without creating many groups?

    • Kento October 8, 2019 at 8:28 pm #

      Hi Said,

      As this extension is restricting access based on groups, for your case you would really have to use one group per patient. Not ideal, although it would work.


  3. Justin September 23, 2019 at 10:21 pm #

    I am using the “groups_file_link” shortcode (e.g. [groups_file_link group="somegroup" class="file-link" description="yes" order="asc" orderby"name"]) to output a list of files. I need to add the filesize to this list so items are listed like this: “Sometitle – 48KB” . Is there a way to modify the markup from this shortcode or a way to get all the file IDs and do a foreach loop passing the IDs to the other shortcodes like [groups_file_url file_id="8"] and [groups_file_info file_id="8" show="size"] to generate my own markup for the list?

    • Kento September 24, 2019 at 12:16 pm #

      Hi Justin,

      You can use the shortcode [groups_file_info file_id="..." show="size"] or [groups_file_info file_id="..." show="sizeb"] in combination with [groups_file_url file_id="..."] (documented here) to compose your own markup, but this does not allow you to indicate the group to iterate over the files in it. You could of course loop over the related files in a template and use the shortcodes there or directly the API functions in the GFA_Shortcodes class.

      Another option could be to use the [groups_file_link] shortcode that iterates over the files in a group, you could use its description_filter shortcode attribute and craft your own filter function to include the size (or the output of one of the above shortcodes or its equivalent API function to obtain the size) and render it in the description.


      • Justin Martin September 24, 2019 at 1:18 pm #

        Hello, thank you for the reply. The problem with this approach is like you mentioned where I cant specify the group to iterate over the files in. The option about modifying the description_filter is interesting but ultimately I ended up writing a custom SQL query to get what I need. Thank you for your help!

        • Kento September 24, 2019 at 11:33 pm #

          Hi Justin,

          Sounds perfect, with that you can probably fine-tune it more specifically to your requirements. If you have any suggestions or questions later on, please don’t hesitate to ask.


  4. Ian Smith July 17, 2019 at 3:15 pm #

    Hi there,
    I am developing a new site for UK based charity and your pro version plug-in may suit their needs. Do you offer a discount for registered charity/not for profit organizations?
    Many thanks

    • Kento July 18, 2019 at 11:20 pm #

      Hi Ian,

      Thanks for asking! As we sell our Groups File Access extension on CodeCanyon, it’s up to them to offer promotions for the products there. I would certainly recommend to ask their sales team, maybe they can offer you something.


  5. Constantin May 16, 2019 at 1:05 pm #

    Hi there!

    I recently bought the plugin. I dug around a bit and noticed that the error messages for downloading files are static and not even translated (/lib/core/class-groups-file-access.php#410). I was wondering if you had any plans to translate and maybe offer the message as template(s) that a theme could override.

    Cheers, Constantin

    • Kento May 18, 2019 at 12:49 pm #

      Hi Constantin,

      The messages you refer to are those that are rendered when access is denied, strings in the plugin are otherwise translatable. I can’t think of a good reason not to allow to translate those, so I’m putting this on our todo list for inclusion.

      Thanks for the suggestion, Cheers!

  6. Anna May 3, 2019 at 3:08 pm #


    I use a plugin called WP MAIL SMTP to handle internal emails and I’ve recently changed the SMTP credentials since switching email servers (from Mandrill to Amazon SES). I’ve confirmed that changing the settings has caused me to stop getting file download notifications from Groups_File _Access plugin. All my other internal emails that depend on these SMTP settings are still working, so it’s just the Groups_File_Access plugin that is broken. I’m wondering if there’s something I missed – like updating a setting?

    • Kento May 13, 2019 at 4:29 pm #

      Hi Anna,

      I see this happening on a similar setup but haven’t been able to find out why this happens. Do you get any clues with debugging enabled? In any case, I’ll let you know as soon as we find out more.


  7. Sjoerd April 16, 2019 at 4:07 pm #

    Dear develolper,

    I have this plugin installed on site. But now out of nowhere error 404 occurred when dowloading the file.

    Is this a known error?

    • Kento April 24, 2019 at 4:44 pm #

      Hi Sjoerd,

      It wouldn’t happen out of the blue, I would recommend to review what has been changed on your site and what settings have been changed. Make sure to review the files and that the user account you are using actually has access to the files. The files should have at least one group related and the user trying to access must belong to that group. Please review the documentation for further details on the settings and process used.


      • Sjoerd April 25, 2019 at 6:03 am #

        Hi Kento,

        I found out what happened: the internal directory structure of the server changed so the files could not be found on linux level.

        Is there a way to store file with relative path?

        Best Regards,


        • Kento April 25, 2019 at 8:00 am #

          Hi Sjoerd,

          In that case, you need to update the references. This can be done in two ways, either using a direct update query run on the database (as indicated in the lower section of this documentation page Moving to another Server – make sure to create a backup of your site and database before you run the query) or scan and import files as described in the File Import section.


  8. Michalis April 11, 2019 at 5:06 pm #


    Lately, for some reason, when i try to upload a file, I am redirect to wp-admin/admin.php?page=groups-admin-files&orderby=file_id&order=ASCucm with the message “page not found”.

    The file is being uploaded (i can see the uploading percentage on bottom left side of browser), but when done, i get the result i mentioned above.

    Please advice.

    Thank you

    • Kento April 12, 2019 at 12:42 pm #

      Hi Michalis,

      There was no change in the tool that would have caused this, I would recommend to review what has changed on your setup that might be interfering.


  9. Chris A March 8, 2019 at 3:59 am #

    I am having an issue with the Groups File Access plugin. I am using the [groups_file_link group="group"] to list files assigned to this group. When I hover over one of the links, I see “” and when clicked it does not pull the or attempt to download the document. I have set groups and users. I noticed the .htaccess file reflects a “deny from all” as the only line.

    What am I overlooking?

    • Kento March 17, 2019 at 7:08 pm #

      Hi Chris,

      Assuming that you belong to the group while clicking the link, it would grant access and download the file. If that does not happen, the only plausible reason I can think of is that something goes wrong on the server side. I would definitely check its errors logs to see if there’s something in there related. Maybe the file is too large and you need to adjust limits. When you click the link, what does the Network tab of Firefox’s developer tools report?


  10. Marcin January 24, 2019 at 12:48 pm #


    I have a question about your product.
    We have the following problem. We would like to have an area on our WordPress page where people can log in and then the same download is available for each person. Each registered person should have the possibility to upload data that only the person and the page admin sees and has access to. Is this possible with your plugin?

    Best regards

    • Kento January 24, 2019 at 2:15 pm #

      Hi Marcin,

      Thanks for asking, I’ve replied to a similar question today and it’s good to see there is more interest on this kind of feature.

      Currently the extension is designed to upload files on the back end, while users with permission (group memberships) can access those files on the front end.

      I’m quite convinced that having a feature where users can upload files on the front end would be a great addition to this extension. Given that there is sufficient interest in such a feature since quite a while, we’ll move the priority of the feature request up even more in the queue. But I still can’t promise when exactly we will have this available.


  11. Robin January 23, 2019 at 3:44 am #

    Hi Team,

    Is there any update available for the plugins to be compatible with PHP 7 and above

    • Kento January 24, 2019 at 8:59 am #

      Hi Robin,

      Yes, Groups File Access is built and tested with the latest PHP 7.x as are our other plugins.


  12. Emilie January 10, 2019 at 9:30 pm #


    Is there an option for a user to upload a file via the front end because I don’t want him to connect to the WordPress administration interface.
    Thank you for your answer.

    • Kento January 24, 2019 at 9:49 am #

      Hi Emilie,

      Thanks for asking, at current the extension does not provide functionality that would allow a normal user to upload files via the front end. I agree that it would be quite useful to have and there have been others asking for this previously, too, so I would like to have it added at some point but I can’t promise on a specific time at which that would be available yet.


  13. Vlad January 8, 2019 at 5:43 pm #

    Hi there,

    There is a problem with the m4b file loading.
    When I download a file in an m4b format to admin, then after downloading, mp4 is added
    This happens only when using Safari. Maybe it depends on the type I chose Audio
    Is there a solution to fix this?

    • Kento January 9, 2019 at 1:47 pm #


      This is not an issue with the plugin but can be related to how Safari handles specific file types or your web server’s MIME types. I would check if there is an entry for audio/x-m4b to be sure – as your file indicates MIME Type: audio/mp4 it could be that your server does not have an entry for this type.


      • Vlad February 19, 2019 at 1:20 pm #

        Now, the MIME Type isn’t correctly detected when the m4b file is loaded.
        As I understand it, the plugin doesn’t know this type and writes another type to the data of the downloaded file.
        Do you have the correct file type on a Safari when you download?

        • Kento February 26, 2019 at 12:46 pm #

          Hi Vlad,

          It’s not the plugin that needs to know about the MIME type, it’s the server. The server needs to send the correct MIME type in the response header. So you should check if your server has an entry for audio/x-m4b – if your server indicates MIME Type: audio/mp4 then it does not have an appropriate entry for the file type you want. Some useful info where you can see more about that:

          – information about MIME Types
          – example nginx.conf including its mime.types
          – Apache’s mod_mime


  14. Anna Villani December 19, 2018 at 3:05 pm #

    Hi, I’m running a php compatibility checker on my plugins before switching to php 7.2. I’m getting this warning from Groups File Access:

    FILE: /nas/content/live/cignalai/wp-content/plugins/groups-file-access/lib/file/class-gfa-file-renderer.php
    71 | WARNING | INI directive ‘safe_mode’ is deprecated since PHP 5.3 and removed since PHP 5.4

    Currently the plugin is compatible, but it would be good to remove this warning so it doesn’t cloud the server log, and to prevent potential problems with future php versions.


    • Kento December 20, 2018 at 10:06 pm #

      Hi Anna,

      Indeed you are right, this should be removed as with the current minimum required PHP versions this is rather useless. We’ll take care of it. Many thanks for pointing that out!


  15. Tari December 7, 2018 at 8:06 pm #

    What I know is that if I copy this link that appears in the window when the PDF is downloaded, in Chrome let’s say, and then copy the link: file:///Users/taridonohue/Downloads/Wiancko-Update-Q2-2018%20(1).pdf into a window in Firefox, the PDF is viewable within the browser window.

    If I click on the link in Safari, it presents the doc in its own Acrobat window, which I think is very nice, with no filename in the browser window. But not many civilians use Safari.

    When I added files from the Files list to a Groups page, I simply copied and pasted the document title, which I see now is not the preferred method, but does link.

    But when I put in shortcode: [groups_can_access_file file_id="18"] Wiancko-Update-Q3-2018[/groups_can_access_file], the text shows but is not linked.

    (It doesn’t appear I can show a screenshot.)

    Thanks for your help on this. I am down to the 11 o’clock on this.

    • Kento December 7, 2018 at 11:01 pm #

      Hi Tari,

      The link you mention is not http:// but a file:// link … you’re probably testing on local and obviously can access the file there. In any case, you seem to be confusing files protected via GFA which visitors would try to access via their browser using http:// or https:// – these are protected via GFA, it’s not necessary for it to protect files on the filesystem itself.


      • Tari December 9, 2018 at 1:05 pm #

        Do you think the documents will be protected if I paste in the actual link from the Files page and not the shortcode (since I seem to be doing them wrong?)

        • Kento December 10, 2018 at 4:01 pm #

          Hi Tari,

          I would recommend that you simply use the corresponding shortcode and let the system render the link accordingly. For example, for the case you mentioned use [groups_file_link file_id="44"] and this will display the appropriate link.


  16. Tari December 5, 2018 at 4:04 pm #

    Please help! We are near the end of this website build, and I’ve discovered that while safari and Firefox allow for download only (which is my preference), Chrome displays the URL, which can then be copied and accessed in another window or browser.

    Hopefully this is because I’m not using the linking correctly. (I am copying the link name and pasting it in the page)

    But when I paste the shortcode with the file ID into the module, I can’t see the document name.

    I’m using [groups_file_link file_id="44"] with document number only, since the documentation says not to use both the group id and the file id.

    I’m in panic mode. What am I doing wrong??

    • Kento December 7, 2018 at 2:40 pm #

      Hi Tari,

      I assume that you are worried about whether the file would be exposed if people can paste the link? That’s not an issue, the URLs are always exposed whether you can ‘see’ them or not, but access to the corresponding files is protected. As long as the file is handled via GFA (and not via the media library) the access is protected, you don’t need to worry about that.

      I don’t quite understand what you mean with this though: “But when I paste the shortcode with the file ID into the module, I can’t see the document name.”

      The shortcode you are using also looks ok to me and should produce the corresponding link – please note that it will produce an HTML anchor tag to be precise, not just a URL. If the latter is what you want, then you would rather use the other shortcode, for example [groups_file_url file_id="44"] – Or are you using this with a page builder and it does not render?


      • tari December 7, 2018 at 8:13 pm #

        Kento, with my last reply, I may have posted a new comment instead of replying to the one above.

        Additionally, when I copy the link into a new browser window, I can see the document and it provides me the ability to download it.

  17. Caite November 7, 2018 at 4:19 pm #

    I bought Groups File Access. I want to make it so all the files already uploaded in my media library will ne protected from showing up in search engine results and being accessed by people outside our set groups. I don’t understand the documentation for the plugin. How do i make my entire media library (which is already all uploaded in the media library) protected with groups file access?

    • Kento November 10, 2018 at 10:11 am #


      GFA is not designed to protect the Media Library, at least not in its current state and that is mainly due to technical constraints. Instead, it maintains the protected files separately where access to them can be effectively restricted to authorized users only.

      Taking into account the above, which part of the documentation do you need help with?


  18. AV October 31, 2018 at 3:52 pm #

    Hi there,

    I bought this plug-in so that we could stop access to our files through search engine results. Can this plugin do this and how? How can I contact further support?

    • Kento November 3, 2018 at 2:04 am #


      You will find details on how to use the plugin on its documentation pages: – as you will see, the files that are protected by the plugin will not be accessible by unauthorized users (search engines included).


  19. Wordpressokulu October 12, 2018 at 8:01 am #

    I took Groups File Acces plugin for my e-learning website. I also use groups plugin for user roles.

    I have many videos on my site and I would like to restirect video files. I can upload my video files from Groups/File Import menu. But I can’t embed this video files to my pages.

    Can I embed video files ? If yes How?


  20. Michel October 7, 2018 at 10:38 am #

    I’m considering using this plugin for file access, but I have a question about this plugin. I want to manually upload all the files to the group file access folder under WordPress because I have a lot of files. It will take forever to use the import option through the WordPress site.

    Once the files are uploaded, can I then setup group file access links and reference the path to the file(s) that I want to be protected?

    I hope my scenario and question makes sense. Please let me know. Thanks!


    • Kento October 7, 2018 at 11:29 am #

      Hi Michel,

      Yes that’s possible, you would be interested in the “Scan for Files” section to prepare the import based on existing files in the extension’s folder – please see this documentation page for details: File Import.


  21. Elizabeth Frankel October 2, 2018 at 5:51 pm #

    I am posting PDF files to my website. I just purchased Group File Access to protect them, but I realized that it requires files to be downloaded before opening. Is there any way to allow users to simply open the file?

    • Kento October 10, 2018 at 5:39 am #

      Hi Elizabeth,

      This is mostly beyond the control of the GFA plugin because it is set by the user at the browser level.


  22. Mike August 22, 2018 at 2:53 am #

    Is it possible to have a limited number of downloads per user for a given month…..not just lifetime?

    For example, I want to give my members 20 groups file access downloads per month. And then next month those 20 would expire and they would receive another 20.

    I see the ability to set it for a total number per user but I don’t see the ability to reset that number of downloads after a certain period of time.

    Is this possible using Groups File Access?


    • Kento August 22, 2018 at 7:12 am #

      Hi Mike,

      It’s possible but needs to be implemented for the particular case.

      The extension provides a filter that can be used to extend the conditions used to determine whether a user’s request to access a file is granted. The filter groups_file_access_can_access is documented on the API page.

      To approach the condition you have outlined, you could simply store the number of monthly file accesses per user as usermeta, i.e. add_user_meta( $user_id, 'gfa_monthly_count', $count, true ); – use the filter above to increment the $count and reset it at the first request of the new month. In this case, you would not use the built-in limits, just make sure that the user has access to the requested file, so with the above filter, the first argument passed to the filter hook should be true.

      I hope that this helps a bit.


  23. Caro August 15, 2018 at 3:02 pm #

    I use [groups_file_link group="agenda']
    I like to get an title above my files. So I put Agenda above the code and I get:
    – 1 dec
    – 2 sep
    – etc
    But when there are no files I don’t want to see the title Agenda.
    Is there an option I can put in my shotcode to get this done.

    • Kento August 20, 2018 at 12:15 pm #


      The most immediate solution to this would be to use Javascript to hide the header if the number of elements produced by the shortcode is 0. I’m suggesting that because we don’t have a shortcode that would allow you to render content conditionally based on the number of files. I hope this helps a bit!


  24. ak litho August 7, 2018 at 9:29 pm #

    Hi, I purchased Groups File Access and set it up – worked great! But our site moved to a new server, and now no files load. In the File Access details, the path is correct and lists the path for uploads on the new server. However all of the individual files (225) are showing the old path and that path is not editable. Is there a way to run an update on these files that keeps the name, description, and groups that are set up?

    • Kento August 9, 2018 at 5:48 am #


      Thanks for using it! Yes, you can do an import on these files on the new server – first use Export Files under Groups > File Import then use the generated file to Import Files in the same section.


      • ak litho August 9, 2018 at 3:34 pm #

        Thank you! I did end up doing the find/replace in the database but this is great to know in case someone in the group without that access needs to update files later.

    • Sjoerd August 9, 2018 at 8:37 am #

      I also had this. You can also do a search and replace on the database. Search: [old path] Replace by [new path].

      I use this script to do this:

      • ak litho August 9, 2018 at 3:35 pm #

        Thank you!

  25. Tari August 3, 2018 at 7:43 pm #

    I am seeing with this plugin that the file is not pulled from the Media Library but must be uploaded to the host server via FTP.

    This makes it almost impossible for the client to manage their own documents. Is there any way to pull the doc from the Media Library and assign that link in the File Manager?

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

      Hi Tari,

      The system maintains protected files outside of the Media Library – I know that controlling those directly is a much desired feature and have been looking at the possibilities to include it but it’s not available yet.


      • Tari August 6, 2018 at 2:14 pm #

        Okay, thank you. Just wanted to make sure there were no other options before proceeding.

  26. Rui Fernandes June 18, 2018 at 9:51 pm #

    I’m currently developing a custom wordpress theme which has 20-30gb of documents imported onto a custom post type I’ve created.
    Now, I am using your standard Groups plugin to manage post access, which basically each post just has a “title” a “description” and a “media upload file” field which are created with the ACF plugin.
    Now, I’d like to know whats the best way, or even if its possible to make files already uploaded to private posts also private.

    Thanks in advance,
    Rui Fernandes.

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

      Hi Rui,

      As we don’t have a mechanism to protect files in the Media Library with GFA, I could only recommend to switch them over to be controlled by the extension until that is possible. Another option would be to use temporary links via Amazon S3 for example.


      • Rui Fernandes August 20, 2018 at 2:17 pm #

        Hey once again,
        What about the possibility to add a custom metabox and upload prviate files associated with the posts group?

        • Kento August 22, 2018 at 7:28 am #

          Hi Rui,

          The files would still not be handled by GFA, that would be the main issue I see, as you wouldn’t be able to protect them with the extension. I mean it’s a great idea, but it would require quite some custom coding to make it work. Sorry if I’m not much of a help with that at the moment, I’d love to have this built into GFA itself.


  27. Sonny March 20, 2018 at 12:55 pm #


    I’m trying to programmatically set things up such that if any file is uploaded by a specific user “X” then that file is only viewable by the Group whose name is identical to the filename (disregarding the extension).

    The idea is the specific user “X” would be Zapier…for that reason it’s not possible to manually add the file through the normal Groups File Access admin interface.

    Can you guys help?

    Thanks very much

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

      Hi Sonny,

      Ok I see, this would really require an adequate integration with Zapier, including Groups and Groups File Access. It’s not something that I could help you with without having these ready. Sorry if this isn’t of much help …


  28. Sjoerd March 13, 2018 at 10:57 am #


    Can protected pdfs be opened in the browser instead of downloading to the local computer?

    Best regards,


    • antonio March 13, 2018 at 5:03 pm #

      You can use the GFA PDF Viewer free integration with PDF Viewer.
      Kind Regards,
      Antonio B.

      • Sjoerd Faerber March 16, 2018 at 3:26 pm #

        I get a Invalid URL for PDF Viewer

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

          this is the link:
          Kind Regards,
          Antonio B.

          • Sjoerd April 2, 2018 at 11:14 am #

            Hi Antonio,

            Strange thing happens. When I add the pdf from the WP media library the PDF is shown.
            Added like this: [pdfviewer width=”600px” height=”849px” beta=”true/false”]http://full-url/document.pdf[/pdfviewer] it works.

            But added like this:
            [gfapdfviewer file_id=”1″ session_access=”yes”]

            pdf.worker.js:247 Uncaught Error: Bad end offset: 51682

            • Sjoerd April 2, 2018 at 11:18 am #

              [gfapdfviewer file_id=”13″ session_access=”no”] now it works….

              • Sjoerd April 2, 2018 at 11:36 am #

                Remove former reply… It still gives errors:

                The provided value ‘moz-chunked-arraybuffer’ is not a valid enum value of type XMLHttpRequestResponseType.

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

              Hi Sjoerd,

              In the shortcode you have posted, the double quotes are slanted – like this ″ – they should be plain double quotes – like this ” – if you’re using the slanted ones, then it will certainly not work. Can you please check that?


  29. allan regenbaum February 23, 2018 at 11:11 pm #

    is there anyway to add an extra parameter to files to associate them for grouping. I want to group files per event , or per class in some kind of grid …I have already purchased the module via codecanyon thanks !!

    • antonio February 26, 2018 at 9:34 am #

      Hi Allan,
      From Groups->Files you can add/remove groups to/from the files.
      Kind Regards,
      Antonio B.

      • allan regenbaum March 8, 2018 at 1:02 pm #

        I mean like grouping related files to each other. For example all files for an event on a day. That are related to each other by some common field. So if 1000 files that are assigned by permission groups to then be grouped by date or related event.

        • antonio March 9, 2018 at 9:37 am #

          Hi Allan,
          There isn’t an option for grouping the files per days or events, but you could use create extra groups and associate the files to these gorups, please have a look at this conversation with Sarah, maybe you could use this solution.
          Kind Regards,
          Antonio B.

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

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

  32. 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!!

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

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

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

                  • Tim March 5, 2018 at 8:40 am #

                    Sent you another email, please check your spam folder if you received it thanks!

                    • antonio March 8, 2018 at 6:16 am #

                      Sorry Tim,
                      I have not received the email, please send me a copy to
                      Antonio B.

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


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

      • Ann March 29, 2018 at 8:27 pm #

        I have the same problem after migrating the site to a new host. I have removed the files from the Groups/Files page, & removed them from the groups-file-access folder on the host using FileZilla. But when I try to add one of the files I deleted, I’m told it already exists. How can that be?

        • Ann March 29, 2018 at 8:34 pm #

          Nevermind, I was able to upload one of the files, so presume I can do all of them.

          • antonio March 31, 2018 at 5:49 pm #

            Hi Ann,
            I’m glad it works for you.
            Kind regard,
            Antonio B.

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

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


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

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

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


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

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

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

  46. 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?


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

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

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

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

Leave a Reply

We use cookies to optimize your experience on our site and assume you're OK with that if you stay.
OK, hide this message.

Affiliates · Contact · Jobs · Terms & Conditions · Privacy Policy · Documentation · Downloads · Useful Plugins · My Account