Turn a browsing visitor into a customer holding a coupon.
A spin wheel that pops up on the pages you choose, hands out coupon codes you control, and records every play. Guests can spin with just an email address — and you decide, segment by segment, how often each prize actually comes up.
- Guests play with an email
- Unlimited campaigns
- Odds set per segment
- HPOS ready
- Cart & Checkout Blocks
Everything the campaign needs, in one screen
The wheel, its segments, its odds, where it appears and what it pays out are all managed from the same campaign. No external service, no code, and nothing bolted onto checkout.
Unlimited campaigns
Create as many spin campaigns as you like, each with its own name, wheel, segments and payouts. Enable or disable any of them from the campaign list.
Schedule and prioritise
Set a start and end date so a campaign runs itself, and give each one a priority — the higher the value, the higher the priority when more than one is live.
Gravity per segment
Every segment carries its own probability weight from 0 to 100, so the 25% coupon can be genuinely rare while “Try Again” comes up often.
Segment positions
Decide exactly where each segment sits on the wheel, and cap how many times it may ever be won — or set -1 for no limit at all.
Spin limit per email
Choose how many times one email address may play the wheel, so a single visitor cannot spin until the good prize finally lands.
Real WooCommerce coupons
Winning segments hand out coupons you already created in WooCommerce, applied at checkout the normal way. A coupon can be locked to the person who won it.
Triggers on your pages
Pick which pages carry the wheel, or leave the field blank to show it everywhere. A trigger button with your own label, colours and logo opens the popup.
Coupon by email and in-account
The winner sees the code immediately, receives it by email, and finds it again under their account. You get a notification every time one is won.
Reports per campaign
Statistics, a spin wheel sales report and a coupon sales report, plus the full list of who played — filterable by winners, losers or everyone.
From a trigger button to a coupon at checkout
Three moves for the shopper. Everything behind them — the odds, the limits, the coupon, the email — you set once on the campaign.
The wheel is offered
On the pages you selected, a trigger button appears in the corner you chose. Clicking it opens the wheel — as a sidebar slide or a pop-up dialog. Logged-in customers can also reach it from Try Your Luck in their account.
They enter an email and spin
The welcome form asks for a name and email address — no account needed, guests play too. The wheel lands on a segment weighted by the gravity you assigned, and the campaign checks how many spins that address has already used.
The coupon lands three ways
A win shows the result form with the code and its terms, sends the customer an email, and files the coupon under their account. You get a notification of your own. They apply it at checkout like any other coupon.
Eight tabs, one campaign
Open a spin campaign and every part of it is a tab — the rules, the two forms the shopper sees, the wheel’s own appearance, its segments, where it shows up, and what it earned you.
Nothing here touches your theme or your checkout. The campaign owns the wheel; WooCommerce keeps owning the coupons, the cart and the orders.
You decide how often each prize actually comes up
A segment is a label, an outcome and a weight. Gravity is a 0–100 probability of occurrence, so a headline discount can stay genuinely rare while the near-misses carry the wheel.
| Segment label | Win or Lose | Gravity | Limit | Coupon |
|---|---|---|---|---|
| Try Again | Lose | −1 | — | |
| 10% Off | Win | −1 | SPIN10 |
|
| Free Shipping | Win | −1 | SPINSHIP |
|
| Spin Again | Spin Again | −1 | — | |
| $5 Off | Win | 200 | SPIN5 |
|
| 15% Off | Win | 100 | SPIN15 |
|
| 25% Off | Win | 25 | SPIN25 |
|
| No Luck | Disabled | — | — |
Cap the expensive prizes
Every segment takes a maximum number of times it may occur. Set -1 for an infinite limit, or a hard number so the deepest discount can only ever be won so many times.
Lock a coupon to its winner
Switch on restrict coupon to winner and the code only works for the address that won it — so a lucky spin cannot be pasted into a deals forum and spent by everyone.
Each segment also carries its own result heading and description, its position on the wheel, and an enable/disable switch. Expired segments and coupons drop out on their own, so a dead offer never lands on a live wheel.
What the shopper actually sees
Two forms bracket the spin, and both are yours to style — headings, description, two background colours, text colour, button label and colours, coupon colours, and an optional progress meter.
Hurry Up!!
Spin the wheel and win a discount coupon on your next order. One spin, one chance.
The welcome form
Your heading and description, a name and email label you write yourself, and a progress meter with its own label, colour and percentage — on or off.
Test Your Luck
The wheel
Pin image, pin and stroke colours, inner wheel and its radius, segment font size, text direction and orientation, background colour or image — all campaign settings.
Congratulations!!!
You won the coupon — use it before it expires.
- Discount Amount25%
- To use Coupon Spend minimum$75.00
- Usage Limit1 [ 1 Remaining ]
- Coupon Expires31 Aug 2026
The result form
The winning segment’s own heading and description, the code in your coupon colours, and the real terms — discount, spend minimum and maximum, usage limit, expiry.
A losing spin is not a dead end. Lose and Spin Again segments carry their own wording, so “OOps!!!” can still point the shopper back at the shop.
Where it opens, and where it waits
Layout Configuration decides how the wheel arrives. Trigger Settings decide which pages carry it and what the button looks like while nobody has clicked yet.
Sidebar Slide
The wheel slides in against an edge and leaves the page visible behind it. Good when you want the offer alongside the product, not on top of it.
Pop Up Dialog
The wheel takes the centre of the screen. Good for a campaign you want people to deal with before they carry on browsing.
Positions, not guesswork
The popup and both trigger buttons take an explicit position, so the wheel never lands on top of your own floating cart or chat widget.
- Top Left
- Top Right
- Center
- Bottom Left
- Bottom Right
- Left
- Right
Choose the pages
Spin Wheel Visibility takes a page selection — leave it blank to display the wheel on every page of the store.
Your button, your logo
Upload a trigger image and a popup logo, set the button label, its background and its text colour — or switch the button off entirely.
The coupon does not get lost
The plugin adds a single Spin to Win entry to My Account. Everything else sits inside it — the spins the customer has already played, and the coupons they still have to spend.
- Dashboard
- Orders
- Downloads
- Addresses
- Account details
- Spin to Win/spin-to-win
- Log out
Spin to Win
You won the coupon ( DISCOUNTUNLIMITED )
- Discount Amount :$25.00
- To use Coupon Spend minimum$100.00
- Usage Limit :1
- Coupon Expires :31 Aug 2026
You won the coupon ( NEW10 )
- Discount Amount :10%
- To use Coupon Spend minimum$40.00
- Usage Limit :1
- Coupon Expires :30 Sep 2026
Each card is the WooCommerce coupon read back in full — amount, spend minimum and maximum, usage limit, expiry, free shipping, and any product or category restriction. The Played Spin tab holds the other half of the story: every campaign this customer has played, whether it won or lost, and a link straight to the coupon.
Before you install it
Do customers need an account to play?
No. Guests can play without registering — the welcome form asks for a name and an email address, and that address is what the campaign tracks. Logged-in customers get the wheel too, reachable from Try Your Luck in their account as well as from the trigger button.
How do I stop one person spinning until they win?
The campaign sets how many times a customer may spin with one email address. Alongside that, each segment has a maximum number of times it may ever occur, so even a well-shared campaign cannot hand out the top prize more often than you allowed.
How is the winning segment actually decided?
By the gravity you set. Every segment takes a probability of occurrence between 0 and 100, so the odds are a setting rather than an accident of how the wheel is drawn. Two segments of the same visual size can have completely different chances of coming up.
Where do the coupons come from?
From WooCommerce. You attach an existing coupon to a winning segment, and it keeps its own rules — discount, spend minimum and maximum, usage limit, expiry, product and category restrictions. The result form and the email spell those terms out, and the customer applies the code at checkout with Add a Coupon as usual.
Can I run more than one campaign at a time?
Yes. Campaigns can be scheduled with a start and end date, enabled or disabled individually, and given a priority — the higher the value, the higher the priority when several are live at once.
Does it work with HPOS and the Cart & Checkout Blocks?
Yes. Version 2.0.1 added compatibility with WooCommerce High-Performance Order Storage and with the block-based cart and checkout, so the coupon applies the same way on classic and block checkouts.
What happens to an offer once it expires?
Expired segments and their coupons are removed automatically, and a segment whose coupon has expired or hit its usage limit is flagged in the admin and kept off the wheel — so nobody wins something they cannot redeem.
Four steps to a live wheel
No theme edits and no developer time — from activation to a spin you can take yourself.
Activate the plugin, then open Spin to Win → Add Spin Campaign and name it.
Add your segments — label, Win or Lose, gravity, limit and the coupon each winning one pays out.
Style the wheel and the two forms, then set Layout Configuration and Trigger Settings.
Set the campaign to Enable, open the shop, and take a spin yourself.
Give them a reason to stay one more minute.
A wheel on the pages you choose, odds you control down to the segment, coupons WooCommerce already understands, and a report that tells you whether any of it sold anything.