Version note: Bundle subscription support was added in DMSI Subscriptions Pro v1.1.0, in conjunction with DMSI DDLS v2.1.0.
When a customer purchases a bundle product (a DDLS product of type bundle), Subscriptions Pro creates one subscription linked to the parent bundle license — regardless of how many products are inside the bundle.
What This Extension Adds for Bundles: DDLS core handles license creation and renewal extension. Subscriptions Pro contributes the bundle renewal handler (which fires before core’s normal renewal flow), and sends a consolidated bundle renewal email listing all renewed products. Individual per-product renewal emails are suppressed for bundle renewals.
One Subscription Per Bundle #
- The subscription is linked to the bundle’s parent license.
- No individual subscriptions are created for child licenses.
- The subscription price, billing period, and billing interval come from the bundle WooCommerce product’s settings.
- All standard subscription lifecycle features apply to the bundle subscription: payment retry, dunning emails, grace periods, pause/resume, win-back campaigns — all behave normally because they operate on the subscription, not on individual child licenses.
Bundle Renewal Flow #
When the bundle subscription renewal payment succeeds:
- Subscriptions Pro’s handler fires at priority 10 on
dmsilm_subscription_payment_completed. - Before that (priority 5), DDLS core’s bundle renewal handler fires:
- Renews the parent license.
- Extends all non-cancelled child licenses atomically (database transaction — all succeed or all roll back).
- Fires
dmsilm_bundle_renewedwhen complete.
- Subscriptions Pro listens to
dmsilm_bundle_renewedand sends the consolidated renewal email. - Subscriptions Pro’s priority 10 handler then runs — cancels any active retry schedule, clears dunning state, and unsuspends the subscription if it was in grace period. All of this operates on the subscription record and is unaffected by how many child licenses exist.
Consolidated Renewal Email #
Instead of one renewal email per bundled product, the customer receives a single email that lists all products renewed in this cycle, along with each product’s new expiration date.
This email is sent by Subscriptions Pro’s handle_bundle_renewed() handler after all child licenses have been successfully extended.
Child License Guard #
Subscriptions Pro will not create a subscription for any license with source = bundle (child licenses). If code in another extension or custom development attempts to create a subscription for a bundle child license, Subscriptions Pro blocks it. Only the parent bundle license receives a subscription.
Configuring Bundle Subscriptions #
No special configuration is needed in Subscriptions Pro for bundles. Bundle subscriptions use the same retry schedules, dunning sequences, grace period durations, and notification settings as all other subscriptions.
To create a bundle product and configure its subscription settings, see Bundle Products in the DDLS documentation.
