Quick answer: To schedule flash sales in WooCommerce, create a PricePress discount, set the campaign dates and eligible products, add day or time restrictions when needed, and test the offer before and after its window.
Scheduling flash sales in WooCommerce lets you prepare an offer before customers see it. A useful campaign has a defined audience, a clear product selection, an accurate start and end time, and a discount your store can afford.
PricePress’s feature description includes date ranges, time-of-day windows, day-of-week scheduling, and redemption caps. This tutorial uses a limited weekend offer to show how these controls fit together.
1. Define the sale scope
Write the promotion as a sentence: “Eligible winter accessories receive 20% off this weekend.” Select the intended products or category, then check whether each product can support the reduction.
If your plan uses a product tag such as clearance or flash-deal, confirm the edition supports the targeting you need. The supplied Free/Pro comparison places advanced multi-category and tag targeting in Pro. A small campaign can instead begin with a controlled selection of individual products.
2. Enter the campaign period
Create the discount rule and set its start and expiration. Check the time zone used by the site and the scheduling interface before writing public countdown or email copy.
If the offer is meant to run on Saturday and Sunday, distinguish a one-time weekend date range from a recurring weekend condition. A recurring schedule can make the offer return on later weekends, which may be unintended for a single clearance event.
3. Add a time window only when needed
A happy-hour campaign might operate from 2 p.m. to 5 p.m. on selected days. Combine the time-of-day and day conditions deliberately, then test that the resulting eligibility matches the advertised window.
Use precise customer-facing wording. “Ends Sunday” is less helpful than a clear end date, time, and time zone for a store selling across regions.
4. Set a promotion budget with redemption limits
For a limited offer, configure a global cap such as the first 100 qualifying redemptions. Decide whether a per-user limit should also apply. Make both the time limit and redemption limit visible if either can end eligibility.
Check when your installed version counts a redemption and what happens after cancellation or refund. Do not advertise a guaranteed reservation of the offer merely because a customer has added an item to the cart.
5. Prepare clear catalog messaging
PricePress’s supplied features include customizable sale badges. Use a badge that matches the actual rule, such as “20% OFF,” and check whether every product displaying it is eligible for the advertised discount.
Remove or schedule supporting banners consistently with the campaign. A discount that ends correctly can still create confusion if old promotional copy remains visible.
6. Test the start, end, and capped states
- Before the campaign begins, confirm standard pricing.
- During the active window, confirm eligible pricing.
- After expiration, confirm the offer stops.
- Test the cap behavior in a controlled environment.
- Recheck product, cart, and checkout displays with caching enabled.
Review discount expense, units moved, and remaining inventory after the event. Use those results to choose the next promotion’s scope.
Download PricePress and read our coupon and eligibility guide if your flash sale also requires a private campaign code.
Frequently asked questions
What is the difference between a sale date range and a recurring window?
A date range defines a campaign period. Day-of-week and time-of-day conditions can describe recurring availability; check the combination so a one-time offer does not return unintentionally.
Can a campaign end before its scheduled expiration?
A global redemption cap can stop further qualification before the end time. State both limits in your promotion terms when either can end the offer.
Official setup resources
Check the site’s time zone before scheduling a promotion and writing its public end time. See the WordPress general settings documentation.







