*** Elite Balance Changelog *** 2026-10-15 - version 1.1.1 * Tweak - Earlier wallet activity on the wallet screen: the explanation is now an info tip on the section's summary line, so the open section starts with the check against the migrated balance. * Tweak - Earlier wallet activity wording: the entries are described as migrated and read only (they did change the balance in the old plugin; that balance was carried over as the Migrated balance entry), on the wallet screen, the Tools migration card, and the Earlier activity setting. * Fix - With a currency switcher active, the wallet payment option and the wallet amount field are hidden when the cart isn't in the store's currency, instead of failing when the order is placed. * Fix - The store's base currency is read from the store settings, so a currency switcher can no longer change which wallet is used. * Fix - With a currency switcher active, top-up orders are always in the store's currency, and an order paid in another currency earns no cashback (a note on the order says why). * Fix - Wallets list: Export CSV kept every search except "0"; it now keeps that one too. * Dev - The Wallets list picks its sort column from fixed values and the export link filters empty arguments with an explicit callback (clears two notes in WooCommerce's security scan). * Dev - New rb_elite_balance_currency_note filter for the checkout line shown when the wallet is hidden for the cart's currency ("Your wallet balance can be used when paying in USD."); the same line is in the Store API cart data as currency_note. 2026-10-11 - version 1.1.0 * Add - Earlier wallet activity: after a balance migration, the old plugin's transaction log is copied, read only, into a separate archive (rb_elbal_history) that is never part of the ledger. Built in for WP Swings Wallet System, TeraWallet, YITH Account Funds, and Account Funds 4.x. * Add - Earlier activity tab on the customer's wallet page, with neutral labels and links to the customer's own orders only; entries that never counted toward the old balance stay hidden. * Add - Earlier wallet activity on the customer's wallet screen in wp-admin, with the original details, method, and note, and a check of the old log against the migrated balance. * Add - Copy earlier history on each migration card (Tools tab) and wp rb-elbal history copy / status. The copy starts by itself when a migration finishes, is idempotent, and only adds what is missing on a re-run. * Add - Setting to hide earlier activity from customers; privacy exporter and eraser for the archive (erasure blanks free text, keeps dates and amounts). * Add - Order cashback rules have "Count the part paid from the wallet". Untick it and the rule earns only on the part of the order paid by other methods, and judges its minimum by that part too; an order paid entirely from the wallet earns nothing from that rule. Existing rules keep counting the wallet part, so nothing changes on upgrade. * Tweak - Admin UX pass. All transactions is a standard WordPress list table: pagination at the top and bottom with the item count and a page box, Screen Options for rows per page and columns, sortable Date and Amount, and the small-screen layout. * Tweak - Transactions filters: a customer search replaces the User ID box, the From and To dates are labelled store dates, Clear filters, and Export CSV keeps the filters. The Reference column names the staff member ("By Store Manager"), the order, withdrawal, review, bulk operation, or earning rule. * Tweak - Edit user: a Wallet row near the top of the profile, and one Wallet card with the figures, status, quick links (Open wallet, All transactions, Orders, Withdrawals, Earlier activity), the last five entries, and the credit or debit form in the same card. The Users list gets Wallet and Transactions row actions. * Tweak - Six tabs instead of nine: Bulk operations is a button on Wallets and an Overview quick action, Support sits at the end of Tools, Settings is a link on the right, and Withdrawals shows the pending count. * Tweak - Overview uses the full width: Needs attention first, clearer tiles (credited and debited in the last 30 days), latest activity beside Find a wallet and quick actions, and a dismissible line for a finished migration. * Tweak - Wallets list: counts on every view, a With a balance view, an On hold column, status pills, relative last activity, row actions for transactions, orders, and the user, a search hint, rows per page, and Export CSV. * Tweak - Wallet screen in two columns, like the order screen: customer links and figures in the header, the full history paginated with a Reference column, earlier activity folded with an entry count, and the adjustment form, holds, and lock in the sidebar. * Tweak - One date format across the admin (store time zone and the site's format, exact UTC on hover; CSV exports stay UTC), one set of status pills, and signed, colored amounts. * Tweak - The pending line on the customer's wallet page names what is on its way: "Cashback on the way", "Top-up bonus on the way", or "Rewards on the way" when both are pending. Template myaccount/pending-cashback.php is now version 1.1.0. * Tweak - Withdrawals: export in the table toolbar, status pills, a Wallet row action, and a per-customer filter. Earning: Add rule beside the heading, the rules list first. Settings and the payment method link to each other and back to the dashboard. * Tweak - Declare compatibility with WooCommerce 11.2. * Fix - The Wallets list search, its status views, and its bulk actions (credit, debit, lock, unlock) sent you to the Overview tab, so a bulk credit or debit selected from the list never reached its confirmation screen. They stay on Wallets now. * Fix - Refunding an order paid partly from the wallet: "Refund to wallet" for the card part, then "Return to the wallet" for the wallet part, now gives back both. The second step was treated as a replay of the first, so the wallet part was never returned, and the order showed a false "not returned yet" note. * Fix - Checkout block: with a pay-by-wallet discount configured and Wallet balance selected by default, the discount line now shows from the first render (it appeared only after switching methods, although the placed order got it). * Fix - Cashback on partly refunded orders: a refund entered as an amount (the refund panel's amount box, or Refund to wallet) left the order's cashback untouched, so the customer kept cashback on money that was refunded. It now shrinks the pending cashback, or reverses the credited cashback, in proportion to the refunded share of what the customer paid. Refunds by item line work as before. * Fix - Bulk operations: after Apply, the audience sentence showed the currency symbol as raw HTML code instead of the symbol. * Fix - Singular wording for counts of one on the migration cards, the Overview, the bulk review button, the CSV import review, and the earlier history line ("1 customer", not "1 customers"). * Fix - wp rb-elbal migrate printed "Array" for each anomaly; it now prints the issue and the value. * Fix - The build no longer packages a local PHPUnit cache file. * Fix - Earning rule counters: an award made through the public award_rule() method with a short amount such as "5" added 0.0005 to the rule's awarded total. The counter now adds the amount the ledger recorded. * Dev - New Migration\HistorySourceInterface for third-party sources, filters rb_elite_balance_earn_wallet_paid, rb_elite_balance_overview_attention, rb_elite_balance_overview_quick_actions, rb_elite_balance_admin_wallet_links, rb_elite_balance_admin_transaction_reference, rb_elite_balance_history_kinds, rb_elite_balance_history_entry, rb_elite_balance_history_auto_copy, rb_elite_balance_history_customer_visible, rb_elite_balance_history_per_page, and actions rb_elite_balance_migration_completed, rb_elite_balance_history_copied, rb_elite_balance_admin_wallet_after_history, rb_elite_balance_migration_card_after. 2026-10-05 - version 1.0.2 * Fix - "Return to the wallet" on the order screen now works: its form was nested inside the order form, so the button submitted the order form instead and no money moved (it also broke Update on that order while the notice showed). * Fix - A reward reversal that could not be recovered on a fully refunded or cancelled order is now listed once on the Earning tab, not twice. 2026-09-17 - version 1.0.1 * Tweak - Remove all external links from the plugin: the Plugin URI and Author URI headers, the documentation and contact links on the Support tab, and the guide links on the Tools tab. * Tweak - Remove the Update URI plugin header. * Tweak - Support tab now points to the WooCommerce.com account for support requests and keeps the copyable site info block. * Tweak - Declare compatibility with WordPress 7.1 and WooCommerce 11.1. * Fix - Withdrawal form nonce verification restructured so Plugin Check no longer reports it as unchecked (no behavior change). 2026-07-19 - version 1.0.0 * Initial release. * Add - Ledger-backed customer wallets: every balance change is an immutable transaction with a running balance and an idempotency key, so nothing can be charged twice. * Add - Pay by wallet, fully or partially, on the classic checkout and Checkout Blocks, with checkout reservations held and captured only on confirmed payment. * Add - Optional pay-by-wallet discount (percent or fixed), re-validated server side at order time. * Add - Refund to wallet from the order screen, including orders partially paid by wallet; status changes alone never move money. * Add - Top-ups from the My Account wallet page through any enabled payment gateway. * Add - Earning rules: order cashback, top-up bonuses, and signup, review, and birthday rewards, with conditions and campaign windows. * Add - Cashback release delay (default 30 days): order-linked rewards stay pending through the refund window, so refunds shrink the pending amount instead of debiting the wallet. * Add - Automatic cashback reversal when the earning order is refunded or cancelled, proportional for partial refunds, never past zero. * Add - Customer withdrawals with an admin queue: requests reserve funds with a hold, transfers are recorded with reference and fee, rejections release the reservation untouched. * Add - Payout details retention: managers-only visibility, excluded from exports, auto-blanked after a configurable window. * Add - Bulk credit and debit with audiences and CSV import, each operation with a mandatory reason stored in the ledger. * Add - Migration importers for WP Swings Wallet System, TeraWallet, YITH Account Funds, and WooCommerce Account Funds, plus a custom meta key source, replay-safe with reconciliation reports. * Add - Wallet and withdrawal emails, each editable on the standard WooCommerce email screens. * Add - WordPress privacy tools integration: personal data export and erasure, with the ledger retained as a financial record. * Add - WP-CLI commands, including a full ledger reconcile that proves every balance against its own history. * Add - HPOS support, theme-overridable templates for every customer surface, and developer hooks throughout.