Email Lock

Overview

Email lock requires users to submit their email address before downloading. It’s an effective way to build your mailing list while providing value through free downloads. Collected emails can integrate with popular email marketing services.

Prerequisites

  • WordPress Download Manager installed
  • At least one published package
  • Email marketing integration (optional)

Quick Start

  • Edit a package
  • Find Lock Options panel
  • Enable Email Lock
  • Save package

Enabling Email Lock

Step 1: Access Lock Settings

  • Edit any package
  • Scroll to Lock Options or Access/Update Lock panel
  • Find the Email Lock section

Step 2: Enable

☑ Enable Email Lock

Step 3: Save

Click Update or Publish to save.

Email Lock Options

Basic Settings

Option Description
Enable Email Lock Master toggle
Collect Name Also request user’s name
Double Opt-in Send confirmation email first
Custom Fields Add additional fields

Email Validation

Option Description
Verify Email Check email format
Block Disposable Reject temporary email services
Domain Whitelist Only accept specific domains
Domain Blacklist Block specific domains

Download Behavior

Option Description
Instant Download Download starts after submission
Email Download Link Send link via email
Remember User Don’t ask again for returning users

User Experience

Email Form

When a package has email lock:

┌─────────────────────────────────────┐
│     📧 Free Download                │
├─────────────────────────────────────┤
│                                     │
│  Enter your email to download:      │
│                                     │
│  ┌─────────────────────────────┐   │
│  │ your@email.com              │   │
│  └─────────────────────────────┘   │
│                                     │
│  ☐ Subscribe to our newsletter      │
│                                     │
│  [Download Now]                     │
│                                     │
│  We respect your privacy.           │
│                                     │
└─────────────────────────────────────┘

With Name Field

┌─────────────────────────────────────┐
│  Name:                              │
│  ┌─────────────────────────────┐   │
│  │ John Smith                  │   │
│  └─────────────────────────────┘   │
│                                     │
│  Email:                             │
│  ┌─────────────────────────────┐   │
│  │ john@example.com            │   │
│  └─────────────────────────────┘   │
│                                     │
│  [Download Now]                     │
└─────────────────────────────────────┘

Double Opt-in Flow

  • User enters email
  • Confirmation email sent
  • User clicks confirmation link
  • Download becomes available
  • User added to email list

Email Marketing Integration

Built-in Integrations

WPDM integrates with these services via add-ons:

Service Add-on
Mailchimp wpdm-mailchimp
ActiveCampaign wpdm-activecampaign
Constant Contact wpdm-constant-contact
Campaign Monitor wpdm-campaign-monitor
Sendinblue wpdm-sendinblue
HubSpot wpdm-hubspot
Zoho wpdm-zoho

Configuring Integration

  • Install email marketing add-on
  • Go to Downloads > Settings > Email Marketing
  • Enter API credentials
  • Select default list/audience
  • Configure field mapping

Per-Package Lists

Assign emails to specific lists per package:

  • Edit package
  • Find Email Marketing settings
  • Select target list
  • Save package

Collected Emails

Viewing Subscribers

  • Go to Downloads > Subscribers
  • View all collected emails
  • Filter by package, date, status

Subscriber Data

Field Description
Email Subscriber email
Name If collected
Package Which package triggered signup
Date Subscription date
IP User’s IP address
Status Confirmed/pending

Exporting Subscribers

  • Go to Downloads > Subscribers
  • Click Export
  • Choose format (CSV, Excel)
  • Download file

Managing Subscribers

Action Description
Delete Remove subscriber
Resend Resend confirmation (double opt-in)
Block Prevent future downloads

Custom Fields

Adding Custom Fields

Collect additional information:

add_filter('wpdm_email_lock_fields', function($fields) {
    $fields['company'] = [
        'label' => 'Company Name',
        'type' => 'text',
        'required' => false
    ];
    $fields['phone'] = [
        'label' => 'Phone Number',
        'type' => 'tel',
        'required' => false
    ];
    return $fields;
});

Field Types

Type Description
text Single line text
email Email input
tel Phone number
textarea Multi-line text
select Dropdown
checkbox Checkbox
radio Radio buttons

GDPR Compliance

Privacy Settings

At Downloads > Settings > Privacy:

Setting Description
Privacy Policy Link Link to your privacy policy
Consent Checkbox Require explicit consent
Consent Text Customizable consent message
Data Retention Auto-delete after X days

Consent Checkbox

┌─────────────────────────────────────┐
│  Email: [________________]          │
│                                     │
│  ☐ I agree to the privacy policy    │
│    and consent to receive emails    │
│                                     │
│  [Download]                         │
└─────────────────────────────────────┘

Data Export/Delete

Users can request their data:

  • User submits request
  • Admin receives notification
  • Export or delete data via Downloads > Subscribers

Global Settings

At Downloads > Settings > Email Lock:

Setting Description
Default Enabled Enable for new packages
Require Name Always collect name
Double Opt-in Default confirmation method
Blocked Domains Domains to reject
Remember Duration Days to remember user

Combining with Other Locks

Email + Password

Require both email AND password:

Locks:
☑ Email Lock
☑ Password Lock

User must submit email AND enter password.

Email + Terms

Collect email AND require terms acceptance:

Locks:
☑ Email Lock
☑ Terms & Conditions Lock

Customizing the Form

CSS Styling

/* Email form container */
.wpdm-email-lock-form {
    max-width: 400px;
    margin: 20px auto;
    padding: 30px;
    background: #f8fafc;
    border-radius: 12px;
}

/* Email input */
.wpdm-email-lock-form input[type="email"] {
    width: 100%;
    padding: 14px;
    font-size: 16px;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
}

.wpdm-email-lock-form input[type="email"]:focus {
    border-color: #4f46e5;
    outline: none;
}

/* Submit button */
.wpdm-email-lock-form button {
    width: 100%;
    padding: 14px;
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

/* Privacy text */
.wpdm-email-lock-form .privacy-notice {
    font-size: 12px;
    color: #6b7280;
    margin-top: 12px;
}

Custom Labels

add_filter('wpdm_email_lock_labels', function($labels) {
    $labels['title'] = 'Get Your Free Download';
    $labels['email_placeholder'] = 'Enter your best email';
    $labels['submit'] = 'Send Me the File';
    $labels['privacy'] = 'We never spam. Unsubscribe anytime.';
    return $labels;
});

Troubleshooting

Emails Not Collecting

Causes:

  • Email lock not enabled
  • Form submission error
  • Database issue

Solutions:

  • Verify email lock is enabled
  • Check browser console for errors
  • Verify database table exists

Confirmation Emails Not Sending

Causes:

  • Email configuration issue
  • Blocked by spam filter
  • SMTP not configured

Solutions:

  • Test WordPress email sending
  • Check spam folders
  • Configure SMTP plugin

Disposable Emails Getting Through

Cause: Block list needs updating

Solution:

  • Enable disposable email blocking
  • Add domains to blacklist manually
  • Update WPDM to latest version

Integration Not Syncing

Causes:

  • Invalid API credentials
  • List not selected
  • API limit reached

Solutions:

  • Verify API key is correct
  • Confirm list ID is valid
  • Check email service dashboard

Related Documentation


Last updated: January 2026
Applies to: WordPress Download Manager 7.x

Last updated on January 26, 2026

Need Help?

Get support from our team or community forum.

Visit Support

Customization

Need custom features? We can help.

Request Quote