Documentation
LicensesWP complete playbook
A full guide for WordPress product owners: install the self-hosted license server, activate products, inject the client SDK into themes and plugins, sell with WooCommerce, and operate keys, domains, and signed updates end to end.
Customer journey
From your purchase to buyer activations
Follow the same path your business will run daily - nothing left as tribal knowledge.
-
01
1. Buy & install LicensesWP
Activate the plugin on your license-host WordPress site. Generate an API key, create Products that match your commercial slugs, and connect WooCommerce if you sell from WordPress.
-
02
2. Ship a licensed theme or plugin
Embed the Composer client SDK so activation, validation, enforcement, and update checks call your server with your product slug and API key.
-
03
3. Buyers purchase on your store
On completed order, LicensesWP issues serial keys automatically. Keys appear in email surfaces and WooCommerce My Account -> My Licenses.
-
04
4. Customers activate domains
Serials bind to allowed domains within your seat limits. Buyers self-manage activations via My Account or the
shortcode.Manage your license
-
05
5. Deliver signed updates
Only valid, activated licenses receive time-limited signed package URLs. Expired seats and unauthorized copies stay locked out.
-
06
6. Monitor & operate
Use Dashboard charts, activity logs, fraud velocity, CRM customers, bulk tools, and webhooks to run licensing like a product company.
Server setup
Install and activate the license server
LicensesWP runs on WordPress you host - no rented SaaS between you and your customers.
Upload and activate LicensesWP on the site that will act as your license host. This can be the same WordPress site as your store, or a dedicated licensing host.
Open LicensesWP -> Settings and create an API key. Store it securely; every commercial theme or plugin client will use this key with your server URL.
Create Products that match each commercial theme/plugin slug you will ship. Map WooCommerce products when you sell through WooCommerce.
Configure email templates, activation limits, durations (daily, weekly, monthly, yearly, custom days, or lifetime), and optional webhook endpoints.
- Activate LicensesWP on the license-host site
- Generate and store an API key from Settings
- Create a Product for each commercial slug
- Set duration, activation limits, and email templates
- Connect WooCommerce products (optional but recommended)
- Upload the first update package for each product version
Client SDK
Inject licensing into themes & plugins
Protect every release you sell with the official client - activation UI, enforce gating, and update checks against your host.
Inside the commercial product (plugin or theme), require the official client package with Composer, then boot it early on plugins_loaded (plugins) or after_setup_theme (themes).
Pass your license-host URL, API key, product_slug (must match the Product ID on the server), product_type (plugin or theme), version, and the main file or stylesheet path.
When enforce is enabled, unlicensed sites stay locked until a valid serial is activated on that domain. Update checks only succeed for valid seats.
Optional: set telemetry => true in the client config when the license host enables Collect client telemetry (WP/PHP/plugin versions on activate/validate).
In-plugin Developer Docs under LicensesWP → Settings → Docs expand hooks, REST routes, encryption, variable products, multisite notes, and edge cases for agencies.
- composer require licenseswp/wplm-client
- Boot the client early with server_url + api_key + product_slug
- Match product_slug exactly to the server Product
- Set product_type to plugin or theme
- Enable enforce for commercial releases
- Optional: enable telemetry when the host collects insights
- Ship a release and verify activation + update check
Bootstrap example
use LicensesWP\Client\Client;
$client = new Client([
'server_url' => 'https://your-license-host.com',
'api_key' => 'YOUR_API_KEY',
'product_slug' => 'my-plugin',
'product_name' => 'My Plugin',
'product_type' => 'plugin', // or 'theme'
'version' => '1.0.0',
'plugin_file' => __FILE__, // theme: use get_stylesheet_directory()
'enforce' => true,
'telemetry' => true, // optional
]);
$client->boot();
WooCommerce
Sell licenses from your WordPress store
Native issuance on completed orders - My Account licenses, renewals, and optional subscription alignment.
Mark commercial WooCommerce products as licensed and connect them to LicensesWP products. Choose duration and how many keys to generate per quantity.
For variable products, set duration and activation limits on each variation so yearly vs lifetime (or different seat counts) match what the customer purchased.
After checkout, keys appear for buyers under My Account -> My Licenses with copy-to-clipboard. Order status changes stay synchronized with license status.
Prefer a dedicated host without WooCommerce? Issue keys from admin or your storefront API, and let buyers use the customer portal shortcode.
- Enable licensed product flags on WC products
- Map each WC product to a LicensesWP Product
- Set variation-level duration/limits when selling tiers
- Choose duration and keys-per-quantity
- Place a test order and confirm My Licenses
- Align renewals with WooCommerce Subscriptions if used
Self-service
Customer portal & domain management
Reduce support tickets - buyers look up keys and manage domains themselves.
Add the portal shortcode to any page. The demo Portal page ships ready out of the box:
Manage your license
Customers enter purchase email + serial to review activations and deactivate domains they no longer use - within the limits you configured.
- Publish a page with
Manage your license
- Link Portal from the footer menu
- Test lookup with email + serial
- Verify domain deactivate respects seat limits
Operations
Admin control center
Everything under one LicensesWP menu for daily product operations.
Dashboard
Active/inactive by real activations, expiring-soon windows, charts, and recent activity.
Licenses & Products
Create, extend, deactivate keys; manage catalogs, versions, and update packages.
Orders & Subscriptions
Bridge store orders to licenses; run flexible durations and renewals.
Customers / CRM
Ownership views and relationship tools for renewals and support.
Activity & fraud
Audit trail plus activation-velocity monitoring for suspicious patterns.
Bulk & automation
Bulk create/update, auto-licenser mappings, and auto-deactivation on status changes.
API & webhooks
Integrate beyond WordPress
Stable REST endpoints and HMAC-signed webhooks for your wider stack.
REST actions cover activate, validate, deactivate, and update-check - documented inside the plugin Developer Docs.
Webhooks notify your CRM, Slack, or automation tools on lifecycle events with HMAC signatures so payloads stay trustworthy.
Multisite installs can track blog_id and use network-aware settings for agencies managing complex WordPress networks.
- Review REST routes in Developer Docs
- Configure webhook URL + HMAC secret
- Test activate -> validate -> update-check
- Enable multisite awareness when needed
FAQ
Common questions
Do I need WooCommerce?
No. WooCommerce unlocks automatic issuance and My Account licenses, but you can issue keys manually and use the portal shortcode without WooCommerce.
Where do updates come from?
Your license server delivers signed, expiring download URLs only to valid activated domains - packages stay under your control.
How do I license a theme vs a plugin?
Use the same client SDK. Set product_type to theme or plugin, and point plugin_file / theme path accordingly. Create matching Products on the host for each slug.
Can agencies use this?
Yes. Flexible product counts by plan, multisite awareness, white-label options, and CRM tools support studios and multi-brand setups.
Is my data portable?
Licenses live on your WordPress database and infrastructure - you are not locked into a third-party licensing SaaS.
What happens when a license expires?
Expired seats stop receiving signed updates and fail enforce checks when enforcement is enabled. Renewals re-open access automatically when configured with your store.
Next step
Ready to put it into practice?
Open the portal to test buyer flows, review Features for the full capability map, or pick a plan and launch your license server.