Docs / Packages Management / Download Limits

Download Limits

Overview

Download Limits control how many times packages can be downloaded, either globally or per user. Use limits to protect bandwidth, create scarcity, manage license compliance, or implement fair-use policies.

Prerequisites

  • WordPress Download Manager installed
  • Download logging enabled
  • Packages to configure

Types of Limits

Limit Type Scope Description
Global Quota All users Total downloads allowed for package
Per-User Limit Individual user Downloads per user for package
Daily Limit Per day Downloads per user per day (add-on)
Role-Based Limit Per role Different limits by user role (add-on)

Global Download Quota

Overview

Global quota sets the maximum total downloads for a package. Once reached, the package becomes unavailable to everyone.

Setting Global Quota

  • Edit a package
  • Find Package Settings tab
  • Locate Download Quota field
  • Enter maximum downloads
  • Save package
Download Quota: [1000]
(0 = unlimited)

How It Works

Package: Software v1.0
Quota: 1000
Current Downloads: 999

User clicks download → Download #1000 succeeds
User clicks download → "Download limit reached"

Use Cases

Scenario Quota
Limited release 100-500
Beta testing 50-100
Contest/giveaway Match prize count
License compliance Match license count

When Quota Is Reached

Users see:

This download is no longer available.
Download limit has been reached.

Or configure custom message in settings.

Per-User Download Limit

Overview

Limits how many times each individual user can download a specific package.

Setting Per-User Limit

  • Edit a package
  • Find Package Settings tab
  • Locate Downloads Per User field
  • Enter limit
  • Save
Downloads Per User: [3]
(0 = unlimited)

How It Works

Package: Software Pro
Per-User Limit: 3

User: John
  Download 1 ✓
  Download 2 ✓
  Download 3 ✓
  Download 4 ✗ "You've reached your download limit"

User: Mary
  Download 1 ✓ (separate count)
  Download 2 ✓
  ...

Guest Users

For non-logged-in users:

  • Tracked by IP address
  • Or session/cookie if enabled
  • Less reliable than logged-in tracking

Use Cases

Scenario Limit
Single download (one-time) 1
Multiple devices 3-5
Regular re-downloads 10-20
Generous access 50+

Configuring Limits

Package-Level Settings

In the package editor:

┌─────────────────────────────────────────┐
│ Download Limits                         │
├─────────────────────────────────────────┤
│ Global Quota:      [0        ] downloads│
│ Per-User Limit:    [3        ] downloads│
│                                         │
│ ☐ Count downloads from all versions     │
│ ☐ Reset limit on new version            │
└─────────────────────────────────────────┘

Global Default Settings

At Downloads > Settings > General:

Default Download Limits:
├─ Default Global Quota: [0] (0=unlimited)
├─ Default Per-User Limit: [0] (0=unlimited)
└─ Guest Download Limit: [1]

Version-Based Limits

☐ Reset user limit when package updates
   (Users can re-download after new version)

☐ Count downloads across all versions
   (Download any version counts toward limit)

Limit Messages

Customizing Messages

At Downloads > Settings > Messages:

Quota Reached Message:
[This download is no longer available. The maximum download limit has been reached.]

User Limit Message:
[You've reached your download limit for this file. Contact support for assistance.]

Dynamic Placeholders

Placeholder Displays
{limit} The limit number
{downloads} User’s download count
{remaining} Downloads remaining
{package} Package title

Example:

You've downloaded {package} {downloads} times.
Your limit is {limit} downloads. You have {remaining} remaining.

Viewing Limit Status

Admin View

In package list or edit screen:

Package: Software Pro
───────────────────────
Global: 450 / 1000 downloads

User Dashboard

In user’s download history:

Software Pro
Downloaded: 2 / 3 times
[Download] (1 remaining)

Shortcode Display

Show remaining downloads:

[wpdm_remaining_downloads id="123"]

Output: “2 downloads remaining”

Role-Based Limits (Add-on)

Overview

Advanced Access Control add-on enables different limits per user role.

Configuration

Role-Based Download Limits:
├─ Administrator: Unlimited
├─ Editor: 50 per package
├─ Author: 20 per package
├─ Subscriber: 5 per package
└─ Guest: 1 per package

How It Works

Package: Premium Template
Role Limits:
  - Subscriber: 3 downloads
  - Premium Member: 10 downloads
  - VIP Member: Unlimited

User with "Premium Member" role:
  Download 1-10: ✓
  Download 11: ✗ "Limit reached"

Daily Download Limits (Add-on)

Overview

Limits downloads per user per day across all packages.

Configuration

At Downloads > Settings > Limits:

Daily Download Limit:
├─ Enable: ☑
├─ Default Limit: [10] downloads per day
├─ Reset Time: [00:00] (midnight)
└─ Exclude Roles: [Administrator, Editor]

Role-Specific Daily Limits

Daily Limits by Role:
├─ Guest: 3 / day
├─ Subscriber: 10 / day
├─ Premium: 50 / day
└─ VIP: Unlimited

User Experience

Daily Downloads: 8 / 10

[Download Software] ✓
[Download Templates] ✓

Daily Downloads: 10 / 10

[Download Audio] ✗
"Daily download limit reached. Try again tomorrow."

Limit Reset Options

Manual Reset

For individual user:

  • Go to Downloads > Statistics
  • Find user’s download records
  • Select and delete entries
  • User’s count resets

Version Reset

When package updates:

☑ Reset user limits on new version

Users can re-download when version changes.

Time-Based Reset

With Daily Limits add-on:

Auto-reset: Daily at midnight
User's count: 0 at start of each day

Bulk Reset

Reset all users for a package:

  • Edit package
  • Find Reset Downloads option
  • Click Reset All User Counts
  • Confirm action

Implementation Examples

Free Trial Limit

Package: Software Trial
Per-User Limit: 1
Message: "Trial can only be downloaded once.
         Purchase full version for unlimited access."

Fair Use Policy

Package: Resource Library
Per-User Limit: 10
Message: "Fair use limit reached.
         Contact us for extended access."

Limited Edition

Package: Limited Template Pack
Global Quota: 100
Message: "Only 100 copies available!
         [X] remaining."

Subscription Tiers

Free Tier:
  - Daily Limit: 3
  - Per-Package: 1

Basic Tier:
  - Daily Limit: 20
  - Per-Package: 5

Premium Tier:
  - Daily Limit: 100
  - Per-Package: Unlimited

Tracking Downloads

What’s Tracked

Data Purpose
User ID Identify registered users
IP Address Track guests
Package ID Which package
Timestamp When downloaded
Version Which version

Database Storage

Downloads tracked in wp_ahm_download_stats:

| id | pid | uid | timestamp | ip_address | version |
|----|-----|-----|-----------|------------|---------|
| 1  | 123 | 5   | 170614... | 192.168... | 2.0.0   |
| 2  | 123 | 5   | 170614... | 192.168... | 2.0.0   |
| 3  | 123 | 5   | 170614... | 192.168... | 2.0.0   |

Viewing Counts

Per-user download count query:

SELECT COUNT(*) FROM wp_ahm_download_stats
WHERE pid = 123 AND uid = 5;
-- Result: 3

Combining with Other Features

Limits + Locks

Package: Premium Download
├─ Per-User Limit: 3
├─ Email Lock: Required
└─ Terms Lock: Required

User must unlock, then limit applies.

Limits + Roles

Package: Software
├─ Access: Premium Members only
├─ Per-User Limit: 5
└─ Daily Limit: 10 (site-wide)

Limits + Paid Products

With Premium Packages:

Product: Software License
├─ Per-User Limit: Based on license tier
├─ Personal: 3 downloads
├─ Business: 10 downloads
└─ Enterprise: Unlimited

Troubleshooting

Limit Not Enforced

Causes:

  • Logging disabled
  • User not tracked
  • Cache serving old page

Solutions:

  • Enable download logging
  • Verify user identification
  • Clear page cache
  • Check database for records

Wrong Count Showing

Cause: Multiple tracking entries

Solutions:

  • Check for duplicate records
  • Clear and rebuild stats
  • Verify counting logic

Guests Bypassing Limits

Cause: IP/session changes

Solutions:

  • Require login for limited packages
  • Use email lock for identification
  • Combine multiple tracking methods

Limit Reset Unexpectedly

Causes:

  • Version change triggered reset
  • Admin cleared stats
  • Database issue

Solutions:

  • Check version reset setting
  • Review admin actions
  • Verify database integrity

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