Get Plugin

Pro/Index

Raffle for WooCommerce Pro

Optional addon that adds interactive features for professional competition websites. The free plugin remains fully functional on its own — Pro adds new capabilities without locking or disabling any free features.

Features

FeatureDescription
Customer Ticket PickerVisual grid for customers to choose their own ticket numbers
Lucky DipRandom auto-select button with animation
Advanced Instant WinPre-selected winning tickets, separate IW prize config, hybrid mode (two chances to win)
Lucky Wheel / Spin to WinInteractive HTML5 canvas prize wheel
Winner Reveal PageDramatic animated winner reveal with confetti for live streaming
Entry / Participant ListPublic page showing participants with privacy controls and PDF export
Alphabet Ticket FormatTicket numbers in A01-A99, B01-B99 letter+number format
Ticket ReservationHold selected tickets for a limited time to prevent checkout conflicts
IP Purchase RestrictionLimit ticket purchases per IP address to prevent multi-account abuse
Bonus TicketsAuto-award extra draw entries based on quantity, early bird timing, or customer role
Reward Points (WooRewards)Earn and redeem loyalty points on raffle tickets via MyRewards
Email PDF TicketAuto-attach PDF raffle tickets to WooCommerce order confirmation emails
Countdown & Badge Styles17 countdown + 9 badge visual styles with animations
Scroll to see all columns →

Installation & License

Requirements

  • Raffle for WooCommerce (free) 1.1.0 or higher
  • WooCommerce 8.0+
  • WordPress 6.0+
  • PHP 7.4+

Activation

  • Upload raffle-for-woocommerce-pro to /wp-content/plugins/.
  • Activate the plugin in Plugins → Installed Plugins.
  • Go to WooCommerce → Settings → Raffle → License.
  • Enter your license key and click Activate.
All Pro features become available immediately on raffle product edit screens.

Development mode

For local development, add this to wp-config.php to bypass license checks:

define( 'RFWC_PRO_DEV_MODE', true );

Remove this before deploying to production.

License management

  • Check License: Validates your key against the licensing server.
  • Deactivate: Releases the activation so you can use the key on another site.
  • Grace period: If your license expires, Pro features continue working for 14 days while you renew.

Architecture notes

Separation of concerns

The Pro plugin is a separate WordPress plugin (raffle-for-woocommerce-pro/) that depends on the free plugin via the Requires Plugins header. It hooks into the free plugin's action and filter system — no core files are modified.

Key principles

  • Never disables free features — Pro only adds, never restricts.
  • License-gated — Features only load when the license is valid (or dev mode is on).
  • No frontend nags — No upsell messages visible to customers.
  • Graceful degradation — Deactivating Pro does not break any existing raffle data.
  • All classes prefixed RFWC_Pro_ — no conflicts with core.
  • Text domain: raffle-for-woocommerce-pro (separate from the free plugin).

Core hooks used by Pro

HookTypeUsed by
rfwc_loadedActionBootstraps the entire Pro addon
rfwc_admin_product_optionsActionAll features: product panel fields
rfwc_process_product_metaActionAll features: save product settings
rfwc_frontend_scriptsActionFrontend asset enqueuing
rfwc_ticket_generatedActionTicket Picker: assign picked numbers
rfwc_after_ticket_displayActionAdvanced Instant Win: tier badges in My Account
rfwc_instant_winner_createdActionAdvanced Instant Win: IW prize fulfillment routing
rfwc_instant_win_evaluateFilterAdvanced Instant Win: pre-selected ticket override
rfwc_instant_win_prize_tierFilterAdvanced Instant Win: tier assignment
rfwc_instant_win_ticket_statusFilterAdvanced Instant Win: keep tickets active for hybrid mode
rfwc_should_fulfill_prizeFilterAdvanced Instant Win: block core fulfillment for IW winners with separate config
rfwc_mask_winner_nameFilterWinner Reveal: name privacy masking
rfwc_ticket_format_optionsFilterAlphabet Tickets: adds alphabet option to dropdowns
rfwc_generate_ticket_numberFilterAlphabet Tickets: generates letter+number strings
rfwc_order_tickets_generatedActionTicket Reservation: cleanup reservations after order
woocommerce_add_to_cart_validationFilterIP Restriction: validate IP limit before add-to-cart
woocommerce_update_cart_validationFilterIP Restriction: validate IP limit on cart quantity update
rfwc_order_tickets_generatedActionBonus Tickets: evaluate rules and generate bonus entries
rfwc_ticket_cancelledActionBonus Tickets: recalculate bonus on partial/full refund
rfwc_tickets_sold_countFilterBonus Tickets: exclude bonus from purchasable pool count
rfwc_generate_ticket_numberFilterBonus Tickets: ticket numbering (respects alphabet format)
lws_woorewards_core_pool_point_addFilterReward Points: modify earning points (multiplier/disable)
lws_woorewards_wc_order_trigger_order_doneActionReward Points: track current order during WooRewards processing
lws_woorewards_wc_order_after_trigger_order_doneActionReward Points: clear tracked order after processing
rfwc_order_tickets_generatedActionReward Points: award flat bonus points + record awarded amount
woocommerce_get_item_dataFilterReward Points: cart earning preview
woocommerce_order_status_cancelledActionReward Points: refund awarded/redeemed points
Scroll to see all columns →