Customer Wallet Page, Block and Shortcode

This page covers what your customers see on their wallet page under My Account, how to rename the page and its address, and how to show a customer’s balance anywhere on your site with the Wallet Balance block or the [rb_elite_balance] shortcode. It is written for store owners. Theme developers will find the template override list and hooks in the For developers section at the end.

Where customers find their wallet

↑ Back to top

Elite Balance adds a Wallet item to the My Account menu, right after Orders. If your theme or another plugin has removed the Orders item, the Wallet item goes just before Log out instead. The page lives at /my-account/wallet/ by default, and the menu label, page title and address can all be changed (see Renaming the page and its address).

Only logged-in customers see the page, and each customer only ever sees their own wallet.

What the page shows

↑ Back to top

Every tab of the wallet page starts with the same summary:

  • Balance: the customer’s wallet balance.
  • Available to spend: shown only when part of the balance is reserved. The line reads “Available to spend: $24.00 (the rest is reserved by a pending request or order)”. Money is reserved by a partial wallet payment on an order that is not paid yet, or by an open withdrawal request.
  • The “on the way” line: shown only while the customer has rewards waiting out your cashback release delay (see The “on the way” line).

Under the summary is a row of tabs. The tab row only appears when there is more than one tab to show, so a store that uses the wallet for payments and refunds only shows the transaction history with no tab row at all.

The My Account wallet page: the balance, an Available to spend line, a Cashback on the way line, the tabs Transactions, Add funds, Withdraw and Earlier activity, and the transaction history table with Date, Activity, Amount and Balance columns.
The wallet page with all four tabs. Transactions is the default tab.
TabWhen it showsAddress
TransactionsAlways. It is the default tab./my-account/wallet/
Add fundsWhen Enable top-ups is on (it is on by default)./my-account/wallet/add-funds/
WithdrawWhen Enable withdrawals is on (off by default) and at least one payout method is configured./my-account/wallet/withdraw/
Earlier activityWhen the Earlier activity setting is on (default) and the customer has entries copied from your previous wallet plugin./my-account/wallet/earlier-activity/

Each tab has its own address, so you can link straight to it from an email, a banner or a menu. The addresses above use the default wallet slug; they follow your Page URL slug setting.

Transactions

↑ Back to top

The full wallet history, newest first, 15 rows per page with numbered pagination. The columns are Date, Activity, Amount and Balance (the balance after that movement). Credits show in green with a plus sign, debits in red with a minus sign.

The Activity column uses customer-friendly labels:

Label the customer seesWhat it is
Order paymentWallet money collected for an order (a full wallet payment, or the wallet part of a partial payment).
Refund to walletA refund returned to the wallet as store credit.
Top-upFunds the customer added on the Add funds tab.
CashbackOrder cashback or a top-up bonus from an earning rule.
RewardA signup, product review or birthday reward.
Reward reversalCashback taken back after the earning order was refunded or cancelled.
WithdrawalA withdrawal request your team marked as transferred.
Migrated balanceThe opening balance carried over from your previous wallet plugin.
Balance adjustmentA credit or debit made by your team (one wallet, bulk operation, CSV import or WP-CLI).

When a row belongs to one of the customer’s own orders, the label is followed by a link such as (order #64) that opens the order in My Account.

Under the label, customers see a short system-written description for order payments, refunds, top-ups, migrated balances, withdrawals, cashback, rewards and reward reversals (for example “Payment for order #64”). The reason and note your team types on a manual adjustment are never shown to customers: they stay in the ledger for staff only. Customers see “Balance adjustment” and the amount.

When the customer has earlier activity, a line under the history reads “Looking for activity from before your wallet moved to our new system? See earlier activity” and links to that tab.

A customer with no history yet sees “No wallet activity yet. Funds you receive and spend will show up here.”

Add funds

↑ Back to top

A single amount box and an Add funds button. The text under it states your minimum and maximum, for example “Between $5.00 and $500.00. You pay with any available payment method; the funds appear in your wallet as soon as the payment is confirmed.”

When the customer submits an amount, Elite Balance creates a top-up order and sends the customer to its payment page. The wallet is credited once the payment is confirmed. The wallet itself is never offered as a way to pay for a top-up. Limits, payment methods and the order status are set on WooCommerce > Settings > Elite Balance > Top-ups; see Top-ups (Add Funds).

Withdraw

↑ Back to top

The Withdraw funds card shows “Available to withdraw” (the available balance), then a form with:

  • Amount, limited by your Minimum per request and Maximum per request settings.
  • Payout method, a list of the methods you configured. Choosing a method shows its note (what details to provide) and its fee note, for example “This method has no withdrawal fee.”
  • Payout details, where the customer enters their bank or PayPal details. The form remembers the details the customer last used for each method and fills them in again.
  • The Request withdrawal button.

A customer can have one open request at a time. While a request is open, the form is replaced by “You have a withdrawal request in progress: $30.00 (Pending). You can open a new one once it is resolved.” While the request is still Pending, a Cancel request button is shown. Once your team moves it to Processing, only staff can resolve it.

Below the form, Your withdrawal requests lists the customer’s last 10 requests with Date, Amount and Status (Pending, Processing, Transferred, Rejected or Cancelled). For a rejected request, the rejection reason your team chose is shown under the status, so the customer knows what to fix. This is the only staff-written text a customer ever sees.

The Withdraw tab: Withdraw funds, Available to withdraw $24.00, a notice that a $30.00 request is in progress with a Cancel request button, and a Your withdrawal requests table with one Pending row.
The Withdraw tab while a request is pending.

The full request lifecycle is covered in Withdrawals.

Earlier activity

↑ Back to top

New in 1.1.0. If you moved to Elite Balance from another wallet plugin, the old plugin’s transaction log is copied into a read-only archive after the migration. This tab shows the customer their part of it.

  • An introduction explains the move, for example “Your wallet moved to our new system on August 24, 2026. Your balance at that time was carried over and appears under Transactions as “Migrated balance”. Below is your wallet activity from before the move, kept for your records.”
  • The table has Date, Activity and Amount columns, 15 entries per page. There is no balance column: these entries happened in the old plugin, and the balance they led to was carried over as the Migrated balance entry under Transactions.
  • Activity uses neutral labels (Order payment, Refund to wallet, Wallet top-up, Cashback, Cashback reversed, Reward, Wallet transfer received, Wallet transfer sent, Withdrawal, Fee, Expired credit, Balance carried over, Store credit added, Balance adjustment). The old plugin’s own descriptions, methods and notes are never shown to customers, because they often held staff shorthand or other customers’ details.
  • An order link appears only when the entry refers to one of the customer’s own orders.
  • Entries that never counted toward the old balance (for example a debit the old plugin refused) are hidden from customers.
The Earlier activity tab: an introduction saying the wallet moved on August 24, 2026 and the balance appears under Transactions as Migrated balance, then a table of four older entries: two Order payment debits, a Store credit added credit and a Refund to wallet credit.
Earlier activity: the old plugin’s log, read only, with neutral labels.

To hide the tab from every customer, untick Earlier activity on WooCommerce > Settings > Elite Balance. Staff always see the full archive, with the original details, on the customer’s wallet screen. See Migrating from Another Wallet Plugin for how the archive is filled.

The “on the way” line

↑ Back to top

When Cashback release delay (days) is above 0 (the default is 30), order cashback and top-up bonuses wait as pending before they reach the wallet. While a customer has pending rewards, a line under the balance tells them the total and the earliest date any of it becomes spendable. The wording names what is pending:

  • “Cashback on the way: $1.80, added to your wallet from November 9, 2026.” when only order cashback is pending.
  • “Top-up bonus on the way: …” when only top-up bonuses are pending.
  • “Rewards on the way: …” when both are pending.

The line follows the pending awards, not the setting: if you later lower the delay or set it to 0, rewards that are already pending stay visible until they are released. A refund on the earning order shrinks the pending amount. See Earning Rules and Cashback.

Renaming the page and its address

↑ Back to top

Go to WooCommerce > Settings > Elite Balance (the General section) and find Customer wallet page.

SettingDefaultWhat it does
Page nameWalletThe label in the My Account menu and the page title. Use whatever fits your store, for example “Store credit” or “My funds”.
Page URL slugwalletThe address segment, as in /my-account/{slug}/. Lowercase letters, numbers and hyphens only. The tab addresses follow it.
Earlier activityOnShows customers the Earlier activity tab when they have entries copied from your previous wallet plugin. Untick to hide the tab from all customers. Staff always see the archive on the wallet screen.
WooCommerce Settings, Elite Balance tab, General section: the Checkout status with Wallet payments on, then Customer wallet page with Page name set to Wallet, Page URL slug set to wallet, and the Earlier activity checkbox ticked.
The Customer wallet page settings on the General section.

Click Save changes. When the slug changes, Elite Balance refreshes WordPress’s permalinks for you on the next page load, so the new address works straight away.

Note: Changing the slug changes every wallet address. Links you sent before (for example to /my-account/wallet/add-funds/) stop working, so update menus, emails and banners that point to the old address.

Showing the balance anywhere

↑ Back to top

You can show the logged-in customer’s balance outside My Account, for example in the header, a menu, the cart page or a sidebar. Both options below output the amount only (for example “$54.00”), so add your own text around it, such as “Store credit:”. Logged-out visitors see nothing, so both are safe to place in site-wide areas.

The Wallet Balance block

↑ Back to top
  1. Edit a page, post, template or template part in the block editor.
  2. Add the Wallet Balance block (search for “wallet”, “balance” or “store credit”; it is in the Widgets category).
  3. In the block sidebar, under Wallet balance settings, choose the options below.
  4. Save. The editor shows a placeholder; the real amount appears on the front end for logged-in customers.
SettingDefaultWhat it does
Amount to showBalanceBalance shows the wallet balance. Available to spend (balance minus holds) leaves out money reserved by unpaid orders and open withdrawal requests.
Link to the wallet pageOnOn: the amount links to the customer’s wallet page. Off: the amount is plain text.

The shortcode

↑ Back to top

Use [rb_elite_balance] anywhere shortcodes work (a Shortcode block, a classic widget, a page builder text module).

AttributeDefaultValues
showbalancebalance shows the wallet balance. available shows the available balance (balance minus holds). Any other value is treated as balance.
linkyesyes links the amount to the wallet page. Any other value (for example no) outputs plain text.

Examples:

[rb_elite_balance]
[rb_elite_balance show="available"]
[rb_elite_balance show="available" link="no"]

The block and the shortcode share the same code and the same template, so they always render identically.

Privacy: what customers never see

↑ Back to top
  • Reasons and notes your team types on manual and bulk adjustments.
  • Staff notes on withdrawal requests (the rejection reason is the one exception, by design).
  • Other customers’ data: every view reads only the logged-in customer’s own wallet, and order links appear only for the customer’s own orders.
  • The original descriptions, methods and notes from your previous wallet plugin’s log.

For developers

↑ Back to top

Template overrides

↑ Back to top

Every customer-facing surface renders through a template your theme can override. Copy the file from the plugin’s templates/ folder into your theme, keeping the relative path, and edit your copy. Your copy always wins. Use a child theme so updates to the parent theme do not remove it.

Wallet page, block, shortcode and checkout templates go in yourtheme/elite-balance/:

TemplateVersionOverride pathRenders
myaccount/wallet.php0.9.0yourtheme/elite-balance/myaccount/wallet.phpThe wallet page: summary, tab row and the Transactions tab.
myaccount/topup-form.php0.9.0yourtheme/elite-balance/myaccount/topup-form.phpThe Add funds form.
myaccount/withdraw-form.php0.9.0yourtheme/elite-balance/myaccount/withdraw-form.phpThe Withdraw form and the customer’s request list.
myaccount/pending-cashback.php1.1.0yourtheme/elite-balance/myaccount/pending-cashback.phpThe “on the way” line. Since 1.1.0 it receives $args['kind'] (cashback, topup_bonus or mixed).
myaccount/earlier-activity.php1.1.0 (new)yourtheme/elite-balance/myaccount/earlier-activity.phpThe Earlier activity tab.
balance.php0.5.0yourtheme/elite-balance/balance.phpThe Wallet Balance block and the [rb_elite_balance] shortcode.
checkout/partial-payment.php0.9.0yourtheme/elite-balance/checkout/partial-payment.phpThe “Use my wallet balance” partial payment option on the classic checkout. The Checkout block uses its own script, not this template.

Email templates follow WooCommerce’s email template system and go in yourtheme/woocommerce/emails/ (HTML) and yourtheme/woocommerce/emails/plain/ (plain text):

TemplateVersionUsed by
emails/wallet-credited.php, emails/plain/wallet-credited.php0.5.0Wallet credited
emails/wallet-debited.php, emails/plain/wallet-debited.php0.5.0Wallet debited
emails/low-balance.php, emails/plain/low-balance.php0.5.0Wallet low balance
emails/withdrawal-notification.php, emails/plain/withdrawal-notification.php0.8.0All four withdrawal emails (branch on $email->id if one needs its own markup)

Each template carries a @version line in its header. After updating Elite Balance, compare your overrides with the plugin’s copies, as you would with WooCommerce templates. In 1.1.0, myaccount/pending-cashback.php changed and myaccount/earlier-activity.php is new.

Tip: For text changes in emails, you rarely need an override: subject, heading and body are editable on each email’s screen under WooCommerce > Settings > Emails. See Wallet Emails.

Hooks for the wallet page

↑ Back to top

Prefer a hook when you only need to add content. Templates receive their data as one $args array, filterable through rb_elite_balance_template_args.

HookTypeWhat it does
rb_elite_balance_account_wallet_after_summaryactionAfter the balance summary, before the tab row. The “on the way” line uses it.
rb_elite_balance_account_wallet_before_historyactionBefore the history table on the Transactions tab.
rb_elite_balance_account_wallet_after_historyactionAfter the history table on the Transactions tab. The earlier activity pointer uses it.
rb_elite_balance_account_tabsfilterAdd, rename or reorder tabs: id => array( 'label' => ..., 'priority' => ... ). Built-in priorities: Transactions 10, Add funds 20, Withdraw 30, Earlier activity 40. Use the id in sanitized form; all-digit ids are reserved.
rb_elite_balance_account_tab_{id}actionRenders your custom tab’s content when it is active.
rb_elite_balance_account_transactions_per_pagefilterHistory rows per page (default 15).
rb_elite_balance_history_per_pagefilterEarlier activity entries per page (default 15).
rb_elite_balance_history_customer_visiblefilterWhether customers may see Earlier activity (default from the setting).
rb_elite_balance_account_endpoint_labelfilterThe page name, after the setting.
rb_elite_balance_account_endpoint_slugfilterThe URL slug, after the setting.
rb_elite_balance_balance_htmlfilterThe final HTML of the block and shortcode. Receives the HTML, the normalized attributes and the user ID.
rb_elite_balance_customer_notefilterThe description a customer sees under one transaction.

Example: add a Gift cards tab after Withdraw.

add_filter( 'rb_elite_balance_account_tabs', function ( $tabs ) {
	$tabs['gift-cards'] = array(
		'label'    => __( 'Gift cards', 'my-theme' ),
		'priority' => 35,
	);
	return $tabs;
} );

add_action( 'rb_elite_balance_account_tab_gift-cards', function () {
	echo '<p>' . esc_html__( 'Redeem a gift card code here.', 'my-theme' ) . '</p>';
} );

The full hook list is on the Developer Reference.

Related

↑ Back to top
Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.