Skip to content

Voxel Points Changelog

Release notes for every Voxel Points release, newest first. The current release is 0.7.4.

Updates install through the normal WordPress updates screen once your license is active.

0.7.4 is a pre-release

Feature-complete against the v1 scope, but the version stays below 1.0.0 until it has been run on real sites in beta. Install on staging first.

0.7.4

Changed

  • Buy links now point at vxpoints.com, the plugin's own site — the Plugin URI in wp-admin, the "Need a licence?" link on the licence screen, and the purchase URL the licensing config reports.

    Licence activation is unaffected and still talks to codewattz.com, where the store runs. The two were previously derived from one value and are now separate settings, so the product site can move without anyone touching activation.

0.7.3

New

  • Award points for activity that already happened. Import → Past activity on this site goes back through the reviews members wrote, the posts they published, their timeline posts, comments and registrations, and awards points for all of it — keeping each award on its original date, so past-period leaderboards and member history stay accurate. Previously a site that installed Voxel Points after two years of reviews had no way to pay for any of it, and badges like "10 reviews" could never be earned by the people who had actually written them.

    It shows exactly what it will do before it does it — points, members, and a per-source breakdown of what is already awarded and what a daily cap will hold back — asks for confirmation, and can be undone in one click. Safe to run more than once: anything already awarded is recognised and skipped.

    Daily visits, follows and orders are deliberately excluded. There is no reliable record of when a visit or follow happened, and orders carry test-mode and status rules that cannot be safely replayed.

    Also available as wp voxel-points backfill, with --dry-run, backfill-undo and backfill-cancel.

Changed

  • Badge and level icons are picked the way Voxel picks taxonomy icons. The same picker, because it is the same picker: click the tile to choose from the icon library (Line Awesome and Font Awesome, whichever packs your site has), or use Upload SVG for a media library filtered to show SVGs only. No icon library ships with this plugin and nothing extra is loaded — on a Voxel site the picker is already on the page.

    An icon is now stored in Voxel's own library:value format, so a value copied from a taxonomy term works on a badge and vice versa.

    Icons you have already set keep working. Artwork chosen before this release still renders exactly as it did, PNG included, and can stay as it is indefinitely — the new picker only applies to icons you choose from now on.

    Tinting still applies to artwork, painting any SVG or PNG in your accent colour. It is hidden for icon-font glyphs, which are monochrome to begin with and simply take the colour.

Fixed

  • A reversed award no longer uses up a member's daily cap. Revoking one spam review used to cost the member a slot for the rest of that day, and undoing an import left every capped day full so a corrected re-run silently awarded nothing.
  • Undoing a bulk award now takes back the badges it caused. Levels are worked out from the balance and correct themselves; badges are stored, so members were left holding badges the ledger no longer justified. Badges an admin awarded by hand are never touched.

Documentation

  • For Developers now describes what actually exists, and is marked experimental until 1.0 rather than implying a frozen contract. It documents reading a member's points, writing your own awards, the five actions, the two REST tiers and the CLI — and, deliberately, a "what you cannot extend yet" table covering custom earning rules, reward types, badge criteria and award filters, each with the workaround that does work today.
  • The app events list was missing points:expired and points:expiry_warning; both are now documented.

0.7.2

Changed

  • The icon picker on Levels & Badges says what it is. It was an unlabelled dashed square with a plus sign sitting next to the colour swatch — nothing identified it as an icon control, and the only hint was a hover tooltip. It is now a labelled button with a picture glyph, collapsing back to a thumbnail once an icon is set.

Documentation

  • Added Giving a level or badge an icon — choosing artwork, tinting it with your colour, and the circle-vs-standalone shape, none of which were documented.

0.7.1

Beta feedback, and the fixes that came out of testing it.

New

  • Rewards Store: choose which rewards each store shows, and their order. Drag the rows to reorder; leave it empty and every active reward shows, so an existing store is untouched. Two widgets with different lists, plus Voxel's Visibility rules, gives one store for customers and another for businesses.
  • Badges can be awarded by hand. Open Members, click Adjust on a member, and click a badge to give it or take it back — or use wp voxel-points badge award|revoke. Award manually was previously selectable but had no way to actually hand a badge out.
  • A Member field on Points Balance, Points History, Member Level and Member Badges. Empty means the logged-in visitor, exactly as before. Set a user ID — or a dynamic tag such as @tags()@author(id) — to show the member whose profile the widget sits on. See Which Member a Widget Shows.

Fixed

  • Revoking a badge now takes back any bonus points it carried. It previously left them behind and left the ledger's dedup slot occupied, so re-awarding the same badge later credited nothing at all, silently.
  • Awarding a badge without changing points no longer reports "Adjustment must be a non-zero integer". Badges save immediately, and the button now reads Done until there is a points value to apply.
  • The download no longer includes demo artwork that only the (unshipped) demo seeder could use.

0.7.0

First packaged build, for internal tracking and beta testing.

Earning

  • Append-only ledger as the single source of truth. Balances, levels, ranks and leaderboards are all caches rebuildable from it.
  • Earning rules for orders (flat and per-currency), reviews, timeline posts, comments, post approvals, follows, registration, daily visits and profile completion — including per-post-type rules built from your own Voxel post types.
  • Anti-abuse: once-per-reference dedup enforced by a unique database index, per-rule daily caps, a site-wide daily cap, and self-action guards.
  • Automatic reversals for refunded orders, deleted reviews, timeline posts and comments, and posts trashed or rejected after approval, plus a daily reconciliation sweep.

Spending

  • Rewards catalog: listing promotions granted through Voxel's own promotion system, search priority boosts, and manual fulfilment.
  • Atomic redemption with automatic refund if fulfilment fails, per-reward stock and per-member limits, and an admin fulfilment queue.

Progression

  • Levels by lifetime earned — spending never demotes anyone.
  • Badges from points, rule counts, levels, streaks or manual award, with optional bonus points and retroactive backfill.
  • Daily visit streaks with milestone bonuses, measured in your site's timezone.
  • Optional level mark beside member names in the timeline, user bar and inbox, which steps aside automatically for Voxel Toolkit's online-status indicator.

Administration

  • Vue single-page admin with light and dark modes, and a first-run setup wizard.
  • Members screen with search, level filter, sorting and CSV export.
  • Import from myCred (balances or full history) and from CSV — deduped, previewable, and undoable.
  • Optional points expiry based on inactivity, with advance warning to members and a preview before you enable it.
  • WP-CLI: recount, backfill_badges, purge_orphans, balance, stats, import, import_undo, expire.

Front end

  • Eight Elementor widgets: Leaderboard, Points Balance (with next-reward teaser), Points History, How to Earn, Rewards Store, Member Level, Member Badges, Leaderboard Privacy.
  • Eleven dynamic tags on the user and author groups.
  • Voxel app events for points earned, spent, expired, expiring, redeemed, level up, streak milestone and badge earned — so notification tooling, including Voxel Toolkit's SMS and Push, picks them up with no configuration.

Other

  • Full translation support including the Vue admin; one POT covers everything.
  • Fluent Cart licensing with a custom in-app license page and update delivery.

Built by Code Wattz.