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:
- User selects variation attributes (size, color, format, etc.)
- Download button updates for selected variation
- Variation-specific files are downloaded
- 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:
- Create Variable Product in WooCommerce
- Add attributes (e.g., Format: PDF, EPUB, MOBI)
- Create variations
- Set each variation to:
- Virtual: Yes
- Downloadable: Yes
- Regular price: 0
- Add downloadable files to each variation
- Save product
Plugin Settings:
- Go to WP Enhanced > Free Download Woo, then click General in the sidebar
- Ensure "Enable for variable products" is checked
- Configure display options
- 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:
- ✅ Verify variation is selected
- ✅ Check variation is virtual and downloadable
- ✅ Confirm variation price is 0
- ✅ Check variation has downloadable files
- ✅ Clear all caches
Wrong Files Downloaded:
- ✅ Verify correct variation selected
- ✅ Check variation files in product edit
- ✅ Test with different variation
- ✅ Look for JavaScript errors
- ✅ Check theme compatibility
Variation Not Tracked:
- ✅ Verify tracking is enabled
- ✅ Check variation ID is passed
- ✅ Look for PHP errors
- ✅ Test with simple product
- ✅ 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:
- User views bundle product
- Download buttons appear for each bundled item
- User can download all items individually
- Or download all as single ZIP
- 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

Configuration
Bundle Setup:
- Install WooCommerce Product Bundles
- Create Bundle Product
- Add bundled items
- Set bundle to:
- Virtual: Yes
- Downloadable: Yes (if bundle itself has files)
- Regular price: 0
- Ensure bundled items are free downloadable products
- Save bundle
Plugin Settings:
- Go to WP Enhanced > Free Download Woo, then click General in the sidebar
- Enable "Support for Product Bundles"
- Configure bundle display options
- 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:
- ✅ Verify Product Bundles plugin active
- ✅ Check bundle is free and downloadable
- ✅ Confirm bundled items are valid
- ✅ Check bundled items have files
- ✅ Test individual items separately
Missing Bundled Items:
- ✅ Verify items added to bundle
- ✅ Check item visibility settings
- ✅ Confirm items are free
- ✅ Check item stock status
- ✅ Review bundle configuration
Bundle Tracking Issues:
- ✅ Verify tracking is enabled
- ✅ Check bundle ID is logged
- ✅ Look for bundled item IDs
- ✅ Review tracking logs
- ✅ 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.
Paid Member Subscriptions
Discount-Based Free Downloads:
- Products free with 100% discount
- Subscription-based access
- Member-specific limits
- Integration with PMS
Configuration:
- Install Paid Member Subscriptions
- Create subscription plans
- Add 100% discount for members
- Configure download limits per plan
- Test member downloads
WooCommerce Products List (NitroWeb)
Table Display:
- Download buttons in product tables
- Compact button styling
- Quick download access
- Table-specific templates
Configuration:
- Install WooCommerce Products List
- Create product table
- Include free download products
- Enable download buttons in table
- 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);
Related Topics
- Download Tracking - Track variation/bundle downloads
- Download Limits - Variation-specific limits
- Email Capture - Capture data for variations
- MailChimp Integration - Tag by variation
- WooCommerce Memberships - Member access
- Settings Reference Pro - Complete Pro settings