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
0–100Gravity weight you set on every single segment
3Segment outcomes — Win, Lose, Spin Again
8Configuration tabs behind one campaign
0Accounts a guest needs to play — email only
Core features

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.

How it works

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.

Step 1

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.

Step 2

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.

Step 3

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.

The campaign workbench

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.

Spin to Win › Spin Campaigns › Summer Sale Wheel
Summer Sale Wheel
Enable
Yes
10 The higher the value, the higher the priority.
2026-06-01
2026-08-31
2 How many time can customer spin the lucky wheel with an email address.

Nothing here touches your theme or your checkout. The campaign owns the wheel; WooCommerce keeps owning the coupons, the cart and the orders.

Segments & odds

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.

Eight wheel segments with their outcome type, gravity weight, occurrence limit and linked coupon.
Segment label Win or Lose Gravity Limit Coupon
Try Again Lose 40 −1
10% Off Win 25 −1 SPIN10
Free Shipping Win 15 −1 SPINSHIP
Spin Again Spin Again 10 −1
$5 Off Win 6 200 SPIN5
15% Off Win 3 100 SPIN15
25% Off Win 1 25 SPIN25
No Luck Disabled 0

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.

Placement

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.

After the win

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.

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.

Questions

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.

Quick start

Four steps to a live wheel

No theme edits and no developer time — from activation to a spin you can take yourself.

  1. Activate the plugin, then open Spin to Win → Add Spin Campaign and name it.

  2. Add your segments — label, Win or Lose, gravity, limit and the coupon each winning one pays out.

  3. Style the wheel and the two forms, then set Layout Configuration and Trigger Settings.

  4. Set the campaign to Enable, open the shop, and take a spin yourself.

Get started

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.

--:--Demo session