WordPress.org

Plugin Directory

Sentio License Manager – Sell Digital Products with WooCommerce

Sentio License Manager – Sell Digital Products with WooCommerce

Description

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.

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

This plugin connects to one external service. The connection is described below with what data is sent, when it occurs, and links to the vendor’s terms of service and privacy policy.

sentioaddons.com — telemetry (consent-gated, opt-in)

This plugin includes an opt-in anonymous-usage telemetry feature so we can understand how Sentio License Manager is used — license and product volumes, WordPress and PHP versions, and which migration paths people take — to prioritize bug fixes and decide what to build next. No data is sent before you grant consent.

On first activation, the plugin redirects you to a welcome screen at Sentio → Welcome. The welcome screen presents a clear consent toggle (default checked, but you can uncheck it before saving) and an optional email field. Two buttons close the welcome screen: clicking Allow & Start Building respects the checkbox state; clicking Skip forces consent to off regardless of the checkbox.

If you grant consent, a daily WordPress cron job (sentiolm_telemetry_ping) POSTs to https://sentioaddons.com/wp-json/sentio-lm/v1/telemetry. The cron runs once per 24-hour window from the time of consent.

The data fields the plugin sends are:

  • Plugin version
  • WordPress version
  • PHP version
  • WooCommerce version (if WooCommerce is active)
  • Aggregate license counts — total, plus active / expired / revoked status breakdown (counts only; no license keys, no customer data)
  • Aggregate product count
  • Migration usage — counts of licenses imported from License Manager for WooCommerce (LMFWC) and Digital License Manager (DLM)
  • Number of REST-compatibility keys configured
  • Site locale
  • SHA-256 hash of the site URL (one-way; not reversible to the original URL — used only to deduplicate pings from the same site)
  • Optional email address — only if you provided one in the welcome screen

The site’s IP address is not sent by the plugin. If country-level data is needed for analytics, it is enriched server-side from the Cloudflare CF-IPCountry HTTP header at the moment of the request, never persisted. License keys, customer emails, order details, post/page content, and visitor analytics are never collected.

You can opt out at any time from Sentio → Settings → Anonymous Usage Data. Opting out fires a DELETE request to https://sentioaddons.com/wp-json/sentio-lm/v1/telemetry/site to remove your site’s data row from our servers, and unschedules the daily cron. Opt-out is one click and does not require a confirmation step. The deletion is authenticated: each daily ping returns a random deletion token (stored only on your site; the server keeps only a hash), and the opt-out request presents that token so no third party can delete or spoof your site’s row.

Cloudflare IP ranges (no connection made)

This plugin includes a one-click preset that fills the trusted-proxy setting with Cloudflare’s publicly published IP ranges, for sites served through Cloudflare. The ranges are bundled as a static list inside the plugin (last verified 2026-04-18). The plugin never connects to Cloudflare, never loads anything from Cloudflare, and sends no data to Cloudflare — the preset is optional and only writes the bundled list into your own site’s settings when you click it. Cloudflare’s 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).

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Sentio License Manager – Sell Digital Products with WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

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.