Skip to main content
PRO Only
Pro Feature

This page documents Pro edition compatibility with WooCommerce Memberships. Upgrade to Pro to access these features.

Pro: WooCommerce Memberships Compatibility

Complete integration with WooCommerce Memberships for membership-based download limits and access control.

Overview

Free Downloads for WooCommerce Pro integrates seamlessly with WooCommerce Memberships to provide:

  • Membership plan-specific download limits
  • Member-only free downloads
  • Membership status checking
  • Free trial-specific limits
  • Automatic limit exclusions for specific plans

Features

Membership Plan Limits

Set custom download limits for each membership plan.

Configuration:

  1. Go to WooCommerce > Memberships > Plans
  2. Edit a membership plan
  3. Scroll to "Free Downloads Limits" section
  4. Configure limits for this plan

Settings:

  • Enable limits for this plan
  • Download limit amount
  • Limit frequency (Day/Week/Month/Year)
  • Applicable products
  • Custom error message

Priority: Membership limits override role-based and global limits.

Member-Only Downloads

Restrict free downloads to members only.

Setup:

  1. Create membership plan
  2. Add products to plan
  3. Configure download limits
  4. Members can download without purchase

Benefits:

  • Exclusive member content
  • Membership value addition
  • Download tracking per member
  • Limit enforcement per plan

Free Trial Limits

Different limits for members in free trial period.

Configuration:

  1. Edit membership plan
  2. Enable "Free Trial Limits"
  3. Set trial-specific limits
  4. Configure trial frequency

Use Cases:

  • Lower limits during trial
  • Encourage upgrades
  • Prevent trial abuse
  • Test membership value

Membership Status Checking

Automatic verification of membership status.

Checks:

  • Active membership
  • Expired membership
  • Cancelled membership
  • Free trial status
  • Membership plan type

Behavior:

  • Active members: Apply plan limits
  • Expired members: Revert to global limits
  • Trial members: Apply trial limits
  • Non-members: Apply global limits

Configuration

Enable Membership Integration

Step 1: Install WooCommerce Memberships

Purchase and install WooCommerce Memberships from WooCommerce.com.

Step 2: Create Membership Plans

  1. Go to WooCommerce > Memberships > Plans
  2. Click Add Plan
  3. Configure plan details
  4. Save plan

Step 3: Configure Download Limits

  1. Edit membership plan
  2. Find "Free Downloads Limits" meta box
  3. Check "Enable download limits for this plan"
  4. Set limit amount and frequency
  5. Select applicable products
  6. Save plan

Limit Settings

Amount: Number of downloads allowed per period.

Example: 10 downloads

Frequency: Time period for limit enforcement.

Options:

  • Day - Resets daily at midnight
  • Week - Resets every 7 days
  • Month - Resets every 30 days
  • Year - Resets every 365 days

Products: Select which products are subject to limits.

Options:

  • Empty - All products
  • Selected - Only specific products

Error Message: Custom message shown when limit reached.

Example:

You've reached your membership download limit. 
Upgrade to Premium for unlimited downloads!

Free Trial Configuration

Enable Trial Limits: Check "Enable free trial limits"

Trial Amount: Downloads allowed during trial.

Example: 3 downloads during trial

Trial Frequency: Time period for trial limits.

Behavior:

  • During trial: Trial limits apply
  • After trial: Regular plan limits apply
  • Trial cancelled: Revert to global limits

Use Cases

Tiered Membership Downloads

Bronze Plan:

  • 5 downloads per month
  • Access to basic products
  • Standard support

Silver Plan:

  • 20 downloads per month
  • Access to premium products
  • Priority support

Gold Plan:

  • Unlimited downloads
  • Access to all products
  • VIP support

Implementation:

// Bronze Plan (ID: 123)
Limit: 5 downloads per Month
Products: Basic category

// Silver Plan (ID: 456)
Limit: 20 downloads per Month
Products: Basic + Premium categories

// Gold Plan (ID: 789)
Exclude from limits (unlimited)
Products: All

Free Trial Strategy

Trial Period:

  • 7-day free trial
  • 3 downloads during trial
  • Access to sample products

After Trial:

  • 10 downloads per month
  • Access to full catalog
  • Encourage upgrade to unlimited

Implementation:

Trial Limits: 3 downloads per Week
Regular Limits: 10 downloads per Month

Member Exclusives

Member-Only Products:

  • Create products for members only
  • Set as free downloads
  • Apply membership restrictions
  • Track member downloads

Benefits:

  • Exclusive member content
  • Increased membership value
  • Member retention
  • Download analytics

Developer Integration

Check Membership Status

// Check if user has active membership
if (function_exists('wc_memberships_is_user_active_member')) {
$is_member = wc_memberships_is_user_active_member($user_id, $plan_id);

if ($is_member) {
// Apply membership limits
}
}

Get Membership Limits

// Get limits for user's membership plan
$membership_limits = get_post_meta($plan_id, 'somdn_membership_limit_amount', true);
$membership_freq = get_post_meta($plan_id, 'somdn_membership_limit_freq', true);

Custom Membership Logic

add_filter('somdn_custom_membership_limit_check', 'custom_membership_limits', 10, 3);
function custom_membership_limits($limits, $user_id, $product_id) {
// Get user's membership plans
$memberships = wc_memberships_get_user_memberships($user_id);

foreach ($memberships as $membership) {
if ($membership->is_active()) {
// Apply custom logic
$plan_id = $membership->get_plan_id();

// Get plan limits
$amount = get_post_meta($plan_id, 'somdn_membership_limit_amount', true);

if ($amount) {
$limits['amount'] = $amount;
$limits['freq'] = get_post_meta($plan_id, 'somdn_membership_limit_freq', true);
}
}
}

return $limits;
}

Exclude Membership from Limits

add_filter('somdn_user_has_limit_excluded_membership', 'exclude_vip_membership', 10, 2);
function exclude_vip_membership($excluded, $user_id) {
// Exclude VIP membership plan from limits
$vip_plan_id = 789;

if (wc_memberships_is_user_active_member($user_id, $vip_plan_id)) {
return true;
}

return $excluded;
}

Troubleshooting

Limits Not Applying

Check:

  1. ✅ WooCommerce Memberships installed and active
  2. ✅ User has active membership
  3. ✅ Membership plan has limits enabled
  4. ✅ Download tracking is enabled
  5. ✅ Products are included in plan limits

Solution: Verify membership status and plan configuration.

Wrong Limits Applied

Check:

  1. ✅ User's membership plan
  2. ✅ Plan limit configuration
  3. ✅ Global limit settings
  4. ✅ User-specific limits

Priority Order:

  1. User-specific limits (highest)
  2. Membership plan limits
  3. User role limits
  4. Global limits (lowest)

Trial Limits Not Working

Check:

  1. ✅ Trial limits enabled in plan
  2. ✅ User is in trial period
  3. ✅ Trial limit amount set
  4. ✅ Trial frequency configured

Solution: Verify trial configuration and user's trial status.

Membership Not Detected

Check:

  1. ✅ WooCommerce Memberships version
  2. ✅ Membership status (active/expired)
  3. ✅ User assigned to plan
  4. ✅ Plan is published

Solution: Verify membership assignment and status.

Best Practices

Limit Configuration

  • Set realistic limits for each plan
  • Consider member value proposition
  • Test limits before going live
  • Monitor member feedback
  • Adjust based on usage patterns

Trial Strategy

  • Offer generous trial limits
  • Showcase premium content
  • Encourage upgrades
  • Track trial conversions
  • Optimize trial experience

Member Communication

  • Clearly communicate limits
  • Show remaining downloads
  • Provide upgrade options
  • Send limit notifications
  • Offer support resources

Performance

  • Monitor database queries
  • Cache membership checks
  • Optimize limit calculations
  • Regular database cleanup
  • Performance testing