Moksa Points for WooCommerce is the value engine of the Moksa platform: a single, idempotent ledger that is the one source of truth for every customer’s points and store-credit balance. Companion plugins (coupons, membership) read the balance through a documented API and never store their own, so value can never drift between plugins.
Every balance change is written once through a de-duplicated ledger entry keyed by a stable reference, so a retried checkout, a double-fired hook or a concurrent request can never mint or double-spend value. Redemption and checkout debits are guarded by a per-user lock, and refunds and cancellations proportionally reverse the points and credit they originally granted.
Points is modular — enable only what you need from the plugin’s own “Moksa Points Settings” screen. On first install a safe additive core is enabled: the ledger, the “My points” account page with its tier / badges / leaderboard display, purchase and coupon earning, campaigns, and WordPress Ability registration (every ability is capability-checked against manage_woocommerce). Two groups stay off until you turn them on: anything that moves value at checkout (points and store-credit redemption, cashback, gift cards) and anything that opens an outside interface (the external MCP server, outbound webhooks, LINE notifications, the customer REST API). The in-dashboard AI assistant is bundled but does nothing until you configure a provider in WordPress’s AI Client. The plugin is HPOS and Block Checkout compatible and, on uninstall, removes only its own moksafopoi_ prefixed data.
Every read and value action is registered as a capability-checked WordPress Ability, reachable from the WordPress Abilities API, an in-dashboard AI assistant (WordPress 7.0 AI Client) and an optional self-built MCP server.
Ability registration is on out of the box, so an agent working inside your dashboard can read and act on the programme; every ability and REST route checks the current user’s manage_woocommerce capability, so it can never do more than the logged-in user could do by hand. The AI assistant stays inert until you configure a provider, and the MCP server is off entirely. Destructive abilities are never exposed to external MCP unless you separately opt in — and when they are, they additionally require an administrator-level capability, an hourly rate limit and an audit log of every call.
Out of the box this plugin connects to nothing and makes no outbound HTTP requests. Three optional features, each off by default, can contact a service you choose:
AI assistant (in the dashboard). When you enable it and configure a provider in WordPress’s AI Client (WordPress 7.0+), the natural-language text you type in the admin is sent to the AI model provider you configured. The plugin bundles no AI SDK and includes no API keys. Which provider receives the text, and the terms and privacy policy that apply, depend entirely on the AI Client connector you set up.
Outbound webhooks. When you enable webhooks and enter an endpoint URL, the plugin sends a JSON POST to THAT URL — a URL you supply, not one of ours — each time a subscribed points event happens (points earned, redeemed, expiring soon, quest completed). The payload contains the customer’s user ID, their balance, and the event details; their e-mail address is included only if you additionally tick “Include the member e-mail”. Nothing is sent until you provide a URL and select at least one event. Because the destination is your own choice, the applicable terms and privacy policy are those of whichever service you point it at.
LINE notifications. When you enable LINE notifications and enter a LINE Messaging API channel access token, the plugin sends a message to the LINE Messaging API (https://api.line.me/v2/bot/message/push) for members who have linked their LINE account. The request contains the member’s LINE user ID and the message text. Service: LINE Messaging API, operated by LY Corporation — terms: https://terms.line.me/line_terms/ , privacy policy: https://line.me/en/terms/policy/ . Nothing is sent until you provide a token and select at least one event, and members who have not linked LINE are skipped entirely.