Give any product or variation an expiration date, then let the plugin handle it when the day arrives. Send it to draft, set it out of stock or mark it as expired, on schedule and in your store’s timezone.
Sale items that should be gone are still live. Last season’s products keep selling. Perishable goods need pulling the moment they pass their sell by date.
Product expiration dates end the manual cleanup. You set the date once and your WooCommerce catalog stays current without you watching the calendar.
How WooCommerce product expiration works.
Step 1
Set the date
Open any product and pick its expiry date, with an optional note like “Sold out for the season”. Each variation can have its own date.
Step 2
Choose the action
Decide what happens on the expiration date: draft, out of stock, reduce stock or mark as expired. Set it once per product.
Step 3
Let it run
The change is scheduled per product and runs at the end of the chosen day in your store’s timezone. You can get an email the moment it happens.
You decide what happens when a product expires.
Five actions, set per product or per variation. Pick the one that matches how you sell.
ActionWhat your customers see
Leave as isNothing changes. The expiry is recorded for your reference.
Move to draftThe product is unpublished and disappears from the store.
Out of stockThe page stays live, but no new orders can be placed.
Reduce stockManaged stock drops by the amount you set, kept in sync with HPOS.
Mark expiredAn Expired badge appears and add to cart is turned off.
Free on WordPress.org
A complete expiry workflow in the free plugin.
No add ons needed to start expiring products. Works with any well coded WooCommerce theme, without template overrides.
All prices are in USD. VAT or sales tax is calculated for your location at checkout. Orders are processed by Paddle, our Merchant of Record.
Reviews
What store owners say.
From the WordPress.org plugin directory, quoted as written. Read all reviews →
This is an excellent tool for anyone managing perishable stock or time-limited offers in WooCommerce. The automation for switching products to draft or out-of-stock saves a massive amount of manual work.
TanzirReview on WordPress.org
Very nice plugin, easy to use, does what it says! Excellent and fast support!
EvanReview on WordPress.org
Very good Plugin.. Thank you for this..
ShashwathiReview on WordPress.org
Built for stores that sell things with a shelf life.
Perishable goods
Food, cosmetics and supplements that must come off sale after their sell by date.
Flash sales
Limited time offers that end on time, with a countdown in Pro.
Tickets and licenses
Event tickets and digital licenses with a fixed validity window.
Seasonal lines
Holiday and summer ranges that should disappear off season.
Rentals and listings
Marketplace style stores where listings run for a set period.
Batch stock
Lots that expire on different dates, tracked batch by batch in Pro.
Plugin details
Actively maintained and tested.
Everything you need to check before installing. Both versions are updated for new WordPress and WooCommerce releases.
How do I add an expiry date to a WooCommerce product?
Edit the product and open the Product Expiry tab. Pick an expiration date and the action to run when it passes. Variations have the same fields, so each one can expire on its own date.
What happens on the expiration date?
Whatever you choose for that product. It can stay as is, move to draft, go out of stock, have its stock reduced by a set amount, or be marked as expired with a badge and add to cart turned off.
Can I set a product expiration on variations?
Yes. Every variation can have its own expiry date, note and action. A variable product without its own date can show the soonest expiring variation on the parent product page.
Can I show the expiry date on the product page?
Yes. Turn the expiry date on or off for single product and shop pages, choose where it appears, set your own wording and date format, and decide what shows after a product expires.
Does product expiration follow my store timezone?
Yes. Each product expires at the end of its chosen day in your site’s timezone. Every product is scheduled individually, so nothing fires early or late.
Can I expire products at an exact time, not just a date?
Yes, in the Pro version. Set an hour and minute alongside the date, and add a live countdown timer to the product page if you want one.
Is it compatible with HPOS?
Yes. Stock and order actions run through WooCommerce CRUD methods, so High Performance Order Storage and the product lookup tables stay in sync.
Will it work with my theme?
It works with any well coded WooCommerce theme and doesn’t need template overrides. If your theme uses its own hooks, you can place the expiry date with a custom hook.
Will product expiry slow down my store?
No. There are no external API calls on the frontend and no tracking. Expiry actions run on scheduled events, not on every page load.
What is the difference between yearly and lifetime?
Both unlock every Pro feature. Yearly is $39 per year and includes updates and support for that year. Lifetime is a single $199 payment with updates and support for as long as you use the plugin.
Give your products an expiry date today.
Start with the free plugin, or unlock countdowns, reminders and batch tracking with Pro.