Can I Set a Custom WooCommerce Billing Interval?
What's Actually Possible
WooCommerce Subscriptions stores billing interval as a number and billing period as a unit (day/week/month/year) separately, and the underlying renewal-scheduling logic (via Action Scheduler) works correctly with a day-based interval of any number — the limitation is purely in the product edit screen's dropdown, which only offers period-appropriate interval choices in the UI, not that the system can't calculate a 10-day cycle correctly.
add_filter( 'woocommerce_subscription_period_interval_strings', function( $intervals ) {
$intervals[10] = 'every 10th';
return $intervals;
} );
Things to Get Right
- Setting the billing period to "day" and the interval field to the desired number (10, in this example) directly, either through a filter unlocking the dropdown option or by adjusting the product's subscription meta programmatically.
- Pricing display may need a corresponding filter if the default "every 10th day" phrasing doesn't read naturally — the interval label itself is filterable separately from the underlying billing logic.
- Trial periods and sign-up fees continue to work normally with a day-based custom interval, since they're independent settings, but it's worth testing the combination specifically rather than assuming.
- Some third-party extensions that build on top of WooCommerce Subscriptions' billing period may assume only the standard week/month/year options are in use, and could need testing against a day-based custom interval before relying on them together.
How to Set It Up
- Add a small filter (or direct product-meta update) to expose the desired custom day-based interval in the subscription product's billing settings.
- Set the product's billing period to "day" and the interval to the specific number of days needed.
- Test a full renewal cycle on a staging copy, confirming the next renewal date calculates correctly and pricing displays sensibly to customers.
Need a custom billing interval implemented and tested properly? See custom WooCommerce development.