<!--
  Markdown mirror of https://easylicensemanager.joseconti.com/
  Provided for AI agents and answer engines. Content is authoritative as of 2026-06-03.
  Canonical HTML: https://easylicensemanager.joseconti.com/
-->

# Easy License Manager for WooCommerce

> Sell software licenses through WooCommerce — generate keys on purchase, activate them over a stable, frozen REST API, serve secure updates, and gate downloads. HPOS-native, privacy-first.

- **Product:** Easy License Manager for WooCommerce
- **Version:** 1.0.0
- **License:** GPL-2.0-or-later
- **Requirements:** WordPress 6.9+, PHP 8.1+, WooCommerce 6.0+ (tested to 10.8)
- **Author:** José Conti — https://joseconti.com/
- **Purchase:** https://plugins.joseconti.com/
- **Languages:** English, Spanish

## What it is

A finished licensing system, not a starting point. Anyone selling plugins, themes, or downloadable software through WooCommerce needs to issue keys, activate and validate them, deliver updates, and limit how many sites a license runs on. Easy License Manager provides all of it as a finished, HPOS-compatible system — with a versioned API your deployed software can depend on long term.

- **2** REST endpoints — frozen & versioned
- **4** developer channels — PHP, REST, WP-CLI, MCP
- **0** external calls — privacy-first

## How it works (purchase to update, in five steps)

1. **Mark a product** — Set a WooCommerce product as a license, choose allowed activations, and upload the package and its version.
2. **Customer buys** — On order completion the store mints a license key, emails it, and shows it in the customer's account.
3. **Software activates** — The customer's software calls the activation API with the key and site identity; the store returns an activation and a salt.
4. **Validate** — The salt is sent back on later checks. Activation state and limits are enforced with stable error codes.
5. **Update & download** — The update API serves the latest build; the download endpoint serves the package only to entitled, logged-in owners.

## Features

- **Automatic license keys** — A key is minted for every downloadable item the moment an order completes — emailed and shown in My Account.
- **License activation API** — Activate a key for a site and return a per-activation salt, with activation and validation state reported through stable error codes.
- **Software update API** — Single and bulk update checks, plugin information, and authenticated package downloads for deployed software.
- **Product version management** — Upload new versions from the product editor; each is stored with a version-history record so the updater serves the latest build.
- **Secure, gated downloads** — Packages are served only to a logged-in owner with an active license, through a path-traversal-safe resolver.
- **Activation management** — Customers view and remove their site activations; admins review activations and license-owning customers.
- **Subscription status sync** — License status follows the subscription automatically — WooCommerce Subscriptions and Advanced Subscriptions, via a pluggable layer.
- **Developer read/query API** — Query licensing data over four channels — PHP, REST Abilities, WP-CLI and MCP — all redacted by a single serializer.
- **Privacy-first & safe** — No data is sent to external services. The installer never drops tables; full uninstall is opt-in and confirmation-gated.

## Why it's different

- **Frozen, versioned REST contract** — Endpoints, parameters, response shapes and error codes never change, so deployed customer software keeps working.
- **Four developer channels** — PHP, REST Abilities, WP-CLI and MCP answer identically, from a single source of truth.
- **Pluggable subscriptions** — No lock-in to one subscription plugin; add an engine through the provider abstraction without touching the core.
- **HPOS-native** — Built on the WC_Order API throughout, so classic and High-Performance Order Storage both work.
- **Strict output redaction** — The activation salt is never exposed; the license key is shown only to its owner or a capability holder.
- **Privacy-first** — The plugin makes no external calls.

## Security

- **Salt never exposed** — The per-activation salt is part of the contract secret and is never returned by any channel.
- **Owner-only key visibility** — The license key is emitted only to its owner or a holder of the API capability.
- **Application Passwords** — Remote REST and MCP access authenticates with standard WordPress Application Passwords.
- **Opt-in data lifecycle** — Uninstalling deletes nothing by default; total removal requires ticking the box and typing DELETE.

## Compatibility

- HPOS compatible (uses the WC_Order API throughout).
- Subscription engines: WooCommerce Subscriptions and Advanced Subscriptions for WooCommerce, with a pluggable layer for more.
- Requirements: WordPress 6.9+, PHP 8.1+, WooCommerce 6.0+ (tested to 10.8).
- Idempotent installer: tables are created on activation and never dropped or altered if they already exist.

## Pricing

Every plan includes all features, one year of updates and support, and a 30-day money-back guarantee. Choose by how many sites you run on.

| Plan | Sites | Price (EUR/year) |
|---|---|---|
| 1 site | 1 activation | €79 |
| 3 sites | 3 activations | €119 |
| 5 sites (Popular) | 5 activations | €149 |
| Unlimited / Agency | Unlimited activations | €199 |

- **Renewals get cheaper over time** — 20% off your first renewal, 30% off from the second onward.
- **30-day money-back guarantee** on every license.
- Prices are in euros (EUR) and exclude VAT. VAT is added at checkout based on your location.

## Author

Built and maintained by José Conti, a WordPress plugin author since 2004. See https://joseconti.com/ and https://plugins.joseconti.com/.

## See also

- [Features](https://easylicensemanager.joseconti.com/features.md)
- [Pricing](https://easylicensemanager.joseconti.com/pricing.md)
- [Developer reference](https://easylicensemanager.joseconti.com/developers.md)
- [About](https://easylicensemanager.joseconti.com/about.md)
