Sentio License Manager – Sell Digital Products with WooCommerce

Beschreibung

Sentio License Manager turns your WooCommerce store into a software licensing server. Sell licenses for your plugins, themes, or apps and let customers activate their purchase by signing in with their store account — no license keys to email, copy, or paste, and no separate dashboard to learn.

When a customer completes an order for a licensed product, Sentio License Manager issues a license automatically and ties it to their account. The customer installs your software, opens its license screen, signs in with their store email and password, and activation happens in one step — on every site they own, up to the plan’s seat limit.

Login-Based Activation — No Keys Required

Instead of emailing keys and fielding „it says invalid“ support tickets, Sentio License Manager authenticates against your store credentials. Customers never see or handle a license key.

A Full REST API for Your Client Plugins

Sentio License Manager exposes a Bearer-token REST API that your distributed plugin or theme talks to: authenticate, activate a site, verify a license, and deactivate a seat. The built-in Integration Guide documents every endpoint with copy-pasteable code, and a complete working example client is available in the hosted developer documentation — copy one file, set four constants, and your software is license-aware.

AI Authorization and Metering (Optional)

If the software you sell has an AI feature, Sentio License Manager can authorize and meter it against the same license record that grants access — a monthly allowance per license, per-site usage reporting, and revocation when you need it. Three execution modes cover the realistic deployments: your customers‘ plugins call a provider directly with their own keys, or they call a gateway you run, or this site forwards the request itself. The feature is off until you configure it, and nothing else in the plugin depends on it.

Migrate From LMFWC or Digital License Manager

Already using License Manager for WooCommerce (LMFWC) or Digital License Manager (DLM)? Sentio License Manager imports your existing licenses with a guided, dry-run-first migration tool. It also ships REST API compatibility shims that return LMFWC- and DLM-shaped responses, so the client integrations you have already deployed keep working without code changes while you transition.

Key Features

  • Login-based activation — customers activate with their store account, never a key
  • Automatic license generation when a WooCommerce order completes
  • Per-domain activation management with configurable seat limits per plan
  • Single-site, multi-site, and unlimited activation tiers
  • Full REST API with Bearer-token authentication for client plugins
  • Built-in Integration Guide with copy-pasteable code, linked to full hosted developer documentation
  • One-click migration from License Manager for WooCommerce (LMFWC) and Digital License Manager (DLM)
  • REST API compatibility shims so existing LMFWC/DLM client integrations keep working
  • Optional, consent-gated anonymous usage telemetry (off unless you opt in)
  • HPOS (High-Performance Order Storage) compatible

How It Works

  1. Install Sentio License Manager on your WooCommerce store, create a product, and link it to a license plan from the Products screen — a couple of minutes with the built-in panel.
  2. A customer purchases through your store and receives an order confirmation automatically.
  3. The customer installs your plugin or theme, opens its license screen, and signs in with their store credentials — the license activates immediately, no key required.

Requirements

  • WordPress 6.2 or higher
  • WooCommerce 9.0 or higher
  • PHP 8.0 or higher

External Services

Every outbound request this plugin can make is listed below. Two of the entries make no connection at all and are listed for completeness.

sentioaddons.com — anonymous usage telemetry (opt-in)

Anonymous usage statistics, so we can see which features and migration paths are actually used and prioritise accordingly. Nothing is sent before you consent. On first activation a welcome screen offers a consent checkbox (unchecked by default) and an optional email field; Skip forces consent off regardless. On consent the plugin POSTs daily, on a WordPress cron job, to https://sentioaddons.com/wp-json/sentio-lm/v1/telemetry.

Data sent: plugin, WordPress, PHP and WooCommerce versions; aggregate license counts by status and an aggregate product count (counts only); counts of licenses imported from LMFWC and DLM; the number of REST-compatibility keys configured; site locale; a SHA-256 hash of your site URL (one-way, used only to de-duplicate pings from the same site); and your optional email if you supplied one. Your IP address is not sent. License keys, customer emails, order details and page content are never collected.

Opting out at Sentio Settings Anonymous Usage Data sends a DELETE to https://sentioaddons.com/wp-json/sentio-lm/v1/telemetry/site, which removes your site’s row and unschedules the cron. It carries a per-site deletion token issued on each ping, so nobody else can delete your row.

OpenAI and Anthropic — only in „SLM calls the provider“ mode

The AI metering feature has three execution modes, set at Sentio License Manager AI. Only one of them makes this site contact an AI provider, and an administrator must select it and supply an API key and model name before it does anything. In that mode this site forwards each generation request to whichever provider was configured:

When: on each generation a licensed client plugin requests, and once when an administrator presses Test connection on the AI settings screen. Data sent: the prompt text the requesting client supplied, the model string the administrator configured, an output-token limit, and the administrator’s own API key as an authorization header. No license data, customer data, site URL or personal information is included.

The other two modes contact no AI provider from this site. Under bring your own key, client plugins call the provider directly with their own users‘ keys. Under your own endpoint, this site signs a short-lived token that your gateway verifies offline. In that mode, pressing Test connection posts one request to the gateway URL you configured — your own infrastructure, not a third party.

Cloudflare IP ranges (no connection made)

The trusted-proxy setting has a one-click preset that fills in Cloudflare’s published IP ranges, for sites served through Cloudflare. The list is bundled as static data inside the plugin (last verified 2026-04-18): the plugin never connects to Cloudflare and sends it nothing. Terms: https://www.cloudflare.com/terms/ · Privacy: https://www.cloudflare.com/privacypolicy/

Credits

This plugin bundles one third-party library:

  • defuse/php-encryption (MIT license) — used only to decrypt your existing license keys when migrating from License Manager for WooCommerce (LMFWC) or Digital License Manager (DLM). It performs local cryptography only and makes no network connections. Source: https://github.com/defuse/php-encryption

Installation

  1. Upload the sentio-license-manager folder to /wp-content/plugins/, or install it from your WordPress admin under Plugins → Add New.
  2. Activate the plugin through the Plugins menu in WordPress.
  3. Ensure WooCommerce is installed and active.
  4. Go to License Manager → Products to create your first product plan.
  5. Link the plan to a WooCommerce product or variation.
  6. See License Manager → Integration Guide for client plugin setup instructions; a complete example client lives in the hosted developer documentation linked from the guide.

FAQ

Does this require WooCommerce?

Yes. WooCommerce must be installed and active — Sentio License Manager generates licenses from completed WooCommerce orders.

How do customers activate their license?

They install your plugin or theme, open its license screen, and sign in with their WooCommerce store account email and password. No license key is copied or pasted.

Can I migrate from another license plugin?

Yes. Sentio License Manager includes guided importers for License Manager for WooCommerce (LMFWC) and Digital License Manager (DLM). Each migration offers a dry run first so you can preview exactly what will be imported.

Will my existing client integrations break after migrating?

No. Sentio License Manager ships REST API compatibility shims that return LMFWC- and DLM-shaped responses, so the client code you have already shipped to customers keeps working while you transition to Sentio License Manager’s native API.

Does the plugin send any data off-site?

Only if you opt in. On first activation Sentio License Manager shows a welcome screen with an anonymous-usage telemetry toggle (and an optional email). Nothing is sent unless you allow it, and you can opt out anytime from Settings. See the „External Services“ section above for the exact data and endpoints.

Is it compatible with HPOS?

Yes. Sentio License Manager is fully compatible with WooCommerce High-Performance Order Storage (custom order tables).

Rezensionen

Zu diesem Plugin liegen noch keine Rezensionen vor.

Mitwirkende und Entwickler

„Sentio License Manager – Sell Digital Products with WooCommerce“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

Änderungsprotokoll

2.0.0 – 2026-09-02

  • AI authorization and metering. If the software you sell has an AI feature, you can now meter its usage against the same license record that grants access to it. A license carries a monthly generation allowance; a client plugin claims one generation before it runs and reports the outcome afterwards, so a generation that fails is not charged. A new AI screen configures the whole thing, covering three execution modes: your customers‘ plugins call a provider directly with their own keys, they call a gateway you run (this site signs a short-lived token your gateway verifies offline), or this site forwards the request to OpenAI or Anthropic itself. Only the last of those makes an outbound request from your server — see „External Services“ for the disclosure.
  • Self-registration for free-tier client plugins. A plugin with no paying customer behind it can register itself for a free allowance without a WooCommerce order, and re-registering after a reinstall returns the registration it already had rather than minting a second one, so an allowance is a genuine monthly figure rather than something that resets on every reinstall.
  • Revoke, restore and delete AI access per site, from the licenses screen. Revocation is immediate and terminal: a revoked site is told so once and stops contacting this server entirely, rather than retrying an authorization that will never succeed. Restoring puts it straight back.
  • An AI usage screen showing consumption per license and per activated site, with each license’s allowance and what has been drawn against it.
  • Metering is keyed to the license, not the site, so several sites activated against one license draw on one shared allowance — matching how the seat limit already works.
  • „Bring your own key“ mode is never metered. When your customers pay their own provider, there is nothing for this server to count, and it no longer counts it.
  • Fixed: POST /auth returned a fatal 500 for every request carrying a password, from 1.8.3 onwards. Login-based activation — the plugin’s headline feature — was broken for anyone running this plugin without the premium edition installed alongside it. The REST argument validator declared for the password parameter in 1.8.3 could not accept the arguments WordPress passes it.
  • Fixed: re-activating a site that had previously been deactivated now reuses its existing activation row instead of adding a second one, so the seat count reflects reality.
  • The connection test on the AI screen now sends the same request shape a real client sends and reports the result in place rather than reloading the screen. It previously reported failure against correctly configured endpoints, and never charges a customer’s allowance.
  • Hardened the AI settings form against browser autofill, which could silently overwrite the model and endpoint fields with a saved email address. Values that cannot be what the field is for are now refused on save rather than stored.
  • Authentication failures are logged with the reason the authentication actually returned, instead of recording every failure as a wrong password. A login blocked by another plugin on your site no longer reads as a bad credential in your logs. The response to the client is unchanged and stays deliberately generic.

1.8.5 – 2026-07-28

  • The anonymous-usage telemetry checkbox on the welcome screen now renders unchecked. Telemetry is strictly opt-in: nothing is transmitted, no email is stored, and no scheduled task is created unless you tick the box and save.
  • Global identifier prefix lengthened from slm to sentiolm to prevent conflicts with other plugins, per the directory guidelines. This covers option and user-meta keys, transients, scheduled-task hooks, action and filter names, form and AJAX action names, nonce actions, script and style handles, admin page slugs, and plugin constants. Existing installs carry their schema-tracking data forward automatically; other stored settings reset to defaults on upgrade.

1.8.4 – 2026-07-24

  • The bundled example-integration reference code has been removed from the package in favor of hosted developer documentation (linked from the Integration Guide and overridable via the sentiolm_example_integration_url filter). The guide’s inline code snippets are unchanged.
  • The licenses-table per-page preference is now persisted only on a nonce-verified filter-form submit by a user with manage_options — plain pagination links can no longer write the stored preference.
  • Every admin action handler (admin-post forms, AJAX endpoints, WooCommerce save hooks) now carries an explicit inline capability check followed by its nonce verification as the first statements of the handler, replacing the shared verification helper so the checks are visible at every read site.

1.8.3 – 2026-07-20

  • All admin inline <script>/<style> blocks moved into enqueued asset files (Integration Guide, Settings, Products, and the WooCommerce product panel/variation fields), loaded only on their owning screens via admin_enqueue_scripts.
  • Input-sanitization hardening: the licenses-table pagination now builds its links from an allowlisted, pre-sanitized parameter set instead of the raw request; API credential secrets from HTTP Basic Auth are sanitized at every intake point.
  • Output-escaping hardening: white-label values interpolated into inline CSS are now type-sanitized (hex colors, font allowlist, tag-stripped custom CSS), and the My Account endpoint title filter escapes the substituted label.
  • REST security: the LMFWC/DLM compatibility shims now require a consumer key with write permission for license activation and deactivation (matching create/update/delete); telemetry opt-out deletion now requires a per-site deletion token (returned on each ping, stored server-side only as a hash) so third parties cannot delete another site’s telemetry row.
  • Example-integration reference code renamed to a unique sentiolm_example_ prefix throughout.
  • Admin screens now derive the REST base URL via rest_url(); fixed an unclosed output buffer in the license-update handler.
  • Exhaustive follow-up audit across every shipped file: remaining inline onclick handlers replaced by a shared enqueued confirm helper, a declared sanitize_callback added to every REST route argument, and uniform unslash-plus-sanitize applied to every remaining request-variable read.

1.8.2 – 2026-06-18

  • First WordPress.org release, revised for the directory. Self-hosted plugin/theme update-delivery — which served downloadable packages and fed WordPress native update checks for externally hosted plugins — has been completely removed: the public REST update endpoint, the „Plugin Releases“ admin screen, the release-metadata database table, and all supporting code are deleted. This addresses the storefront/update-delivery classification; the plugin no longer installs, updates, or distributes any code from outside WordPress.org.
  • Sentio License Manager is now strictly a license-management plugin: it issues and validates license keys for WooCommerce products and tracks per-site activations via a REST API — the same scope as other licensing plugins in the directory (License Manager for WooCommerce, Digital License Manager). It does not deliver software updates.
  • Unchanged: license issuance on WooCommerce purchase, per-site activation management, the license-validation REST API (activate/validate/deactivate), LMFWC and DLM migration tools, the REST API compatibility shim, and consent-gated anonymous telemetry.