PluginCity Product Expiry Dates for WooCommerce
PluginCity Product Expiry Dates for WooCommerce
Description
Some things should not be sold after a certain date: food has a best-before date, a licence or a warranty covers a fixed period, and an event ticket is worthless the morning after. WooCommerce has no way to say so.
PluginCity Product Expiry Dates for WooCommerce adds an Expiry tab to every product with one box on it: the date it can no longer be sold after. When that moment passes the product comes off sale on its own, and a cart that already held it cannot be checked out.
What you get
- One expiry date per product, on an Expiry tab just below Inventory
- An Expires column on the products list, showing what has stopped selling
- The product taken off sale once the date passes, with a sentence on the page saying why
- Carts that outlived the date refused at the checkout, naming the product to remove
- Notices on the cart, checkout and mini-cart, in the classic checkout and the blocks
- PayPal express buttons refused too, so a one-tap order cannot get past the date
- A shortcode,
[pexp_message], to put the cart message anywhere, or a product’s own date with[pexp_message show="product"] - Settings import and export, to copy a configuration to another shop or keep a backup
- High-Performance Order Storage compatibility
The free version is permanent. It does not expire, needs no licence key, and never contacts PluginCity.
Pro
Not every product goes off all at once, and not everyone who buys from you is a retail customer. Pro is for shops that need the exceptions: trade accounts that may still buy cleared stock, a shelf life that dates products for you, dates per variation and in bulk, a warning before a date passes, an automatic markdown as it approaches, and a block and an Elementor widget for the expiry display.
Pro is a separate paid version, sold and distributed by PluginCity. It is not included in this plugin and is not downloaded or installed by it, and nothing described above depends on it. Your dates and settings carry over if you buy it.
Configuration
- Turn expiry dates on.
- Edit a product, open its Expiry tab below Inventory, and type the date it can no longer be sold after.
- Write the message customers see, and choose whether it appears on the cart, at checkout, or both.
Installation
WooCommerce must be installed and active first.
- In WordPress, go to Plugins Add New.
- Search for PluginCity Product Expiry Dates for WooCommerce.
- Click Install Now, then Activate.
- Go to WooCommerce Product Expiry, or click Settings on the Plugins screen.
From a downloaded ZIP instead: Plugins Add New Upload Plugin, choose the file and click Install Now. There is no need to unzip it.
Screenshots

The Expiry tab on a product. Type the date it can no longer be sold after, and the time of day if the date alone is not close enough.

The Expires column on your products list. Every date in the shop on one screen, with whatever has already stopped selling marked.

A product whose date has passed. The Add to cart button is gone and your own sentence stands where it was.

A cart holding something that has since gone off. The product is named at the top, the shop's own message sits with the totals, and the order will not go through until it comes out.

The same cart at the checkout. A customer who comes straight to this page is refused here too, so an expired product cannot be paid for by skipping the cart.

The two sentences a customer reads are yours to write, and %s is where the products get named.
Faq
Type the date on the product’s Expiry tab. When it passes, the product comes off sale: the buy button goes and the page says it is no longer available, in your words. Anybody holding it in a cart is asked to remove it before ordering. Orders already placed are untouched.
Nothing can be bought through it: the date is checked again when anything is added to a cart, rather than trusted from the page. If the button is still there, tell us the theme and we will look at it.
WooCommerce would take it straight out and say only that it can no longer be purchased, which reads as a fault in your shop. This plugin explains it in your words and refuses the order until the customer removes it.
Reviews
Changelog
1.1.0
- New:
[pexp_message show="product"]prints a product’s expiry date on the page. The cart message it printed before is unchanged. - The listing and settings screen now say that Pro adds a block and an Elementor widget.
1.0.2
- The listing now says cart rather than basket, and answers more of the questions shop owners ask.
- Once a customer’s cart has been refused, the settings screen asks once, a week later, for an honest review. Close it and it does not come back.
1.0.1
- Clearer listing text. The plugin works as before.
1.0.0
- First public release.