Wallet SystemWallet System
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Admin Tour
  • Wallet Core

    • Core Wallet
    • Wallet Payment Gateway
    • Recharge / Top-up
    • Wallet Transfer
    • My Wallet Page
    • Shortcodes
  • Earn & Reward

    • Cashback Engine
    • Referral Program
    • Multilevel Referral
    • Daily Login Reward
    • Invite Friends
    • Deposit / Top-up Bonus
  • Spend & Payout

    • Checkout Discount
    • Checkout Restriction
    • Withdrawal
    • PayPal Payout
    • Stripe Payout
    • Refund to Wallet
    • Buy Now Pay Later
  • Identity & Mobile

    • KYC
    • QR Code Payments
  • Wallet Central

    • Overview
    • Endpoint & Routing
    • CTA Discovery
    • Home Dashboard
    • Add Funds
    • Withdraw
    • Withdrawals List
    • Send Money
    • QR Pay
    • Payment Requests
    • Refer & Earn
    • Transactions
    • Settings
    • KYC Flow
    • Architecture
    • Tweaks & Responsive
    • Security
    • Admin Controls
  • Admin Tools

    • Admin Settings (index)
    • Bulk Credit / Debit
    • Analytics Dashboard
  • Settings Tabs

    • General
    • Recharge
    • Checkout
    • Withdrawal
    • Payout (PayPal/Stripe)
    • KYC
    • Cashback
    • Referral
    • Multilevel
    • BNPL
    • QR Pay
    • Notifications
    • Wallet Central
    • Integrations
    • API Keys
  • Notifications

    • Email Notifications
    • SMS Notifications
  • Developer

    • REST API
    • Filters & Hooks
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
Support
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Admin Tour
  • Wallet Core

    • Core Wallet
    • Wallet Payment Gateway
    • Recharge / Top-up
    • Wallet Transfer
    • My Wallet Page
    • Shortcodes
  • Earn & Reward

    • Cashback Engine
    • Referral Program
    • Multilevel Referral
    • Daily Login Reward
    • Invite Friends
    • Deposit / Top-up Bonus
  • Spend & Payout

    • Checkout Discount
    • Checkout Restriction
    • Withdrawal
    • PayPal Payout
    • Stripe Payout
    • Refund to Wallet
    • Buy Now Pay Later
  • Identity & Mobile

    • KYC
    • QR Code Payments
  • Wallet Central

    • Overview
    • Endpoint & Routing
    • CTA Discovery
    • Home Dashboard
    • Add Funds
    • Withdraw
    • Withdrawals List
    • Send Money
    • QR Pay
    • Payment Requests
    • Refer & Earn
    • Transactions
    • Settings
    • KYC Flow
    • Architecture
    • Tweaks & Responsive
    • Security
    • Admin Controls
  • Admin Tools

    • Admin Settings (index)
    • Bulk Credit / Debit
    • Analytics Dashboard
  • Settings Tabs

    • General
    • Recharge
    • Checkout
    • Withdrawal
    • Payout (PayPal/Stripe)
    • KYC
    • Cashback
    • Referral
    • Multilevel
    • BNPL
    • QR Pay
    • Notifications
    • Wallet Central
    • Integrations
    • API Keys
  • Notifications

    • Email Notifications
    • SMS Notifications
  • Developer

    • REST API
    • Filters & Hooks
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
Support
  • Getting Started

    • Introduction
    • Quick Start — Wallet Live in 5 Minutes
    • Features
    • Installation
    • First-Time Setup
    • Admin Tour
  • Wallet Core

    • Core Wallet
    • Wallet Payment Gateway
    • Recharge / Top-up
    • Wallet Transfer
    • My Wallet Page
    • Shortcodes
  • Earn & Reward

    • Cashback Engine
    • Referral Program
    • Multilevel Referral
    • Daily Login Reward
    • Invite Friends
    • Deposit / Top-up Bonus
  • Spend & Payout

    • Checkout Discount
    • Checkout Restriction
    • Withdrawal
    • PayPal Payout
    • Stripe Payout
    • Refund to Wallet
    • Buy Now Pay Later (BNPL)
  • Identity & Mobile

    • KYC (Know Your Customer)
    • QR Code Payments
  • Wallet Central

    • Wallet Central Overview
    • Endpoint & Routing
    • CTA Discovery
    • Home Dashboard
    • Add Funds
    • Withdraw
    • Withdrawals List + Detail
    • Send Money
    • QR Pay
    • Payment Requests
    • Refer & Earn
    • Transactions
    • Settings (customer)
    • KYC Flow
    • Architecture
    • Tweaks & Responsive
    • Security
    • Admin Controls
  • Admin Tools

    • Admin Settings
    • Bulk Credit / Debit
    • Analytics Dashboard
  • Settings Tabs

    • General Settings
    • Recharge Settings
    • Checkout Settings
    • Withdrawal Settings
    • Payout Settings (PayPal + Stripe)
    • KYC Settings
    • Cashback Settings
    • Referral Settings
    • Multilevel Settings
    • BNPL Settings
    • QR Pay Settings
    • Notifications Settings
    • Wallet Central Settings
    • Third-Party Integrations
    • API Keys
  • Notifications

    • Email Notifications
    • SMS Notifications
  • Developer

    • REST API
    • Filters & Hooks
  • Help

    • Troubleshooting
    • FAQ
    • Glossary

Deposit / Top-up Bonus

A percentage bonus credited automatically on every successful top-up. Pure marketing lever — "Pay ₹1000, get ₹1100 in your wallet."

Setting up?

Bonus toggle + percent live under Recharge Settings → Bonus section.

What It Does

ForMeans
CustomerTop up ₹1000 → wallet shows ₹1050 (with 5% bonus). Live preview banner on the Add money panel shows the bonus before paying
AdminOne toggle + percent value. Idempotent — bonus credited once per order even if order status flips

How Customers See It

On the Add money panel:

┌─────────────────────────────────────────────┐
│  💚 Offer: Get 5% Extra Credit on every     │
│     Top-up!                                 │
├─────────────────────────────────────────────┤
│  Custom amount  [   ₹1000   ]              │
│  You'll pay     ₹1000.00                   │
│  Bonus preview  Pay ₹1000 and get ₹1050    │
│                  in your wallet.            │
├─────────────────────────────────────────────┤
│  [ Add to Wallet ]                          │
└─────────────────────────────────────────────┘

The bonus preview updates live as the customer types.

Add money panel with the live bonus banner — preset chips, custom amount, You'll-pay row

Setup

Wallet → Settings → Recharge → Bonus

Deposit Bonus admin section — enable, percent, min top-up, max bonus

SettingDefaultWhat it does
EnableOFFglobal toggle
Bonus percent5the % credited on top of every top-up
Min top-up to qualifyemptyonly top-ups above this amount earn bonus
Max bonus per orderemptyoptional cap on bonus value

When OFF, the banner disappears and no bonus is credited — base top-up amount only.

Behaviour

When a recharge order completes:

  1. Plugin reads each recharge line item
  2. Computes topup × bonus_pct / 100, applies caps
  3. Credits topup + bonus to the wallet
  4. Marks the order so bonus can't credit twice

The bonus is embedded in the top-up audit row — single row, note explains the breakdown. Switch to a separate row via filter if your accounting prefers split rows.

Refund Reversal

When a top-up order is refunded:

RefundBonus effect
Full refundtotal credited (base + bonus) debited
Partial refundproportional debit
Order cancellednothing — bonus only fires on completed

Common Scenarios

Run a flash 25% bonus weekend

Bump percent to 25, run the campaign, drop back to 5. Customers see the new banner immediately.

Bonus only on top-ups above ₹500

Set "Min top-up to qualify" → 500. Smaller top-ups don't earn bonus and the banner hides for them.

Different bonus for VIP customers

Use a one-line filter (see dev section).

Auto time-boxed bonus

Build a small filter that returns a higher % during a specific date window (see dev section).

Reporting

Filter Wallet → Transactions for note containing bonus:

SELECT SUM(amount) FROM wp_wkwc_wallet_transactions
WHERE type = 'credit' AND note LIKE '%bonus%'
  AND created_at >= '2026-04-01';

Total bonus issued in any window.

When Something Goes Wrong

ProblemFix
Bonus not creditedFeature enabled? Order has recharge line item? Order in completed?
Bonus credited twiceShould not happen — guard meta on order. File a bug ticket if reproducible
Live preview not updatingBrowser console error; jQuery dependency missing in theme
Wrong bonus %Filter chain — print the value from a debug shortcode
For developers — hooks + per-user override + time-boxed promo

Hooks

HookTypeWhen
wkwp_wallet_bonus_amountfiltermutate % per user / order
wkwp_wallet_bonus_creditedactionafter credit row written
wkwp_wallet_bonus_split_rowfilterrender bonus as separate ledger row
wkwp_wallet_bonus_min_topupfiltermin top-up to qualify

Per-user override

add_filter( 'wkwp_wallet_bonus_amount', function( $pct, $user_id, $topup ) {
    if ( in_array( 'vip', wp_get_user_role_slugs( $user_id ), true ) ) {
        return 10; // 10% for VIPs
    }
    return $pct;
}, 10, 3 );

Time-boxed campaign

add_filter( 'wkwp_wallet_bonus_amount', function( $pct ) {
    $now = current_time( 'timestamp' );
    if ( $now >= strtotime( '2026-04-01' ) && $now < strtotime( '2026-04-15' ) ) {
        return 15; // double bonus during launch fortnight
    }
    return $pct;
} );

Idempotency

_wkwp_bonus_credited flag on order — prevents double-credit even when admin flips status.

Related

  • Recharge / Top-up
  • Core Wallet
  • Cashback Engine
  • Filters & Hooks
Prev
Invite Friends