Expiry actions
Overview
When a product reaches its expiration date, the plugin can take automatic action to prevent expired items from being sold. You configure these actions under Products → Expirations → Settings → General.
Available actions
Hide from catalog
When this action is enabled, expired products are removed from your shop pages, category listings, and search results. The product page itself still exists (so existing links do not break), but customers can no longer browse to it through your store.
This is useful when you want expired products to quietly disappear from your storefront without deleting them.
Set to out-of-stock
This action changes the product’s stock status to “out of stock” when it expires. The product may still appear in your catalog (depending on your WooCommerce visibility settings for out-of-stock items), but customers cannot add it to their cart.
This is a good option if you want expired products to remain visible with an “out of stock” label, which can signal to customers that the item existed but is no longer available.
Both Pro
Select both actions to hide the product from the catalog and set it to out-of-stock. This is the most comprehensive option and ensures expired products are neither browsable nor purchasable.
Days before expiration
You do not have to wait until the exact expiration date to trigger actions. The days before setting lets you specify how many days in advance the action should take effect.
For example, if you set this to 3, products will be hidden or set to out-of-stock three days before their expiration date. This gives you a buffer to avoid selling products that are very close to expiring.
Set this to 0 if you want actions to trigger only on the expiration date itself.
How actions run
The plugin uses WordPress cron (wp-cron) to check for expiring products hourly. This runs automatically in the background — no manual intervention is needed. When the scheduled check finds products that have reached their expiry threshold, it applies the configured actions.
Selling expired batches Pro
When batch tracking is enabled, you have the option to continue selling products even if some batches have expired, as long as at least one batch is still valid.
Setting location
The toggle is at Products → Expirations → Settings → General, independent from the expiry action dropdown above.
How it works
When enabled, the plugin uses FEFO (First Expired, First Out) deduction to always sell from the earliest-expiring valid batch first. Expired batches are skipped during stock deduction, but the product remains purchasable as long as at least one non-expired batch has stock. This controls whether expired batches count toward overall stock calculations — when disabled, a product with only expired batches will show as out of stock.
See Batch Tracking for more details on FEFO and batch management.