Overview
Password lock protects downloads by requiring users to enter a correct password before accessing files. It’s ideal for sharing files with specific groups, clients, or controlling access without requiring user accounts.
Prerequisites
- WordPress Download Manager installed
- At least one published package
- Editor or Administrator role
Quick Start
- Edit a package
- Find Lock Options panel
- Enable Password Lock
- Enter password(s)
- Save package
Enabling Password Lock
Step 1: Access Lock Settings
- Edit any package
- Scroll to Lock Options or Access/Update Lock panel
- Find the Password Lock section
Step 2: Enable and Configure
☑ Enable Password Lock Password(s): ┌─────────────────────────────┐ │ secretpass123 │ └─────────────────────────────┘
Step 3: Save
Click Update or Publish to save.
Password Options
Single Password
Enter one password for all users:
Password: download2026
All users use the same password.
Multiple Passwords
Enter multiple passwords, one per line:
clientA_pass clientB_pass internal_team
Any of these passwords works. Useful for:
- Different clients
- Multiple departments
- Tracking which password was used
Password Usage Limits
Limit how many times each password can be used:
Field: Usage Limit Per Password Value: 10
After 10 uses, that password expires. Others remain active.
Password Expiration
Set passwords to expire after a date:
Field: Password Expires Value: 2026-12-31
User Experience
What Users See
When a package is password-locked:
- User clicks download button
- Password form appears (popup or inline)
- User enters password
- On success: Download starts
- On failure: Error message, retry option
Password Form
┌─────────────────────────────────────┐ │ 🔒 Password Required │ ├─────────────────────────────────────┤ │ │ │ This download is protected. │ │ Please enter the password: │ │ │ │ ┌─────────────────────────────┐ │ │ │ ●●●●●●●●●● │ │ │ └─────────────────────────────┘ │ │ │ │ [Submit] [Cancel] │ │ │ └─────────────────────────────────────┘
Error Messages
Wrong password:
Incorrect password. Please try again.
Expired password:
This password has expired.
Usage limit reached:
This password has reached its usage limit.
Display Modes
Popup Mode
Password form appears in modal overlay:
- Doesn’t navigate away from page
- Clean, focused interface
- Default behavior
Inline Mode
Password form appears below download button:
- Visible without clicking
- Better for embedded content
- Configure in shortcode
Iframe Mode
Password form in iframe:
- Isolated from page styles
- Used in popups and modals
Configuration Options
Lock Settings
| Option | Description |
|---|---|
| Enable Password Lock | Master toggle |
| Password(s) | The password(s) to accept |
| Usage Limit | Max uses per password |
| Expire Date | When passwords expire |
| Case Sensitive | Require exact case match |
Global Settings
At Downloads > Settings > Security:
| Setting | Description |
|---|---|
| Max Attempts | Lock out after X failures |
| Lockout Duration | Minutes before retry |
| Show Hint | Display password hint |
Use Cases
Client Deliverables
Share files with clients using unique passwords:
Passwords: acme_corp_2026 globex_jan initech_q1
Each client gets their own password.
Event Access
Provide access to event attendees:
Password: CONF2026ATTENDEE Usage Limit: 500 Expires: 2026-02-01
Internal Sharing
Share with team without accounts:
Password: team_internal_only
Time-Limited Offers
Create urgency with expiring access:
Password: flash_sale Expires: 2026-01-31
Combining with Other Controls
Password + Role Access
Require both login AND password:
Access: Subscribers only Lock: Password required
User must be logged in as Subscriber AND know password.
Password + Email Lock
Collect email AND require password:
Locks: ☑ Email Lock ☑ Password Lock
User must submit email AND enter password.
Password + Terms
Require password AND terms acceptance:
Locks: ☑ Password Lock ☑ Terms & Conditions Lock
Password Security
Best Practices
Do:
- Use strong, unique passwords
- Change passwords periodically
- Use different passwords for different groups
- Enable usage limits for shared passwords
Don’t:
- Use easily guessable passwords
- Share passwords in insecure channels
- Use the same password for all packages
- Leave passwords unchanged indefinitely
Password Strength
Recommendations:
- Minimum 8 characters
- Mix of letters and numbers
- Avoid dictionary words
- Consider passphrases
Secure Delivery
Deliver passwords securely:
- Encrypted email
- Secure messaging
- Phone call
- Separate from download link
Tracking Password Usage
Usage Statistics
Track which passwords are used:
- Go to Downloads > Statistics
- Filter by package
- View password usage column
Usage Logs
For detailed logging, check download logs:
User IP | Date | Package | Password Used 192.168.1.1 | 2026-01-24 | Package A | clientA_pass 192.168.1.2 | 2026-01-24 | Package A | clientB_pass
Customizing Password Form
CSS Styling
/* Password form container */
.wpdm-password-form {
max-width: 400px;
margin: 0 auto;
padding: 30px;
background: #ffffff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
/* Password input */
.wpdm-password-form input[type="password"] {
width: 100%;
padding: 12px;
font-size: 16px;
border: 1px solid #e5e7eb;
border-radius: 6px;
}
/* Submit button */
.wpdm-password-form button[type="submit"] {
width: 100%;
padding: 12px;
background: #4f46e5;
color: white;
border: none;
border-radius: 6px;
font-size: 16px;
cursor: pointer;
}
/* Error message */
.wpdm-password-form .error {
color: #dc2626;
margin-top: 10px;
}
Custom Labels
Filter password form labels:
add_filter('wpdm_password_form_labels', function($labels) {
$labels['title'] = 'Enter Access Code';
$labels['placeholder'] = 'Your access code';
$labels['submit'] = 'Unlock Download';
$labels['error'] = 'Invalid access code';
return $labels;
});
Troubleshooting
Password Not Working
Causes:
- Typo in password
- Case sensitivity mismatch
- Password expired
- Usage limit reached
Solutions:
- Double-check password spelling
- Try lowercase if case-insensitive
- Verify password hasn’t expired
- Check usage count
Form Not Appearing
Cause: JavaScript error or conflict
Solution:
- Check browser console for errors
- Test with default theme
- Disable other plugins temporarily
Locked Out
Cause: Too many failed attempts
Solution:
- Wait for lockout to expire
- Clear browser cookies
- Reset lockout in admin
Password Field Empty
Cause: Package password not set
Solution:
- Edit package
- Enter password in Lock Options
- Save package
Related Documentation
Last updated: January 2026
Applies to: WordPress Download Manager 7.x