You set up a delivery date plugin, configured the settings, and hit save. But the estimates aren’t appearing on your product pages or checkout. This is one of the most common frustrations WooCommerce store owners run into — and in most cases, the fix is simpler than you think.
Here are the most likely reasons delivery dates aren’t showing up, and how to fix each one.
1. The Plugin Isn’t Enabled
It sounds obvious, but it’s the most common culprit. Many delivery date plugins have a master on/off toggle that’s separate from simply activating the plugin in WordPress. If that toggle is off, nothing displays — regardless of any other settings you’ve configured.
In QuickShipD, this is the ‘Enable QuickShipD’ toggle at the top of the Delivery tab. Make sure it’s switched on and that you’ve clicked Save Settings.
2. The Display Location Isn’t Turned On
Even when the plugin is enabled, you need to tell it where to show estimates. Most plugins have display controls that are turned off by default for specific pages.
In QuickShipD’s Display tab, you’ll find individual toggles for Product pages, Shop/archive pages, Cart page, and Checkout page. If the page where you’re expecting to see the estimate has its toggle off, nothing will appear there. Check each location independently — they’re controlled separately.
3. The Delivery Days Are Set to Zero or Left Blank
If your minimum and maximum delivery days are both set to zero, or left empty, the plugin has no data to calculate from. The result is either a blank display or no display at all. Go to your Delivery settings and make sure you’ve entered valid numbers — for example, a minimum of 3 days and a maximum of 5 days.
4. Theme Compatibility Issues
Some WooCommerce themes use heavily customised product page templates that don’t include all the standard WooCommerce hook positions. If a plugin relies on a specific hook to inject its output (like after the price, or before the add-to-cart button), and your theme has removed or moved that hook, the estimate won’t display.
To test this, temporarily switch to the default Storefront theme and check if the estimates appear. If they do, the issue is with your active theme’s template structure. Contact your theme developer or the plugin’s support team with that information.
5. A Caching Plugin Is Serving Old Pages
If you recently enabled the plugin or changed its settings, your caching plugin might be serving an older version of your product pages that doesn’t include the delivery estimate. Clear your cache completely — both the server-side cache and any CDN cache and reload the page.
6. The Product Has Its Estimate Hidden
QuickShipD allows you to hide the delivery estimate on a per-product basis. Inside each product’s data panel, under the Shipping tab, there’s a ‘Hide the delivery estimate for this product’ checkbox. If that’s checked for the product you’re testing on, no estimate will appear — even when the plugin is fully configured everywhere else.
| QUICK DIAGNOSIS CHECKLIST ✓ Enable toggle is ON in the Delivery tab ✓ Save Settings was clicked ✓ Display toggle for your page type is ON ✓ Min and Max delivery days are both filled in ✓ Cache has been cleared ✓ The specific product’s ‘Hide estimate’ checkbox is unchecked |
Work through that checklist in order and you’ll find the issue in almost every case. If the problem persists after all six checks, test with a default WordPress theme to isolate whether it’s a theme conflict.
Frequently asked questions
Why are my delivery dates not showing on the product page?
Work down in this order. Confirm the master enable toggle is on and that you clicked Save Settings — activating a plugin in WordPress is not the same as switching it on. Check the Display tab, because product pages have their own toggle independent of cart and checkout. Confirm your minimum and maximum delivery days hold real numbers rather than zero or blank, since with nothing to add there is nothing to print. Then check the product itself: a per-product “hide estimate” checkbox overrides every global setting you have configured.
If all four are correct, view the page source and search for the plugin’s wrapper class. If the markup is present but nothing is visible on screen, you have a CSS conflict rather than a configuration problem — usually a theme rule applying display:none or a colour that matches the background. That is a completely different fix, and it is worth ruling in or out before you open a support ticket.
Why do delivery dates show on the product page but not at checkout?
Almost always because your store uses the block-based Cart and Checkout rather than the classic shortcode versions. The Cart and Checkout blocks render through the Store API and JavaScript, and they do not fire the classic PHP hooks — woocommerce_review_order_before_submit, woocommerce_cart_totals_before_order_total and the rest simply never run. Anything built on those hooks displays perfectly on the product page, which is still a classic template, and then outputs nothing at checkout.
Nothing appears in your error log, because nothing failed: the hook was never called. To confirm it, edit your Checkout page in the block editor. If you see one large “Checkout” block rather than a shortcode, that is your answer. From there you either revert those pages to the shortcode versions, or move to a plugin that registers a proper block integration. There is no filter you can add to make a classic hook fire inside a block.
Why did delivery dates stop showing after I switched themes?
Because the estimate is injected at a WooCommerce template hook, and your new theme either omits that hook or has moved it. Themes that ship their own copies of single-product.php or the product summary partials frequently drop actions like woocommerce_single_product_summary, or reposition them so the output lands somewhere you are not looking. The plugin’s callback is still registered; it is just never called.
Test it by switching temporarily to Storefront or a default Twenty-something theme. If the dates come back, it is the theme rather than the plugin. Fix it either by choosing a different hook and priority in the plugin’s display settings, one your theme does keep, or by comparing the template overrides in your theme’s woocommerce/ folder against WooCommerce’s originals and restoring the missing do_action() call.
Do delivery dates work with a caching plugin?
Yes, with one caveat that catches people out. A delivery date is calculated when the page is generated, so a cached page freezes whatever date was correct at that moment. A product page cached on Friday will still be promising Friday’s estimate on Monday.
Exclude the cart and checkout from caching entirely — they are per-customer pages and should never be cached in the first place. On product pages, be careful with full-page caching if you display a countdown to your order cutoff, because a frozen countdown is worse than no countdown at all: either render it in JavaScript from the visitor’s clock, or set a cache lifetime short enough that the page cannot outlive the day it was built. And after any settings change, clear the page cache and the CDN cache, or you will spend an hour debugging a page that no longer exists.
Why is the delivery date wrong by one day?
Nearly always a timezone mismatch between your server and your store. WordPress keeps the store timezone under Settings → General, but PHP on the server has its own, very often UTC. Any code that calls date() or new DateTime( 'now' ) without passing a timezone gets the server’s, not yours. A store set to America/New_York on a UTC server rolls over to “tomorrow” at 7pm or 8pm local time, so every evening visitor sees a date one day ahead — and it looks correct all morning, which is why it takes so long to spot.
In code, the fix is to pass wp_timezone() when you construct the date and use date_i18n() rather than date() for output. If you are using a plugin, first check that Settings → General is set to a named city such as Europe/London rather than a raw UTC offset. Offsets do not observe daylight saving, so a store configured as “UTC+1” will be an hour out for half the year and produce exactly the same off-by-one date.
