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

Bulk Credit / Debit

Mass-update many wallets at once. Two entry points: manual select for a few customers, CSV upload for hundreds or thousands.

What It Does

ForMeans
Admin"Q4 bonus for 5000 customers" goes from spreadsheet to wallet credits in a few clicks. Audit trail per row
CustomerTheir wallet gets credited (or debited). Standard credit / debit email fires unless you suppress for the batch

Where It Lives

Wallet → Bulk Credit / Debit.

Bulk Credit / Debit tab — manual customer multiselect + CSV upload + queue status panel

Manual Mode

Best for 1-100 customers.

FieldWhat
Customerssearch-and-select multiselect (email or username)
OperationCredit / Debit
Amountper-customer amount (uniform)
Noteshown in customer's activity feed
Reference tagoptional audit identifier

Submit → each selected user gets one queued row. Background worker processes them in seconds.

CSV Mode

Best for 100+ customers.

CSV Format

email,amount,note,type
[email protected],500,New year bonus,credit
[email protected],250,New year bonus,credit
[email protected],100,Refund correction,debit
ColumnRequiredNotes
emailyesmatches WC customer's email (case-insensitive)
amountyespositive number (sign comes from type)
notenoshown in the customer's activity
typenocredit (default) or debit
referencenocustom audit tag, e.g. Q4_BONUS_2026
currencynoonly honoured in multi-currency mode

Upload Flow

  1. Drop CSV onto the upload area
  2. Plugin validates rows — invalid rows shown inline with reason (unknown email, bad amount, etc.)
  3. Click Confirm queue (N rows)
  4. Status panel appears, polls every 5 sec

Live Status

CounterMeaning
Pendingnot yet processed
Processingworker actively running
Donecompleted successfully
Failederrored — click to expand reason

Suppress Per-Row Emails

For large batches you usually don't want 5000 individual emails firing.

Wallet → Settings → Notifications → Bulk operation suppress emails → ON.

Customer-side notifications resume after the batch completes. Send a single newsletter explaining the bonus instead.

Audit Trail

Every row writes one ledger entry tagged with:

  • The batch ID
  • Your admin reference (if you set one)
  • The CSV note

Filter Wallet → Transactions by reference LIKE bulk% to audit any specific batch.

Idempotency

Re-uploading the same CSV after a partial failure won't double-credit. Rows already done are skipped via a per-row dedupe key.

Limits

LimitDefault
Max rows per CSV10,000
Max CSV size5 MB
Worker tick batch50 rows
Worker frequencyevery 5 min

For million-row migrations, hook into the worker batch-size filter or run via WP-CLI directly.

Common Scenarios

Q4 bonus to all VIP customers

Export VIP customer emails from your CRM as CSV → reformat to the email,amount,note,type shape → upload. All bonus credits land in seconds.

Migrate balances from another wallet plugin

Export old wallet balances → reformat → upload as credit rows with note Migration from <old plugin>. Done.

Apologise for an outage with ₹50 credit

Manual mode → select all affected customers → amount 50 → note Apology credit, outage of XX. Batch fires.

Correct a stuck balance for one customer

Don't use bulk for a single customer — open that user's profile → Wallet card → Credit / Debit field. One-click.

When Something Goes Wrong

ProblemFix
Rows stuck on pendingCron not firing — verify with wp cron event list; or hit "Process now"
bad amount errorsNegative or non-numeric value — fix CSV
Customers spammed with emailsToggle "Bulk suppress emails" ON before the next run
Performance: site slows during batchReduce worker batch size; raise the worker frequency
For developers — hooks + WP-CLI

Hooks

HookTypeWhen
wkwp_wallet_bulk_queue_addedactionrows enqueued
wkwp_wallet_bulk_row_processedactionper-row success
wkwp_wallet_bulk_row_failedactionper-row failure
wkwp_wallet_bulk_batch_sizefilterhow many rows per tick
wkwp_wallet_bulk_csv_validate_rowfilterextra per-row validation

WP-CLI for million-row migrations

The plugin doesn't ship a first-class CLI command. Bypass the queue and call WKWP_Wallet_Core::credit() directly in chunks via your own script:

$wpdb = $GLOBALS['wpdb'];
$rows = $wpdb->get_results( "SELECT user_id, amount FROM legacy_wallet WHERE migrated = 0 LIMIT 1000" );
foreach ( $rows as $r ) {
    WKWP_Wallet_Core::credit( $r->user_id, $r->amount, [
        'reference' => 'migration:legacy',
        'note'      => 'Migrated from legacy wallet plugin',
    ] );
    $wpdb->update( 'legacy_wallet', [ 'migrated' => 1 ], [ 'user_id' => $r->user_id ] );
}

Related

  • Core Wallet
  • Email Notifications
  • REST API
Prev
Admin Settings
Next
Analytics Dashboard