Welcome to Spin to Win Wheel
Turn a visitor’s interest into a playful discount experience. Visitors enter their email, spin the wheel, and may receive a prize or coupon configured by the store administrator.
Configure up to 12 wheel slices, prize types, weights and slice colors.
Adjust popup layout, wheel appearance, typography, images, animations and launcher.
Review entries, coupons and engagement metrics from the plugin dashboard.
The administration interface is available to WordPress administrators under Spin Wheel in the left-hand WordPress menu. The plugin’s settings are organized into tabs; the names below match the interface in version 1.0.10.
Requirements & compatibility
| Item | Requirement from plugin package |
|---|---|
| WordPress | 5.8 or newer |
| PHP | 7.4 or newer |
| WooCommerce | 6.0 or newer for WooCommerce coupon functionality |
| Plugin version covered here | 1.0.10 |
| Order storage / checkout | Declares compatibility with WooCommerce HPOS and Cart/Checkout Blocks. |
Install and open the plugin
- Open your WordPress dashboard
Sign in with an administrator account.
- Go to Plugins → Add New Plugin
Click Upload Plugin and choose
Spin_to_Win_Wheel_for_WooCommerce-v1_0_10.zip. - Install and activate
Click Install Now, then Activate Plugin. Keep the ZIP intact; upload the ZIP rather than extracting it on your computer.
- Open Spin Wheel
Use the new Spin Wheel item in the WordPress admin sidebar. The plugin also adds a Settings shortcut on its Plugins-list row.
- Configure and preview
Set your prizes and display rules, then click Preview in the plugin’s top bar to review the front-end experience as an administrator.
| Menu item | Purpose | Next action |
|---|---|---|
| Plugins → Installed Plugins | Activate, deactivate or update the plugin. | Click Settings or open Spin Wheel in the sidebar. |
| Spin Wheel | All plugin tabs and configuration. | Start with General, then Wheel Slices. |
| WooCommerce → Coupons | View and manage WooCommerce coupons. | Use this for checking automatically generated coupons. |
Dashboard
The Dashboard summarizes activity and provides shortcuts. The exact numbers depend on traffic and entries recorded on your site.
Number of saved entries in the plugin’s lead table.
Saved entries that have a non-empty coupon code.
Recorded popup-open events.
| Dashboard area | What it helps you understand |
|---|---|
| Coupons redeemed | Coupon redemption figures where the dashboard can match the plugin’s coupon records against WooCommerce usage. |
| Conversion / 7-day trend | How activity changes over time; interpret trends alongside your store traffic. |
| Activity chart & engagement funnel | Compares recorded opens and subsequent actions such as launcher clicks, closes, code copies and apply-to-cart clicks. |
| Prize breakdown / email providers | Summarizes prizes and the email domains represented in saved entries. |
| Latest entries / shortcuts | Quick access to recent leads and commonly used settings. |
Dashboard mockups in this guide are explanatory examples, not live screenshots or sample analytics from your website.
General tab: activation, pages and timing
Activation
| Setting | What it does | Suggested use |
|---|---|---|
| Enable spin wheel | Master switch for visitor-facing popup. | Turn off temporarily without deleting your setup. |
| Preview mode (admins only) | Restricts display to logged-in administrators while testing. | Enable during setup; disable when ready to launch. |
| Hide for logged-in users | Suppresses the popup for logged-in visitors. | Useful if campaigns target new visitors. |
Where should the wheel appear?
Select one or more page types. You can also add specific page/post IDs to include or exclude individual locations.
| Page type | Examples |
|---|---|
| Home page | Front page / blog home. |
| Shop | WooCommerce shop archive. |
| Product categories & tags | WooCommerce product category and tag archives. |
| Single product pages | Individual product pages. |
| Cart / Checkout | WooCommerce cart and checkout pages. |
| My account pages | WooCommerce account area. |
| Blog posts & archives | Posts, categories, tags, author/date archives. |
| Other pages | Regular WordPress pages outside the special types above. |
- Always show on these page IDs: comma-separated IDs that are additionally allowed.
- Exclude page IDs: comma-separated IDs that must never show the popup. Exclusions take priority over normal page-type targeting.
- Show on desktop / tablet / mobile: controls device-specific visibility.
Popup trigger
| Trigger | How it behaves |
|---|---|
| After a delay | Opens after the configured number of seconds (0–600). |
| After scrolling | Opens when a visitor reaches the configured scroll percentage (1–100%). |
| Exit intent (desktop) | Attempts to open when desktop exit intent is detected. |
| Only when clicked | Waits for the floating launcher or shortcode button. |
Do not show again for: number of days after a visitor closes the popup. Set to 0 to show again on every page load. Show floating launcher enables the reopen button. Keep launcher after spin allows a visitor to reopen the result/prize interface after spinning.
Wheel Slices: prizes and chances
Configure the segments shown on the wheel. The interface supports a minimum of 2 and a maximum of 12 slices. Each slice can be enabled, labeled, assigned a prize type and styled with its own background and text color.
| Field | Meaning |
|---|---|
| Enabled | Include or disable this segment. |
| Label / sub-label | Main text and optional supporting text printed on the slice. |
| Prize type | Determines what the visitor receives. |
| Amount | Discount amount or percentage for generated WooCommerce coupons. |
| Existing coupon | Select an existing published WooCommerce coupon. |
| Custom code | Displays a manually supplied code; the plugin does not create a WooCommerce coupon for plain text. |
| Weight / chance | Relative probability weight used by the server-side prize selection. Higher weight means a greater relative chance, not a guaranteed percentage. |
| Background / text color | Per-slice visual styling. |
Available prize types
- Fixed amount coupon (auto-generated): creates a WooCommerce fixed-cart discount coupon.
- Percentage coupon (auto-generated): creates a percentage discount coupon.
- Free shipping coupon (auto-generated): creates a coupon with free shipping enabled.
- Existing WooCommerce coupon: returns a selected existing coupon code.
- Custom code (plain text): displays a code you supply; make sure it is valid and explain any manual redemption process.
- No prize: a “better luck next time” result without a coupon.
Texts & Content
This tab controls the text shown to visitors: the initial popup, result messages, validation errors and floating launcher. You can localize the visible copy by replacing the English defaults with your preferred language.
| Group | Fields you can edit | Notes |
|---|---|---|
| Popup text | Eyebrow label, title, subtitle, email placeholder, name placeholder, consent text, privacy-link label, main button, loading text, small note and close label. | Keep the headline concise and explain why an email is requested. |
| Result text | Win eyebrow/title/message, no-prize title/message, coupon label, copy button, copied confirmation, apply-to-cart button and confirmation, continue-shopping text/link, email-sent note and expiry text. | Supported placeholders include {prize}, {coupon} and {date} in relevant messages. |
| Error messages | Invalid email, missing name, consent not accepted, already used, rate limited, blocked email domain and generic error. | Use clear, helpful messages rather than technical errors. |
| Launcher | Launcher text, icon, style, position and edge attachment. | Style options: button with icon and text, icon-only round button, or vertical side tab. |
Launcher positions: bottom-left, bottom-right, middle-left and middle-right. Attach to the screen edge removes the gap between the launcher and screen edge; the side-tab style always sits on the edge.
Design: layout, colors and effects
Use the Design tab to make the popup match your store. Change a few settings at a time and preview on desktop and mobile so text remains readable.
| Design group | Settings and purpose |
|---|---|
| Layout | Wheel on the left/right, popup max width, corner radius, entrance animation (zoom, slide, fade or 3D flip), overlay color/opacity/blur and whether clicking outside closes the popup. |
| Colors | Popup background, wheel-area background, title/text/muted text colors, accent gradient colors, button text, input background and border. |
| Typography | Font family (theme, system, rounded, serif, monospace or custom font stack), eyebrow/title/subtitle/body/button sizes and title weight. |
| Images | Logo above the form title, logo height, optional wheel-area background image and opacity, and image in the wheel center. |
| Wheel | Maximum wheel size, rim gradient colors, LED lights/color/count, center hub color, pointer color, slice label sizes/weight, spin duration and number of full rotations. |
| Effects | Button radius, input radius, pulsing button glow, confetti on win and confetti amount. |
| Launcher styling | Launcher background, text color and corner radius. |
Form & Security
| Setting | What it means | Considerations |
|---|---|---|
| Ask for the name | Shows an optional name field. | Collect only information you actually need. |
| Name is required | Requires a name when the name field is enabled. | Only appears when “Ask for the name” is enabled. |
| Require consent checkbox | Requires the visitor to tick the consent checkbox. | Recommended by the plugin for GDPR/KVKK-related workflows; have your own privacy/legal wording reviewed. |
| Privacy policy URL | URL used for the privacy policy link. | When empty, the plugin falls back to the WordPress privacy page if available. |
| One spin per email | Prevents repeated spins using the same email. | Enable for one-entry-per-email campaigns. |
| One spin per IP address | Limits repeat spins from the same IP. | May affect customers sharing a home, office or mobile network. |
| Max attempts per IP per hour | Rate-limits attempts from a single IP. | Increase carefully; high limits can invite abuse. |
| Block disposable email domains | Blocks detected temporary email providers. | May reject some legitimate addresses; test with your audience. |
| Additional blocked domains | One domain per line, such as example.com. | Enter domain names, not full email addresses. |
| Anonymize stored IP addresses | Stores a hashed/anonymized IP identifier for protection instead of a directly readable address. | Keep this enabled unless you have a justified operational need. |
| Auto-delete leads after | Automatically removes lead records after a chosen number of days. | 0 means keep records indefinitely. |
Coupons
Coupon settings apply to automatically generated WooCommerce coupons. Existing WooCommerce coupons continue to use their own configured rules, while custom plain-text codes are not automatically created as WooCommerce coupons.
| Setting | Purpose |
|---|---|
| Code prefix | Text placed before the random part of generated coupon codes, e.g. WHEEL-. |
| Random part length | Length of the generated random code segment (4–20 characters). |
| Coupon validity | Number of days before an automatically generated coupon expires; 0 means no expiry. |
| Minimum spend | Minimum cart spend required; 0 means no minimum. |
| Usage limit per coupon | Maximum uses per coupon; 0 means unlimited. |
| Restrict to winner email | Restricts coupon usage to the email collected from the winner. |
| Individual use only | Prevents the coupon from being combined with other coupons when WooCommerce applies that rule. |
Further restrictions can be set on the coupon itself in WooCommerce, such as product/category eligibility or sale-item rules, depending on the selected prize and your WooCommerce configuration. Always test coupon behavior with a test account and representative cart.
Emails
The Emails tab configures the winner email and administrator notification. Confirm your WordPress email delivery setup before relying on transactional messages.
| Email type | What to configure |
|---|---|
| Winner email | Enable/disable the message and edit its subject/body. The settings description lists placeholders such as {coupon}, {prize}, {expiry}, {site_name} and {name}. |
| Admin notification | Configure whether an administrator receives a notification about new entries/wins and the notification recipient/content where exposed by the tab. |
Leads
The Leads tab lists records captured by the wheel. Use the search field to find entries, review the associated prize/coupon and export records when the export control is available.
- Search leads using the provided search control.
- Review the email, optional name, prize, coupon code and entry date where shown.
- Use CSV export to work with the data in a spreadsheet.
- Delete individual records or clear all records only after checking the selection carefully; deletion is permanent.
Tools
| Tool | How to use it safely |
|---|---|
| Export settings | Save a copy of the plugin configuration before major edits or moving the setup. |
| Import settings | Imports a settings file and replaces the current settings. Review the file first and keep a backup of the existing configuration. |
| Reset settings | Returns plugin settings to defaults. Treat this as destructive to your configuration; export first. |
| Custom CSS | Use only if the field is present in your installed version. Add scoped CSS carefully and test responsive layouts. |
| Maintenance options | Review any cleanup or data controls before applying them. |
The Tools tab’s exact controls may vary if the plugin is updated after version 1.0.10. Use the labels visible in your installed version as the final reference.
Shortcode: place a spin button anywhere
The plugin registers this shortcode to display a button that can open the wheel:
[ideaplcrksp134970_button text="Spin now"]
To add it, edit a WordPress page or post and insert a Shortcode block, then paste the shortcode. Replace Spin now with your preferred button label. The popup trigger should be set to Only when clicked if you want the wheel to open exclusively through a click-based launcher/button.
Privacy, storage and uninstall behavior
- Leads are stored in a plugin-managed database table. The plugin creates/updates the table when activated and upgrades its schema additively.
- Daily cleanup is scheduled for retention settings; deactivation clears the plugin’s scheduled purge hook.
- Updates are designed not to remove existing lead data.
- Deactivation is not the same as deleting the plugin and does not, by itself, trigger the uninstall cleanup.
- On uninstall, data is removed only if the plugin’s delete on uninstall setting is enabled. When enabled, the plugin removes its lead table and its settings/statistics options.
Troubleshooting
| Issue | Check this first |
|---|---|
| Popup does not appear | Check Enable spin wheel, Preview mode, page targeting, include/exclude IDs, device switches, logged-in-user hiding and trigger choice. Use the admin Preview button. |
| Wheel appears on the wrong pages | Review selected page types and the include/exclude ID lists. Excluded IDs should be removed from the exclude list if they need to display. |
| Coupon is not created/applied | Confirm WooCommerce is active, the slice uses a WooCommerce coupon type, the amount is valid, and the selected existing coupon still exists. Custom code is plain text, not a generated coupon. |
| Email is not received | Check spam, email settings, sender reputation and SMTP delivery. Confirm winner email notifications are enabled. |
| Visitor cannot spin again | Review One spin per email, One spin per IP and the hourly rate limit. Shared networks can be affected by IP restrictions. |
| Settings changes do not appear | Click Save Changes, then clear page/cache-plugin/CDN caches and retest in a private browser window. |
| Popup design conflicts with theme | Temporarily test without optimization/minification and custom CSS. Check mobile width, font contrast and overlay settings. |
FAQ
Can I use a prize without WooCommerce?
Plain custom codes and no-prize outcomes do not create a WooCommerce coupon, but generated and existing WooCommerce coupon types require WooCommerce.
Does a higher weight guarantee a win?
No. Weight is relative to other enabled slices. It influences the chance of selection but does not guarantee a specific result.
Can I test before visitors see it?
Yes. Enable Preview mode (admins only) and use the Preview button. Disable preview-only behavior when you are ready for public display.
What happens if I deactivate the plugin?
The plugin’s scheduled daily purge hook is cleared. Deactivation does not itself run the uninstall cleanup.
Will uninstall delete leads?
Only if the delete-on-uninstall option is enabled. Export records first if you need to keep a copy.
Why is my custom code not applied to the cart?
Custom code is stored as plain text and is not automatically created as a WooCommerce coupon. Use a generated coupon or existing WooCommerce coupon if you need native WooCommerce discount behavior.
