Features
Plugin: WooCommerce Wallet System v3.9.5 Vendor: Webkul Requires: WordPress + WooCommerce 10.0+, PHP 7.4+ Compatibility: Multisite, WPML, HPOS
Quick map
This page is the master feature index. Each item links to its dedicated documentation page.

The same wallet, on the legacy My Account view:

1. Core Wallet → details
- Per-customer wallet balance stored in user meta
_wkwc_wallet_amount - Credit, debit, transfer operations
- Transaction log table with full history
- Multi-currency support (store currency switching aware)
- Low-balance email alerts (threshold configurable)
- Wallet balance display via shortcode + My Account tab
- Admin manual credit/debit for any customer
2. Wallet Payment Gateway (wkwc_wallet) → details
- Pay full or partial order with wallet balance
- Works alongside other payment methods (split payment)
- Gateway enable / disable + title / description config
- Minimum / maximum wallet-usable amount per order
- Auto-hide gateway if balance zero
- Refund back to wallet support
3. Wallet Recharge → details
Recharge Your WalletWooCommerce product (auto-created)- Custom amount input on product page
- Fixed preset recharge amounts (admin configurable)
- Auto-credit on order status
completed/processing woocommerce_thankyouhook auto-completes recharge orders
4. Wallet Transfer (User-to-User) → details
- Transfer balance between registered customers
- OTP verification (SMS + Email) before transfer
- Twilio SMS integration
- REST endpoint
POST /wkwc_wallet/v1/verify_otp/{otp} - Transfer fee configurable
- Transfer history log
5. Cashback Engine → details
- Rule-based cashback on order completion
- Per-product cashback rules
- Per-category cashback rules
- Percentage or fixed amount
- Min / max order value thresholds
- Rule priority + activation toggle
- Rule CRUD admin UI (list + single rule editor)
- Duplicate-credit guard via
_wkwp_cashback_processedorder meta
6. Withdrawal System → details
- Customer can request withdrawal from wallet
- Admin approve / reject flow
- Withdrawal fee (fixed or percent)
- Hold period (
_wkwp_wallet_withdrawal_hold_enable) - Methods: bank transfer, PayPal, Stripe
- CSV export of withdrawal records
- Status: pending / approved / rejected / paid
7. PayPal Payout → details
- Mass Payments API to PayPal email
- Client ID / Secret config
- Sandbox / Live mode toggle
- Auto payout on withdrawal approval
- Webhook-based status sync
8. Stripe Payout → details
- Direct transfer to Stripe connected accounts
- Test / Live keys config
- Amount conversion to cents
- Transfer request ID for reconciliation
9. Refund to Wallet → details
- Convert WooCommerce order refunds into wallet credit
- Customer refund-request submission
- Admin approve / decline UI
- List table for all refund requests
- Dedicated table
wp_wkwc_wallet_refund_requests - Auto-credit + email notify on approval
10. Buy Now Pay Later (BNPL) → details
- Eligible users checkout with wallet at insufficient balance
- Debt tracking in
wkwp_wallet_bnpl_debts - Eligibility by user + cart total
- Max-limit + min-order setting
- Repayment-days configurable
- Interest / fee on unpaid balance
- Auto-deduct on future wallet credit
11. KYC (Know Your Customer) → details
- Customer-facing KYC submission form (modal-based on my-wallet)
- Multi-document upload (1-5 docs, configurable via
_wkwp_kyc_max_documents) - Full-name + document-type + document-number + file
- Nonce-protected submission (
wkwp_kyc_submit) - MIME + size validation via
wp_handle_upload - Admin review (approve / reject + admin note)
- Status meta
_wkwp_kyc_status(approved / pending / rejected) - Legacy fallback meta
_kyc_verified - Customer-facing rules / instructions admin option (
_wkwp_kyc_requirement_description) - Restricted features (
_wkwp_wallet_kyc_required_features[]):withdrawal,transfer,wallet_usage(checkout),payment_request,qr_pay
- Per-action gates (
_wkwp_kyc_gate_*) — withdrawal / transfer / fund_request - Server-side enforcement (authoritative)
- Greeting state pills — "✓ KYC VERIFIED" / "VERIFY KYC" / "KYC UNDER REVIEW" / "RE-SUBMIT KYC"
- Modal-based submission with native
<dialog>
12. Referral Program → details
- Unique alphanumeric referral code per user (
BOB22,AARAV42) - Backward-compatible
?ref=accepts numeric IDs and alpha codes - Cookie-based attribution (7-day default,
HttpOnly+SameSite=Lax) - Referrer reward credited on invitee's first completed order
- Referee first-order coupon
WELCOME-XXXXXX— single-use, email-restricted- Type
fixed_cartorpercent, configurable amount - First-order-only via
woocommerce_coupon_is_validfilter
- Type
- Time-boxed promo multiplier (start / end / multiplier)
- Registration form referral code field, prefilled from cookie
- Unified dashboard on
/my-account/my_wallet/- Personal link pill + Copy button
- Brand-coloured share buttons (WhatsApp / X / Email / Messenger)
- Stats: total earned / invited / signed up / pending
- Idempotency — one row per invitee +
reward_amount > 0lock - Admin gated end-to-end via
_wkwp_referral_enable
13. QR Code Payments → details
- Generate per-user QR (wallet receive)
- Scan QR to pay via
qr-scan-pay.php - Frontend QR display on My Account
html5-qrcodescanner integration- AJAX transfer handler
- Toggle
_wkwp_wallet_qr_enable
14. Bulk Credit / Debit → details
- Admin batch update many customer wallets at once
- CSV upload to queue credits / debits
- Async queued processing via
wp_wkwc_wallet_bulk_queuetable - Manual list-select + amount-apply
- Audit reference tag on each transaction
15. Checkout Discount → details
- Give discount at checkout when paying with wallet
- Type: none / fixed / percent
- Applied as fee (negative) on cart total
- Global enable toggle
16. Checkout Restriction → details
- Per-product flag
_wkwp_exclude_wallet - Global "disable on sale items" (
_wkwp_wallet_disable_on_sale) - Filters gateways dynamically before checkout
17. Daily Login Reward → details
- Credit wallet on first login per day
- Configurable reward amount
- Action
wkwp_daily_login_reward
18. Analytics Dashboard → details
- Admin REST endpoints
GET /wkwp-wallet/v1/analytics/summaryGET /wkwp-wallet/v1/analytics/chart?days={int}
- Summary KPIs — total credited / debited / active users / transactions
- Chart — balance trends, transaction volume
- Cached summary, invalidates on wallet update + withdrawal approval
19. Caching
- Built-in multi-version caching for transactions, balance queries, and analytics
- Auto-invalidates on wallet writes — admins never manage cache manually
20. Email Notifications → details
- Wallet credit
- Wallet debit
- Low-balance alert
- Refund approved / rejected
- Withdrawal approved / rejected
- KYC status change
- Transfer sent / received
21. SMS Notifications → details
- OTP for transfer
- Twilio provider integration
- Configurable templates
22. Admin Settings Panels → details
- General wallet settings
- Payment gateway config
- Withdrawal config
- Cashback rules
- BNPL config
- KYC settings
- Referral config
- QR settings
- UI customizer
- Payout credentials (PayPal, Stripe)
- Email / SMS templates
23. REST API → details
POST /wkwc_wallet/v1/verify_otp/{otp}— OTP verifyGET /wkwp-wallet/v1/wallets/GET /wkwp-wallet/v1/wallets/{id}— adminGET /wkwp-wallet/v1/transactions— adminGET /wkwp-wallet/v1/analytics/summary— adminGET /wkwp-wallet/v1/analytics/chart— admin- API key admin UI (mint / list / revoke / delete) with Basic Auth consumer key/secret
24. Shortcodes → details
- Wallet balance display
- Recharge form
- Transfer form
- Transaction history
- KYC submission form
[wkwp_invite_friends_form][wkwp_wallet_coupon_redeem]
25. Developer Hooks → details
- Action
wkwp_wallet_balance_changed - Action
wkwc_wallet_amount_updated - Action
wkwc_wallet_withdrawal_approved - Action
wkwp_daily_login_reward - Filter
wkwp_referral_base_amount - Filter
wkwc_wallet_show_method_on_checkout - Filter currency switching
26. Performance
- Background indexer (
class-wkwc-wallet-background-indexer.php) - DB indexer for fast transaction queries
- Lazy file loading in bootstrap
- Autoloader (
autoloader/class-wkwp-wallet-autoload.php)
27. Auxiliary Modules
modules/wk-plugin-updatesv1.5.4 — Webkul store + Envato update checkermodules/wkwc-addonsv1.7.1 — unified Webkul addons admin menu
28. Storage
- Self-managed storage layer for ledger, history, withdrawals, refund requests, cashback rules, BNPL debts, bulk-credit queue, KYC submissions + documents, referral log, and email invitations
- Auto-created and migrated on activation; survives deactivation; never auto-dropped on uninstall
29. Deposit / Top-up Bonus → details
- Admin-configurable % bonus on wallet top-up orders
- Flags
_wkwp_wallet_bonus_enable+_wkwp_wallet_bonus_amount - Credits bonus on
woocommerce_order_status_completedforwkwc_walletline items - Idempotency via
_wkwp_bonus_creditedorder meta - Live preview on my-wallet Add-funds panel
30. Invite Friends (email) → details
- Shortcode
[wkwp_invite_friends_form] - Toggles
wkwp_invite_friends_enable+wkwp_invite_friends_daily_limit - POST to
admin-post.php?action=wkwp_invite_friends_submit - Existing-user invites persist as "Already on site" rows
- SMTP failure non-fatal — DB row stays, action
wkwp_invite_friends_mail_failed - Table
wkwp_referral_invitations
31. Multilevel Referral → details
- Optional
wkwp_multilevel_enable+wkwp_multilevel_levels(1-10) +wkwp_multilevel_level_commissions[] - Walks ancestry on invitee signup via
WKWP_Referral_Signup_Enricher - Filter
wkwp_referral_base_amountapplies promo multiplier when active - Zero-config → flat single-level reward only
32. Customer My-Wallet Dashboard (decorator) → details
- Reparents WC submodule template into modern fintech layout — zero template edits
- Full-bleed profile greeting + Transactions stat + KYC pill
- Credit-card hero (₹ balance, masked wallet ID
WK-0000-••••-NNNN) - 2×2 action grid (Add money / Send / Withdraw / Redeem code) → native
<dialog>modals - Add-funds form with preset chips + custom amount + paychip + violet CTA
- Inline top-up bonus banner under Pay-with row
- Activity list with iconised rows + Recent-activity filter + pagination
Summary Count
| Metric | Count |
|---|---|
| Major feature areas | 32 |
| Payment integrations | 3 (Wallet gateway, PayPal, Stripe) |
| REST endpoints | 5+ |
| Custom DB tables | ~11 |
| Submodules | 3 (wkwc_wallet, wk_caching, wk-plugin-updates) |
| Shortcodes | 7+ |
| KYC docs per user | 1-5 (configurable) |
| Referral chain depth | 1-10 levels |
