

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.
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:
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.
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.
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.
Product Expiry Pro for WooCommerce runs on top of the free plugin and adds the features stores ask for most: