Compatibility notes
Who this is for
This page is for developers and site owners integrating the plugin with WooCommerce extensions, page builders, caching, and third-party plugins.
WooCommerce compatibility
Minimum Requirements
- WooCommerce: 3.0+
- Tested up to: 8.x
- HPOS: Fully compatible
Core Integration Points
Product Types:
- Simple products ✅
- Variable products ✅ (Pro)
- Grouped products ❌
- External/Affiliate products ❌
- Subscription products ✅ (Pro)
Download Methods:
- Force downloads ✅
- X-Accel-Redirect/X-Sendfile ✅
- Redirect only ✅
Product Features:
- Downloadable files ✅
- Virtual products ✅
- Free products (£0.00) ✅
- Paid products ❌
WooCommerce Extensions
WooCommerce Memberships
Compatibility: Full (Pro only)
Features:
- Membership plan-specific download limits
- Restricted product handling
- Member-only downloads
- Membership status checking
Implementation:
// Check if user has active membership
if (wc_memberships_is_user_active_member($user_id, $plan_id)) {
// Apply membership limits
}
Hooks:
somdn_custom_membership_limit_check- Custom limitssomdn_user_has_limit_excluded_membership- Exclusions
WooCommerce Subscriptions
Compatibility: Full (Pro only)
Features:
- Free trial-specific limits
- Subscription status checking
- Renewal-based limit refresh
- Trial period detection
Implementation:
// Check if user is in free trial
if (wcs_user_has_subscription($user_id, '', 'active')) {
$subscription = wcs_get_users_subscriptions($user_id);
if ($subscription->is_trial()) {
// Apply trial limits
}
}
Hooks:
somdn_subscription_trial_check- Trial detectionsomdn_subscription_limit_refresh- Renewal handling
WooCommerce PDF Watermark
Compatibility: Full (Pro only)
Features:
- Text watermarks
- Image watermarks
- Custom watermark text per product
- Template tags support
Implementation:
add_filter('somdn_download_path', 'apply_watermark', 10, 2);
function apply_watermark($file_path, $product_id) {
if (is_pdf($file_path)) {
return watermark_pdf($file_path, $product_id);
}
return $file_path;
}
Template Tags:
{user_name}- User's full name{user_email}- User's email{date}- Download date{product_name}- Product name
Paid Member Subscriptions
Compatibility: Partial (Pro only)
Features:
- Discount-based free downloads
- Member-only access
- Subscription status checking
Limitations:
- No built-in limit integration
- Requires custom code for limits
WooCommerce Products List (NitroWeb)
Compatibility: Full
Features:
- Table display compatibility
- Download button in tables
- Quick View integration
Implementation: Automatically detected and integrated.
Theme Compatibility
General Compatibility
Works with:
- All WooCommerce-compatible themes
- Storefront ✅
- Astra ✅
- OceanWP ✅
- Divi ✅
- Avada ✅
Requirements:
- Theme must use standard WooCommerce hooks
- Theme must support WooCommerce product pages
Known Issues
Flatsome Theme:
- Quick View may require custom CSS
- Solution: Add custom styles in theme settings
Porto Theme:
- Archive display may need adjustment
- Solution: Use template overrides
Elementor Pro:
- Custom product templates may conflict
- Solution: Use Elementor widgets with shortcodes
Page Builder Compatibility
Elementor
Compatibility: Full
Usage:
- Use shortcodes in text widgets
- Use HTML widget for custom layouts
- Compatible with Elementor Pro WooCommerce widgets
Example:
[download_now id="123"]
WPBakery (Visual Composer)
Compatibility: Full
Usage:
- Use shortcode element
- Use raw HTML element for custom layouts
Gutenberg
Compatibility: Full
Usage:
- Use shortcode block
- Use HTML block for custom layouts
- Compatible with WooCommerce blocks
Divi Builder
Compatibility: Full
Usage:
- Use code module for shortcodes
- Use text module with shortcodes enabled
- Compatible with Divi WooCommerce modules
Caching Plugin Compatibility
WP Rocket
Compatibility: Full
Recommendations:
- Exclude download URLs from cache
- Exclude email capture forms from cache
- Enable logged-in user cache
Configuration:
Exclude URLs:
/wp-admin/admin-ajax.php?action=somdn_*
W3 Total Cache
Compatibility: Full
Recommendations:
- Exclude download pages from page cache
- Exclude AJAX actions from object cache
WP Super Cache
Compatibility: Full
Recommendations:
- Disable caching for logged-in users
- Exclude download URLs
LiteSpeed Cache
Compatibility: Full
Recommendations:
- Exclude download URLs from cache
- Enable separate cache for logged-in users
Security Plugin Compatibility
Wordfence
Compatibility: Full
Notes:
- Download requests may trigger rate limiting
- Whitelist plugin AJAX actions if needed
Sucuri
Compatibility: Full
Notes:
- May flag high download activity
- Whitelist download URLs if needed
iThemes Security
Compatibility: Full
Notes:
- Compatible with all security features
- No special configuration needed
CDN Compatibility
Cloudflare
Compatibility: Full
Recommendations:
- Exclude download URLs from cache
- Use page rules for download paths
Page Rules:
URL: *download*
Cache Level: Bypass
KeyCDN
Compatibility: Full
Recommendations:
- Exclude dynamic content
- Use zone aliases for static files
Amazon CloudFront
Compatibility: Full
Recommendations:
- Configure signed URLs for downloads
- Exclude dynamic content from distribution
Multilingual Plugin Compatibility
WPML
Compatibility: Full
Features:
- Translatable strings
- Multi-language product support
- Language-specific settings
Translation:
- Settings page strings
- Button text
- Error messages
- Email templates
Polylang
Compatibility: Full
Features:
- Language switching
- Translated products
- Language-specific downloads
TranslatePress
Compatibility: Full
Features:
- Visual translation
- Automatic translation
- Frontend editing
Email Marketing Compatibility
MailChimp
Compatibility: Full (Pro only)
Features:
- Direct API integration
- List subscription
- Dynamic tagging
- Double opt-in support
Mailster
Compatibility: Partial
Notes:
- Requires custom integration
- Use hooks for subscription
Newsletter
Compatibility: Partial
Notes:
- Requires custom integration
- Use hooks for subscription
Analytics Compatibility
Google Analytics
Compatibility: Full
Implementation:
// Track downloads
jQuery(document).on('click', '.somdn-download-button', function() {
gtag('event', 'download', {
'event_category': 'Free Downloads',
'event_label': jQuery(this).data('product-name')
});
});
MonsterInsights
Compatibility: Full
Features:
- Automatic download tracking
- Event tracking
- Enhanced ecommerce
Matomo
Compatibility: Full
Implementation:
// Track downloads
_paq.push(['trackEvent', 'Free Downloads', 'Download', productName]);
Performance Optimization
Object Caching
Compatible with:
- Redis ✅
- Memcached ✅
- APCu ✅
Recommendations:
- Cache product validity checks
- Cache user limits
- Cache download counts
Implementation:
$cache_key = 'somdn_product_valid_' . $product_id;
$is_valid = wp_cache_get($cache_key);
if (false === $is_valid) {
$is_valid = somdn_is_product_valid($product_id);
wp_cache_set($cache_key, $is_valid, '', HOUR_IN_SECONDS);
}
Database Optimization
Recommendations:
- Index custom post type queries
- Limit download log retention
- Archive old statistics
Cleanup:
// Delete logs older than 90 days
function cleanup_old_logs() {
$args = array(
'post_type' => 'somdn_tracked',
'date_query' => array(
array('before' => '90 days ago')
),
'posts_per_page' => -1,
'fields' => 'ids'
);
$old_logs = get_posts($args);
foreach ($old_logs as $log_id) {
wp_delete_post($log_id, true);
}
}
Known Conflicts
Conflicting Plugins
Download Manager Plugins:
- May conflict with download handling
- Solution: Disable for free products
Custom Checkout Plugins:
- May interfere with purchasability
- Solution: Exclude free products
Custom Product Type Plugins:
- May not recognize free downloads
- Solution: Add custom compatibility
Resolving Conflicts
Step 1: Identify Conflict
// Enable debug mode
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Step 2: Test in Isolation
- Disable other plugins
- Test with default theme
- Enable plugins one by one
Step 3: Add Compatibility
// Example compatibility fix
add_filter('conflicting_plugin_filter', 'fix_conflict');
function fix_conflict($value) {
if (somdn_is_free_download()) {
return modified_value;
}
return $value;
}
Testing Compatibility
Test Checklist
- Product page displays correctly
- Download buttons work
- Email capture functions (Pro)
- Limits enforce correctly (Pro)
- Statistics track properly (Pro)
- MailChimp integration works (Pro)
- No JavaScript errors
- No PHP errors
- Mobile responsive
- Cache compatibility
Testing Tools
Browser Console: Check for JavaScript errors
Query Monitor: Monitor database queries and performance
Debug Bar: View PHP errors and warnings
WP_DEBUG: Enable WordPress debug mode
Reporting issues
Information to provide
- WordPress version
- WooCommerce version
- Plugin version
- PHP version
- Theme name and version
- Conflicting plugin name and version
- Error messages
- Steps to reproduce
Support channels
- Free edition: WordPress.org support forum — search existing topics and post with the information above.
- Pro edition: WP Enhanced — submit a support ticket with your license key and the information above.
What's Next
- Actions reference - Action hooks for custom code
- Filters reference - Filter hooks to modify behavior
- Security - Security best practices
- Troubleshooting - Common issues and fixes