There are two ways to protect downloads, and they suit different jobs. The file library holds single files such as workbooks and preset packs, sealed away so only a checked link can reach them. Folder protection guards a whole folder under your site, such as a course area full of videos, so every file in it needs the right level.
Both count as protection for a level, so a member who holds that level (or a bundle that opens it) can download, and everybody else is turned away.
Where to find it:

AiX Membership, then the Files & Folders tab. The top half has Add a protected file and Protect a whole folder. Below them are the Protected files and Protected folders lists.
Adding a file to the library, step by step:
- Under Add a protected file, click Choose File and pick the file.
- Type a Title (shown to you, optional), for example Photo Basics workbook.
- Under Who can download it, tick the levels.
- Click Upload & protect.
The file is stored in a sealed folder inside your uploads folder that the web server refuses to serve directly, so guessing the address gets nobody anywhere. WordPress's own rules on file types apply, the same as the media library.
Giving members the file:
Each row in Protected files shows a ready-made shortcode, for example [raxm_file id="3" text="Download"]. Paste it on any page and change the text to whatever the button should say.
- A member with one of the file's levels sees a download button.
- Anybody else sees your protection message in its padlock box instead.
Members also see their files listed under Your downloads on the [raxm_profile] page.
The Protected files list:

- File: the title and the stored file name.
- Levels: who can download it.
- Size and Downloads: the size, and how many times it has been downloaded.
- Shortcode: copy it onto a page.
- Edit levels: change who can download it, straight away.
- Test download: try the link yourself.
- Delete: remove the file and its record.
A visitor who is not logged in and follows a download link is sent to your login page and brought back to the file afterwards. A logged-in member without the level sees the protection message, or is redirected if you chose Redirect them to a page on the Settings tab.
Protecting a whole folder, step by step:
- Under Protect a whole folder, type the Folder path (relative to your WordPress folder), for example courses/gold.
- Tick Create it if it is not there yet if the folder does not exist yet.
- Under Who can open it, tick the levels.
- Click Protect folder.
Every file in that folder and in its subfolders now needs one of those levels.
Getting the path right:
Paths are relative to the folder WordPress is installed in, not to your domain. You do not have to work that out: paste the full web address, the server path, or the path with your install folder still on the front, and the right path is worked out for you. The hint under the field shows the address your example path protects.
How folder protection works:
The plugin writes a small .htaccess file into the folder. It sends every request for a file in that folder through the membership check, and the plugin then streams the file to members who are allowed. Apache and LiteSpeed web servers read .htaccess files, which covers most WordPress hosting. On an nginx server, use the file library above for your downloads, or ask your host to send that folder's requests to WordPress.
The Protected folders list:

The header shows how many folders, files and bytes are protected. Counts are kept for an hour, and Recount refreshes them. Each row shows:
- Folder: the path.
- Files and Size: what is in it, including subfolders.
- Levels: who can open it.
- Guard status: .htaccess in place when the guard file is there.
- Edit levels: change who can open it. Nothing on the server is rewritten, because the guard file carries only the folder's id and access is looked up each time.
- Re-apply guard: shown if the guard file has gone missing, for example after a backup restore. It writes the file back.
- Open: opens the folder's address so you can test it.
- Unprotect: removes the plugin's block from the .htaccess file and leaves anything else in it alone.
Type in the filter box above the list to find a folder by path or level.
A folder for every new level:
When you add a level on the Levels tab, it gets a protected folder of its own, named after its slug, under a base folder (files to begin with). A new level called Gold with the slug gold gets files/gold, ready for its downloads. A folder of that name that already exists is never emptied or taken over; the new level is simply added to who can open it. Levels that arrive through an import are left alone.
To change the base folder or turn this off, open the Settings tab and use Give every new level a protected folder of its own and Where those folders go.
Checking it is working:

The Diagnostics tab has a File & folder protection section. Protected uploads folder should read sealed, Uploads writable should read writable, and Folder guards shows how many guards are in place.
A real example:
Yoursite Academy keeps six files in the library. The Lightroom Preset Pack and its install guide are for the Bonus Preset Pack level and sit on the Preset Pack Downloads page as [raxm_file id="1" text="Download the preset pack"] and [raxm_file id="2" text="Download the install guide"]. The Exposure cheat sheet is open to both the Free Photo Club and the Photo Basics Course, which is why it is the most downloaded file. The course slides and raw practice files live in folders instead: files/photo-basics, files/editing-masterclass and files/gold were made automatically when those levels were created, and the coaching call recordings sit in courses/pro-coaching/replays, protected for Pro Coaching.
Tips:
- Use the library for a handful of named downloads and folders for anything you upload by FTP in bulk, such as videos.
- Give a file to several levels rather than uploading it twice.
- After moving a site or restoring a backup, glance at Guard status on the Protected folders list and use Re-apply guard if any are missing.