You can display subscription start and end dates in WooCommerce cart and checkout by calculating the current billing period from the subscription product’s interval and appending it directly under the product name, instead of leaving that detail buried in small text near the recurring total.
Why Surface the Subscription Period Explicitly
- By default, WooCommerce Subscriptions shows renewal timing in small text near the total, easy to miss
- Customers benefit from seeing exactly what period they’re paying for before completing checkout
- It reduces “why was I charged again so soon/late” support questions after the first renewal
- Showing this consistently across cart, checkout, and order confirmation builds clearer expectations
Step 1: Build the Period Calculation Function
/** Calculate a readable start-end date string for a subscription product */
function get_subscription_period_label( $product, $from_timestamp = '' ) {
if ( ! is_a( $product, 'WC_Product_Subscription' ) && ! is_a( $product, 'WC_Product_Subscription_Variation' ) ) {
return '';
}
$start = $from_timestamp ? $from_timestamp : time();
$period = WC_Subscriptions_Product::get_period( $product );
$interval = WC_Subscriptions_Product::get_interval( $product );
$end = strtotime( "+{$interval} {$period}", $start ) - DAY_IN_SECONDS;
return sprintf(
'<p><small>Billing period: %s – %s</small></p>',
date_i18n( 'M j', $start ),
date_i18n( 'M j, Y', $end )
);
}Step 2: Show It in the Cart
/** Add the subscription period under each subscription item in the cart */
add_filter( 'woocommerce_cart_item_name', 'show_subscription_period_in_cart', 20, 3 );
function show_subscription_period_in_cart( $name, $cart_item, $cart_item_key ) {
$period_label = get_subscription_period_label( $cart_item['data'] );
return $name . $period_label;
}Step 3: Show It on the Checkout Order Review
/** Add the subscription period under each subscription item at checkout */
add_filter( 'woocommerce_checkout_cart_item_quantity', 'show_subscription_period_at_checkout', 20, 3 );
function show_subscription_period_at_checkout( $quantity_html, $cart_item, $cart_item_key ) {
return $quantity_html . get_subscription_period_label( $cart_item['data'] );
}Troubleshooting
Dates Look Off by One Day
Billing period math needs careful handling around month-end edge cases (like a subscription starting on the 31st renewing into a shorter month) — test with several different start dates, including month-ends, to confirm the calculation behaves as expected across edge cases.
Period Doesn’t Show for Some Subscription Products
Confirm the product is actually recognized as a subscription type (WC_Product_Subscription or its variation equivalent) — a product that looks like a subscription visually but isn’t the correct product type won’t match the type check in the function.
Frequently Asked Questions
Does this work for both simple and variable subscriptions?
Yes — the type check covers both WC_Product_Subscription and WC_Product_Subscription_Variation, so it applies whether the subscription is a simple product or a variation of a variable subscription.
Can I show this on the Thank You and View Order pages too?
Yes — the same period-calculation function can be reused with the order’s actual creation date (rather than the current time) hooked into the relevant order-item display filters on those pages.
Does this affect actual subscription billing logic?
No — this is purely a display enhancement; the underlying billing schedule is managed entirely by WooCommerce Subscriptions and is unaffected by this cosmetic addition.
Conclusion
Calculating and displaying the exact subscription billing period directly under the product name gives customers clearer expectations before they complete checkout, rather than leaving that detail in small, easy-to-miss text. Test the date math carefully around month-end edge cases, since that’s the most common source of an off-by-one error. Getting this right is really what display subscription start and end dates in woocommerce cart and checkout comes down to.
See also How to Display Product Categories on the WooCommerce Cart and Checkout Pages. Then read How to Display Total Discount Savings in the WooCommerce Cart and Checkout.
Prefer no code? All-in-One Utilities Woo Add-on adds over 50 WooCommerce features, so you can switch them on without code.