Skip to main content
PRO Only
Pro Feature

This feature is only available in the Pro edition. Upgrade to Pro to access advanced product compatibility.

Pro: Variable Products & Product Bundles

The Pro edition provides enhanced compatibility with WooCommerce Variable Products and Product Bundles, allowing you to offer free downloads for complex product configurations.

Variable Products

Overview

Variable Products are WooCommerce products with multiple variations (e.g., different sizes, colors, formats). The plugin supports free downloads for variable products with full variation-specific functionality.

How It Works

Variation Selection:

  1. User selects variation attributes (size, color, format, etc.)
  2. Download button updates for selected variation
  3. Variation-specific files are downloaded
  4. Tracking logs variation information

Variation-Specific Downloads:

  • Each variation can have different downloadable files
  • Download button shows only when variation is selected
  • Variation name included in download logs
  • MailChimp tags can include variation details

Configuration

Product Setup:

  1. Create Variable Product in WooCommerce
  2. Add attributes (e.g., Format: PDF, EPUB, MOBI)
  3. Create variations
  4. Set each variation to:
    • Virtual: Yes
    • Downloadable: Yes
    • Regular price: 0
  5. Add downloadable files to each variation
  6. Save product

Plugin Settings:

  1. Go to WP Enhanced > Free Download Woo, then click General in the sidebar
  2. Ensure "Enable for variable products" is checked
  3. Configure display options
  4. Save settings

Variation Display

Before Selection:

  • "Select options" or custom message
  • Download button hidden
  • Variation attributes displayed

After Selection:

  • Download button appears
  • Shows selected variation name
  • Files specific to variation
  • Variation-specific tracking

Variation Tracking

Download logs include variation data:

Tracked Information:

  • Variation ID
  • Variation name
  • Selected attributes
  • Variation-specific files
  • Variation price (if applicable)

Export Data:

  • Variation ID column
  • Variation name column
  • Filter by specific variations
  • Segment by variation attributes

Variation Limits

Set different limits per variation:

add_filter('somdn_get_user_custom_limits', function($limits, $user_id, $product_id) {
$variation_id = $_REQUEST['variation_id'] ?? 0;

// Limit PDF format to 3 per day
if ($variation_id == 123) {
$limits['amount'] = 3;
$limits['freq'] = 'Day';
}

return $limits;
}, 10, 3);

Variation MailChimp Tags

Tag subscribers by variation:

Configuration:

Tags: {product_name}, {variation_name}, format-{variation_name}

Example Result:

eBook Collection, PDF Format, format-PDF Format

Troubleshooting Variable Products

Download Button Not Showing:

  1. ✅ Verify variation is selected
  2. ✅ Check variation is virtual and downloadable
  3. ✅ Confirm variation price is 0
  4. ✅ Check variation has downloadable files
  5. ✅ Clear all caches

Wrong Files Downloaded:

  1. ✅ Verify correct variation selected
  2. ✅ Check variation files in product edit
  3. ✅ Test with different variation
  4. ✅ Look for JavaScript errors
  5. ✅ Check theme compatibility

Variation Not Tracked:

  1. ✅ Verify tracking is enabled
  2. ✅ Check variation ID is passed
  3. ✅ Look for PHP errors
  4. ✅ Test with simple product
  5. ✅ Review tracking logs

Product Bundles

Overview

Product Bundles (WooCommerce Product Bundles extension) allow selling multiple products together. The plugin supports free downloads for bundled products.

How It Works

Bundle Downloads:

  1. User views bundle product
  2. Download buttons appear for each bundled item
  3. User can download all items individually
  4. Or download all as single ZIP
  5. Tracking logs bundle and individual items

Bundle-Specific Features:

  • Individual download buttons per bundled item
  • "Download All" button for entire bundle
  • Bundle-aware tracking
  • Bundle-specific limits

Placeholder: Screenshot of product bundle downloads

Configuration

Bundle Setup:

  1. Install WooCommerce Product Bundles
  2. Create Bundle Product
  3. Add bundled items
  4. Set bundle to:
    • Virtual: Yes
    • Downloadable: Yes (if bundle itself has files)
    • Regular price: 0
  5. Ensure bundled items are free downloadable products
  6. Save bundle

Plugin Settings:

  1. Go to WP Enhanced > Free Download Woo, then click General in the sidebar
  2. Enable "Support for Product Bundles"
  3. Configure bundle display options
  4. Save settings

Bundle Display Options

Individual Buttons:

  • Separate download button for each bundled item
  • Item names displayed
  • File counts shown
  • Individual tracking

Download All:

  • Single button to download entire bundle
  • Creates ZIP with all files
  • Bundle-level tracking
  • Faster for users

Mixed Display:

  • Individual buttons + Download All
  • User chooses preferred method
  • Flexible download options

Bundle Tracking

Download logs for bundles:

Bundle Download:

  • Bundle product ID
  • All bundled item IDs
  • All downloaded files
  • Bundle name

Individual Item Download:

  • Bundled item product ID
  • Parent bundle ID (optional)
  • Item-specific files
  • Item name

Bundle Limits

Per-Bundle Limits:

  • Limit downloads of entire bundle
  • Separate from individual item limits

Per-Item Limits:

  • Limit downloads of bundled items
  • Apply even when downloaded via bundle

Combined Limits:

add_filter('somdn_get_user_custom_limits', function($limits, $user_id, $product_id) {
// Check if product is part of bundle
$bundle_id = somdn_get_parent_bundle($product_id);

if ($bundle_id) {
// Apply bundle-specific limits
$limits['amount'] = 5;
$limits['freq'] = 'Week';
}

return $limits;
}, 10, 3);

Bundle MailChimp Tags

Tag by bundle and items:

Configuration:

Tags: bundle-{product_name}, {bundled_item_names}

Example Result:

bundle-Starter Pack, eBook 1, eBook 2, Template Set

Troubleshooting Product Bundles

Bundle Downloads Not Working:

  1. ✅ Verify Product Bundles plugin active
  2. ✅ Check bundle is free and downloadable
  3. ✅ Confirm bundled items are valid
  4. ✅ Check bundled items have files
  5. ✅ Test individual items separately

Missing Bundled Items:

  1. ✅ Verify items added to bundle
  2. ✅ Check item visibility settings
  3. ✅ Confirm items are free
  4. ✅ Check item stock status
  5. ✅ Review bundle configuration

Bundle Tracking Issues:

  1. ✅ Verify tracking is enabled
  2. ✅ Check bundle ID is logged
  3. ✅ Look for bundled item IDs
  4. ✅ Review tracking logs
  5. ✅ Test with simple bundle

Advanced Compatibility

WooCommerce Subscriptions

Free Trial Downloads:

  • Offer free downloads during trial period
  • Different limits for trial vs. paid
  • Trial-specific tracking
  • Automatic limit refresh on renewal

Configuration:

add_filter('somdn_get_user_custom_limits', function($limits, $user_id) {
// Check if user has active subscription
if (wcs_user_has_subscription($user_id, '', 'active')) {
$subscription = wcs_get_users_subscriptions($user_id)[0];

// Check if in trial period
if ($subscription->get_trial_end_date()) {
$limits['amount'] = 5; // Trial limit
} else {
$limits['amount'] = 20; // Paid limit
}
}

return $limits;
}, 10, 2);

WooCommerce Memberships

Membership-Based Access:

  • Restrict downloads to members
  • Membership plan-specific limits
  • Member-only products
  • Membership expiration handling

See WooCommerce Memberships Integration for details.

Discount-Based Free Downloads:

  • Products free with 100% discount
  • Subscription-based access
  • Member-specific limits
  • Integration with PMS

Configuration:

  1. Install Paid Member Subscriptions
  2. Create subscription plans
  3. Add 100% discount for members
  4. Configure download limits per plan
  5. Test member downloads

WooCommerce Products List (NitroWeb)

Table Display:

  • Download buttons in product tables
  • Compact button styling
  • Quick download access
  • Table-specific templates

Configuration:

  1. Install WooCommerce Products List
  2. Create product table
  3. Include free download products
  4. Enable download buttons in table
  5. Customize button appearance

Use Cases

Digital Product Variations

eBook Formats:

  • Offer PDF, EPUB, MOBI variations
  • User selects preferred format
  • Track format preferences
  • Optimize future offerings

Software Versions:

  • Windows, Mac, Linux variations
  • Version-specific downloads
  • Platform tracking
  • Targeted updates

Language Variations:

  • English, Spanish, French, etc.
  • Language-specific files
  • Localization tracking
  • Regional marketing

Content Bundles

Course Materials:

  • Bundle lessons, worksheets, videos
  • Download all or individually
  • Track engagement
  • Identify popular content

Resource Packs:

  • Templates, graphics, fonts bundle
  • Flexible download options
  • Usage analytics
  • Upsell opportunities

Starter Kits:

  • Essential tools bundle
  • Onboarding materials
  • New user tracking
  • Conversion optimization

Membership Benefits

Member Resources:

  • Exclusive downloads for members
  • Membership tier-based limits
  • Member engagement tracking
  • Retention insights

Trial Incentives:

  • Free downloads during trial
  • Encourage trial signups
  • Trial conversion tracking
  • Upgrade prompts

Best Practices

Product Configuration

  • Clear variations: Use descriptive variation names
  • Logical attributes: Group related variations
  • Complete files: Ensure all variations have files
  • Test thoroughly: Test each variation

Bundle Design

  • Cohesive bundles: Group related products
  • Value proposition: Explain bundle benefits
  • Clear naming: Use descriptive bundle names
  • Optimal size: Don't over-bundle (3-7 items ideal)

User Experience

  • Easy selection: Make variation selection obvious
  • Clear labels: Label download buttons clearly
  • Fast downloads: Optimize file sizes
  • Mobile friendly: Test on mobile devices

Tracking & Analytics

  • Variation insights: Track popular variations
  • Bundle performance: Monitor bundle downloads
  • User preferences: Identify patterns
  • Optimization: Use data to improve offerings

Developer Hooks

Filters

somdn_variation_download_files Modify files for variation downloads.

add_filter('somdn_variation_download_files', function($files, $variation_id) {
// Add bonus file for specific variation
if ($variation_id == 123) {
$files[] = array(
'name' => 'Bonus File',
'file' => '/path/to/bonus.pdf'
);
}
return $files;
}, 10, 2);

somdn_bundle_download_items Modify bundled items for download.

add_filter('somdn_bundle_download_items', function($items, $bundle_id) {
// Exclude specific item from bundle download
return array_filter($items, function($item) {
return $item['id'] != 456;
});
}, 10, 2);

somdn_variation_button_text Customize button text per variation.

add_filter('somdn_variation_button_text', function($text, $variation_id) {
$variation = wc_get_product($variation_id);
$format = $variation->get_attribute('format');
return "Download {$format}";
}, 10, 2);

Actions

somdn_variation_downloaded After variation download.

add_action('somdn_variation_downloaded', function($variation_id, $user_id) {
// Track variation preference
update_user_meta($user_id, 'preferred_format', $variation_id);
}, 10, 2);

somdn_bundle_downloaded After bundle download.

add_action('somdn_bundle_downloaded', function($bundle_id, $user_id) {
// Award points for bundle download
mycred_add('download_bonus', $user_id, 10, 'Downloaded bundle');
}, 10, 2);