Pro/Reward Points
Reward Points (WooRewards)
Two-way integration with the MyRewards (WooRewards) loyalty plugin. Customers earn points from raffle ticket purchases and redeem points for free or discounted tickets.
Requires: WooRewards (free or Pro) installed and active. The module gracefully hides when WooRewards is not present.
Enabling
- Install and activate the MyRewards (WooRewards) plugin.
- Go to WooCommerce → Settings → Raffle → Pro Modules and enable Reward Points (WooRewards).
- Edit a raffle product → PRO Features → check Enable reward points.
- Configure earning and redemption settings.
Earning modes
Each raffle product can be set to one of four earning modes (with global defaults at WooCommerce → Settings → Raffle → Reward Points):
| Mode | Behaviour |
|---|---|
| Default | WooRewards' standard earning rate — no modification |
| Multiplier | Scale points by a configurable factor (e.g., 2× = double points) |
| Flat bonus | Extra points on top of normal earning, recorded as a separate WooRewards history entry ("Raffle bonus points") |
| Disabled | Raffle purchases earn zero points |
Scroll to see all columns →
For multiplier mode, the multiplier value is set per product (e.g., 1.5, 2.0, 3.0). For flat bonus mode, a fixed number of bonus points is awarded per order regardless of ticket quantity.
Redemption modes
When "Allow point redemption" is enabled on a product, customers can spend points via one of two modes:
| Mode | Behaviour |
|---|---|
| Free ticket | Spend a set number of points for one free ticket. Configurable points-per-ticket and max redeemable tickets per order. |
| Discount | Spend points for a partial price reduction. Configurable points-per-currency-unit rate and maximum discount percentage. |
Scroll to see all columns →
Settings
Per-product settings (PRO Features section)
| Setting | Description |
|---|---|
| Enable reward points | Master toggle for this raffle |
| Point earning mode | Default / Multiplier / Flat bonus / Disabled |
| Earning multiplier | Factor for multiplier mode (e.g., 2.0) |
| Flat bonus points | Extra points per order in flat bonus mode |
| Allow point redemption | Let customers spend points on this raffle |
| Redemption type | Free ticket or Discount |
| Points per free ticket | Points required for one free ticket |
| Max redeemable tickets | Limit per order (0 = unlimited) |
| Points per currency unit | Points per $1.00 discount (discount mode) |
| Max discount % | Cap discount as percentage of ticket price (0 = no cap) |
Scroll to see all columns →
Global settings (WooCommerce → Settings → Raffle → Reward Points)
| Setting | Description |
|---|---|
| Default Earning Mode | Fallback for products without per-product override |
| Default Earning Multiplier | Global multiplier default |
| Default Flat Bonus Points | Global flat bonus default |
| Allow Redemption by Default | Default toggle for new products |
| Default Redemption Type | Free ticket or Discount |
| Default Points per Free Ticket | Global points-per-ticket default |
| Default Max Redeemable Tickets | Global max per order |
| Default Points per Currency Unit | Global discount rate |
| Default Max Discount % | Global discount cap |
| Show Points on Product Page | Display the widget on raffle pages |
| Show Earning Preview in Cart | Show "Earns X reward points" on cart items |
| Redemption Coupon Prefix | Prefix for auto-generated coupons (default: rfwc-pts) |
| Auto-cleanup Expired Coupons | Hourly cron trashes expired unused coupons and refunds points |
Scroll to see all columns →
How redemption works
- Customer visits a raffle product page and sees their point balance.
- For free ticket mode: +/- controls to select how many tickets to redeem.
- For discount mode: a slider to choose how many points to apply.
- Clicking "Apply Points" triggers an AJAX call that:
- Customer completes checkout normally.
Safety mechanisms
| Scenario | Handling |
|---|---|
| Customer redeems points but doesn't checkout in time | Hourly cron finds the expired coupon, refunds points to the user's WooRewards balance, and trashes the coupon |
| Order cancelled / refunded / failed | Flat bonus points reversed, redeemed points credited back, order note added |
| Double-processing prevention | Order meta _rfwc_pro_rp_points_awarded stores the numeric amount (not a boolean) — prevents re-awarding on duplicate processing |
| Guest users | Earning still works (WooRewards handles guest→account association). Redemption UI hidden for guests with a "Log in" prompt |
| WooRewards deactivated | Module returns early in constructor — no errors, no UI |
Scroll to see all columns →
Frontend display
Product page widget (below ticket quantity):
- Point balance: "You have 500 reward points"
- Earning preview: "Earn 2.0× reward points with this purchase!" or "Earn +50 bonus reward points!"
- Redemption controls (free ticket mode): +/- quantity selector with cost display
- Redemption controls (discount mode): range slider with live preview
- "Apply Points" button
Cart line items:
- "Rewards: Earns 2.0× reward points" or "Rewards: Earns +50 bonus points"
Interaction with other systems
| System | Behaviour |
|---|---|
| Bonus Tickets (P11) | Bonus tickets are free — they don't affect WooRewards earning (which calculates from order total). Flat bonus is based on line item qty only. |
| TeraWallet | Completely independent. Wallet is real money; points are virtual loyalty currency. Existing wallet refund flow unaffected. |
| WooRewards Direct Reward Mode | Works alongside. The raffle redemption coupon and WooRewards' own points-on-cart coupon can coexist. |
Scroll to see all columns →
CSS classes
| Element | CSS Class |
|---|---|
| Widget container | .rfwc-pro-rp-widget |
| Balance display | .rfwc-pro-rp-balance |
| Balance value | .rfwc-pro-rp-balance-value |
| Earning info | .rfwc-pro-rp-earn-info |
| Redeem section | .rfwc-pro-rp-redeem |
| Free ticket controls | .rfwc-pro-rp-redeem-free |
| Discount slider | .rfwc-pro-rp-redeem-discount |
| Apply button | .rfwc-pro-rp-redeem-btn |
| Status message | .rfwc-pro-rp-redeem-status |
| Login prompt | .rfwc-pro-rp-login-prompt |
| Admin badge | .rfwc-pro-badge--points |
Scroll to see all columns →