WPRaffle
WPRaffle
Open source & free forever
Active installs2Version1.3.0WordPress6.5+PHP8.1+WooCommerce8.0+LicenseGPL-2.0

Run online raffles & competitions on WordPress

A comprehensive plugin built on WooCommerce with full ticket management, live draws, instant wins, and UK compliance features.

Open source · GPL-2.0 · No account required

0
Total Downloads
0
GitHub Stars
0
Forks
v1.3.0
Latest Version

Everything you need to run a raffle

From ticket sales to live draws, WPRaffle covers every aspect of running online competitions — securely.

Core

5 features

  • Configurable Raffles
    Title, description, prize image, ticket count, price, and packages.
  • WooCommerce Integration
    Full checkout with any payment gateway, cart & order management.
  • Ticket Numbering
    Cryptographically secure random numbers by default, with optional sequential or shuffled modes and per-raffle prefix/suffix.
  • Automated Emails
    A full lifecycle suite — purchase, winner, instant-win, no-luck, started, extended, and admin notifications — each with its own on/off toggle and optional PDF ticket attachment.
  • User-Selected Numbers
    Optional mode where buyers pick their own ticket numbers.

Competition Features

9 features

  • Instant Wins
    Automatic prizes at specific ticket numbers — auto-generated coupons, gift products, or wallet credit paid straight to the buyer's WooWallet balance, with prize groups and reversal on refund.
  • Multi-Winner Draws
    Multiple winners with configurable prize tiers.
  • Live Draw
    Animated draw page with spinning numbers and confetti.
  • Skill Questions
    Multiple-choice questions required before purchase (UK Gambling Act compliance), with optional time limit and attempt cap.
  • Free / Postal Entry
    Alternative entry route for compliance.
  • Geo-Restriction
    Restrict entry by country via IP geolocation.
  • Referral System
    Unique referral codes with bonus entries.
  • Ticket Bundles
    Quantity bundles with custom pricing and savings badges — now configured via a friendly builder, no JSON required.
  • Raffle Lifecycle
    Min-tickets thresholds with auto-fail + auto-refund, deadline extends, and one-click or scheduled relists that preserve the permalink.

Buyer Experience

7 features

  • Odds of Winning
    A live '1 in N' odds display updates as buyers change their ticket quantity — a proven conversion driver.
  • SOLD OUT & Ending Soon
    Shop cards auto-badge with scarcity and end states, and expired competitions are non-clickable.
  • Pending Purchase Visibility
    Buyers whose payment is still clearing see a 'Processing' state instead of assuming their entry was lost.
  • My Raffles Account
    A permanent ticket history with live odds, a clear 'YOU WON!' badge, and a results link for finished entries.
  • My Coupons
    A dedicated account tab showing every coupon a buyer has won — instant-win coupons and consolation prizes — with click-to-copy codes, expiry dates, and Ready/Used status.
  • Guest Ticket Lookup
    Guest buyers get a single-use secure link emailed to them to view their tickets — no account needed.
  • Accessible Checkout
    Keyboard-friendly purchase modal with focus trapping, screen-reader announcements, and proper dialog roles.

Admin

10 features

  • Analytics Dashboard
    Revenue charts, sales trends, and activity feed.
  • Audit Log
    Complete, structured action log with expandable details, fairness-proof copy, and actor filtering.
  • Templates & Clone
    Reusable raffle templates and one-click duplication.
  • Ticket Reservations
    Temporary holds during checkout with auto-cleanup.
  • Duplicate Detection
    Automatic detection and correction of duplicate tickets.
  • Shop Integration
    Custom raffle cards in WooCommerce shop pages.
  • Searchable Raffle List
    Search by title, filter by status, and paginate — built for operators with many competitions.
  • CSV Import & Export
    Export buyers, tickets, and instant-win rules to CSV, and bulk-import instant-win prizes from a spreadsheet. Plus a per-order 'View Tickets' button in the WooCommerce order screen.
  • Winner Name Privacy
    Optional initials-only display on public results pages — the same treatment instant-win winners get.
  • Featured Winners
    Flag winners as featured, upload a photo of them with their prize, and add a testimonial — stored queryably for a winners carousel.

Security

6 features

  • Multi-layer Validation
    Cart lock, checkout validation, payment-time clamping.
  • WordPress Nonces
    CSRF protection on all forms and AJAX requests.
  • Sanitization & Escaping
    Input sanitization & output escaping throughout.
  • Prepared Statements
    No raw queries — everything uses $wpdb->prepare().
  • Rate Limiting
    Configurable per-minute per-IP limits.
  • Privacy & GDPR
    Personal data export/erasure via WordPress Privacy API.

Developer

6 features

  • Elementor Widgets
    18 fully-styleable widgets with editor previews, a per-widget Raffle picker, and full styling controls.
  • Gutenberg Blocks
    A starter set of server-rendered blocks (countdown, progress, entry button, instant wins, raffle list) for non-Elementor sites — no build step required.
  • Shortcodes
    Display raffles, lists, lookup, and live draws anywhere.
  • Plugin Compatibility
    Auto-activating integrations with WPML, Polylang, Multi-Currency, Stripe, Square, WooPayments, Smart Coupons, Dokan, Yoast/Rank Math, and page-cache plugins.
  • GitHub Auto-Updates
    Push updates from GitHub releases automatically.
  • Hooks & Filters
    Extensible via WordPress actions and filters.

Up and running in minutes

Install, activate, and launch your first raffle in four simple steps.

1

Download

Get the latest release .zip from the GitHub Releases page.

2

Upload

Go to WordPress Admin → Plugins → Add New → Upload Plugin, then activate.

3

Configure

WPRaffle auto-creates 10 database tables, a WooCommerce product, and all required pages.

4

Launch

Create your first raffle at Raffles → Create Raffle and paste the shortcode.

Your first raffle

  1. 1
    Create a Raffle
    Go to Raffles → Create Raffle and fill in title, description, prize details, ticket count, price, and packages.
  2. 2
    Configure Features
    Set up optional features like instant wins, skill questions, geo-restriction, and more.
  3. 3
    Publish & Embed
    Publish your raffle and copy the shortcode [raffle id="X"] to any page.
  4. 4
    Sell Tickets
    Buyers select packages, complete WooCommerce checkout, and receive tickets by email.
  5. 5
    Draw a Winner
    Draw the winner from Raffles → View Details when you're ready to go live.

One theme, every look

WPRaffle ships as a single, well-built theme with a collection of one-click style presets — switch the entire look of your competitions without touching code.

Style presets

5 ready-made looks

  • Diamond
    Soft pink and blue pastels for a clean, modern look.
  • Golf
    Fresh greens for a natural, outdoorsy feel.
  • Car
    Bold reds and orange for a high-energy vibe.
  • Retro
    Vibrant purple and pink for nostalgic retro-chic.
  • Elite
    Gold and deep tones for a premium, luxurious finish.

Frequently asked questions

Everything you need to know about running raffles with WPRaffle.

WPRaffle includes built-in features to support UK Gambling Act compliance, including skill questions (required before purchase), free/postal entry routes, and geo-restriction. However, we recommend consulting a legal professional to ensure your specific setup meets all applicable regulations.
Yes. WPRaffle is built on WooCommerce, so it works with any payment gateway that WooCommerce supports — Stripe, PayPal, bank transfers, and hundreds more. Built-in compatibility adapters also enable express checkout (Apple Pay / Google Pay) for Stripe, Square, and WooPayments on raffle products.
WPRaffle supports GitHub-based auto-updates. Tag a release on GitHub, upload the .zip as a release asset, and users will see the update within 12 hours (or immediately via manual check). Configure this in Raffles → Settings → Updates.
No. Elementor is optional. WPRaffle works with shortcodes and a starter set of Gutenberg blocks out of the box. When Elementor is active, 18 custom widgets become available for visual page building.
Ticket numbers are assigned using PHP's cryptographically secure random_int() function, ensuring unique and unpredictable numbers for every purchase.
Yes. WPRaffle has an optional user-selected numbers mode where buyers can pick their own ticket numbers during checkout.
WPRaffle implements multi-layer protection: a UNIQUE database constraint on (raffle_id, ticket_number), cart quantity locking, checkout validation, and payment-time clamping to prevent duplicates at every stage.
Yes. WPRaffle integrates with the WordPress Privacy API for personal data export and erasure, helping you meet GDPR requirements.
When a buyer wins an instant-win credit prize, the amount is pushed straight to their WooWallet / TerraWallet balance the moment they win — so it appears immediately in My Account → Wallet and can be spent at checkout. If a payout is ever missed (e.g. the wallet plugin was briefly inactive), a one-click 'Sync Wallet Payouts' button in the admin re-processes it. Coupon and gift-product prizes are applied automatically too, and all prize types reverse cleanly on refund.
Free & open source

Start running raffles today

Download WPRaffle, install it on your WordPress site, and launch your first competition in minutes.