Access Control Overview
Overview
Access control in WordPress Download Manager determines who can download your files. You can restrict downloads by user role, specific users, or require actions like email submission or password entry before allowing downloads.
Prerequisites
- WordPress Download Manager installed
- Administrator role for configuring access
- Understanding of WordPress user roles
Quick Start
- Edit any package
- Find the Access Control panel
- Select allowed roles under Allow Access
- Save the package
Access Control Layers
WPDM provides multiple layers of access control:
┌─────────────────────────────────────────────┐ │ PACKAGE ACCESS FLOW │ ├─────────────────────────────────────────────┤ │ │ │ 1. AVAILABILITY │ │ └─ Is package published and active? │ │ │ │ 2. ROLE BASED ACCESS │ │ └─ Does user's role have permission? │ │ │ │ 3. USER SPECIFIC ACCESS │ │ └─ Is this specific user allowed? │ │ │ │ 4. DOWNLOAD LIMITS │ │ └─ Has user exceeded their limit? │ │ │ │ 5. LOCKS (if any enabled) │ │ └─ Has user unlocked the package? │ │ │ │ ✓ DOWNLOAD ALLOWED │ │ │ └─────────────────────────────────────────────┘
Role-Based Access
Setting Role Access
- Edit a package
- Find Access Control panel
- Under Allow Access, Single or multiple user roles can be assigned. Roles:
| Option | Who Can Download |
|---|---|
| All Visitors | Anyone, including guests |
| Multiple Roles | Admin, Subscriber , Custom Role |
| Specific Roles | Customer |
| Custom Roles | Roles created by Pro Membership plugin |
Common Configurations
Public Downloads:
☑ All Visitors (Guest)
Members Only:
☑ Subscriber ☑ Contributor ☑ Author ☑ Editor ☑ Administrator
Premium Members:
☑ Premium Member (custom role) ☑ Administrator
Admins Only:
☑ Administrator
User-Specific Access
Grant access to specific users regardless of role using Advanced Access Control add-on:
- Edit the package
- Find Select Members field
- Enter usernames
- Separate multiple username with commas
john_smith, jane_doe
Global Access Control( Add-on)
Set site wide default access control for all packages using WPDM Default Values add-on.
Go to Downloads > Settings > Default Values > Default Package Settings
- Configure which user roles can access downloads
- Set default download limits if needed
Category Level Access
Set default access for entire categories:
- Go to Downloads > Categories
- Edit a category
- Set Access roles
- All packages in category inherit these settings
Note: Package level settings override category settings.
Download Limits
Per Package Stock Limit
Limit total downloads for a package:
- Edit package
- Go to Package Settings > Limits & Quotas
- Set Stock Limit
- When reached, downloads are disabled
Per User Download Limit
Limit downloads per individual user:
- Edit package
- Set Download Limit Per User
- Each user can only download X times
Lock Types
Locks add additional requirements before download:
| Lock | Requirement |
|---|---|
| Password | Enter correct password |
| Submit email address | |
| Share on LinkedIn | |
| Tweet or follow | |
| Like the page | |
| reCAPTCHA | Complete CAPTCHA |
| Terms | Accept terms & conditions |
| Form | Fill out custom form ( requires add-on) |
Locks work in addition to role-based access.
See individual lock documentation for details.
Guest Access
Allowing Guest Downloads
To allow downloads without login:
- Edit package
- Under Allow Access, select All Visitors
- Save package
Restricting Guest Access
To require login:
- Don’t select All Visitors
- Select specific roles instead
- Guests see login button
Visibility Settings
Hide Restricted Packages
Choose whether to show restricted packages:
Only Block Download Link:
- Package visible to everyone
- Restricted users see Permission Denied on the download button
- Encourages login/registration
Hide Completely:
- Package invisible to unauthorized users
- No hint it exists
- More secure for sensitive content
Configure at Downloads > Settings > General > Access Settings.
Category Visibility
Categories can also be hidden:
- Edit category
- Set visibility roles
- Only visible to allowed roles
Checking Access Programmatically
Check User Access
// Check if current user can access
$can_access = WPDM()->package->userCanAccess($package_id);
if ($can_access) {
echo 'You can download this package.';
} else {
echo 'Access denied.';
}
Check Specific User
// Check specific user $can_access = WPDM()->package->userHasAccess($user_id, $package_id, 'package');
Get Allowed Roles
// Get allowed roles for package $roles = WPDM()->package->allowedRoles($package_id); print_r($roles); // ['subscriber', 'editor', 'administrator']
Troubleshooting
Users Can’t Download
Causes:
- User role not in allowed list
- User exceeded download limit
- Package has unfulfilled locks
Solutions:
- Verify role is selected in access settings
- Check user’s download count
- Test unlock requirements
Everyone Can Download
Cause: “All Visitors” selected
Solution:
- Remove All Visitors from access list
- Select specific roles only
Access Changes Not Working
Cause: Caching
Solution:
- Clear page cache
- Clear browser cache
- Test in incognito window
Role Not Appearing
Cause: Custom role not registered
Solution:
- Verify role exists in WordPress
- Check plugin that creates role is active
- Refresh roles list
Best Practices
Security
- Use specific roles, not “All Visitors” for sensitive files
- Implement download limits to prevent abuse
- Use locks for high value content
- Regularly audit access settings
User Experience
- Clearly communicate access requirements
- Provide easy registration path
- Consider tiered access levels
Organization
- Use categories for bulk access control
- Document your access structure
- Test as different user roles
- Review access settings periodically
Related Documentation
Applies to: WordPress Download Manager 7.x