Product Expiry for WooCommerce
Product Expiry for WooCommerce

Product Expiry for WooCommerce

4.5/5 (13 ratings) 2K+ active installs Updated Jun 22, 2026
Set an expiry date and choose the action on expiry

Set an expiry date and choose the action on expiry

Product Expiry for WooCommerce gives every product and variation in your store an expiry date. When that date passes, the plugin does the cleanup for you. It can move the product to draft, set it out of stock, reduce its stock, or keep it visible with an “Expired” badge and the add to cart button disabled. You can also get an email the moment something expires.

No more forgotten sale items sitting live in your catalog. No more manually hunting for last season’s stock. You set the date once, and the plugin handles the rest on schedule.

It works for any store that sells things with a shelf life: food, cosmetics, and supplements, limited time offers and flash sales, seasonal lines, digital licenses and event tickets, rentals, and classified style listings.

What it does for you

Set an expiry date on any product or variation. You can also add a short note that shows instead of the date, like “Sold out for the season”. Expiry respects your site timezone and triggers at the end of the chosen day, scheduled individually per product so nothing fires early or late.

When a product expires, you choose what happens to it:

  • Leave it alone and just record that it expired
  • Move it to draft so it disappears from the store
  • Set it out of stock while keeping the page live
  • Reduce its stock by a set amount, handled through WooCommerce so HPOS and lookup tables stay in sync
  • Mark it as expired, which keeps the product visible, shows an “Expired” badge, and turns off add to cart

Show the expiry date where customers can see it

Turn the expiry date on or off for single product pages and shop and archive pages. You decide where it appears using a dropdown of common positions, or paste in a custom hook if your theme uses its own. You control the wording around the date with an {expiry_date} placeholder, set your own date format, and decide what shows after a product expires: keep the date, hide it, or swap in custom text.

The “Expired” badge is yours to style too. Change the label, pick the background color, and choose where it sits on single and archive pages. Variable products with no date of their own can roll up and display the soonest expiring variation on the parent. There is also a simple shortcode, [expiry_date before="" after=""], for dropping the date anywhere.

Keep it in orders and emails

Show the expiry date inside order details for both you and your customer, and include it in WooCommerce order emails so the record travels with every purchase. You can also send yourself an email notification when a product expires, with custom recipients and your own subject and body using {product_name}, {expiry_date}, and {product_url} placeholders.

Manage everything from the products list

A sortable Expiry column shows dates right in the products table, with a per variation breakdown for variable products. Quick edit the date, note, and action without opening the product. Filter the list to find what needs attention: within 7 days, within 30 days, this month, next month, within 3 months, within 6 months, or already expired. There is also an Email Log of the last 30 days of plugin emails, showing recipient, subject, type, and whether each one sent or failed.

Built to fit your store

  • Works with any well coded WooCommerce theme, no template editing needed
  • Translation ready, with WPML and Polylang sync across translated products
  • Full RTL stylesheet
  • No external API calls on the frontend and no tracking
  • Clean uninstall with no leftover options or cron jobs

Pro version

Product Expiry Pro for WooCommerce runs on top of the free plugin and adds the features stores ask for most:

  • Exact expiry time in hours and minutes, not just the date, so you can expire a flash sale at 6:00 PM sharp
  • Live countdown timer on product pages, and optionally archives, in three styles (blocks, badge, or minimal) with an urgency threshold and optional seconds
  • Customer reminder emails that tell buyers when something they purchased is about to expire, sent as one branded email per order and deduped so nobody gets spammed
  • Admin reminder emails that summarize everything expiring in the next few days
  • Auto discount before expiry that puts products on sale a set number of days out, by percentage or fixed amount, and restores the original price automatically afterward
  • Batch and lot tracking with quantity, supplier, and lot number per batch, listed earliest expiry first, plus a recall lookup that finds orders containing a given batch
  • CSV bulk tools to export every product with its expiry data, edit in a spreadsheet, and re import to update thousands of products at once
  • Premium dashboard that monitors every expiring product with status and date range filters
  • Inline plugin updates from your WordPress admin

See everything in Pro

Useful Links