Software License Manager


Software license management solution for your web applications (WordPress plugins, Themes, PHP based membership script etc.)

This plugin is very useful for creating a license server and doing the following via API:

  • Create license keys in your system (license server)
  • Check the status of a license key from from your application (remotely)
  • Activate a license key from your application (remotely)
  • Deactivate a license key (remotely)
  • Check a license key (remotely)
  • Track where the license key is being used.

You can also create license keys manually from the admin dashboard of this plugin.

Please note that this plugin is ONLY for developers

Check license manager documentation to learn more.

Integration with WP eStore plugin

Check WP eStore integration documentation

Github repository

If you need some extra action hooks or filters for this plugin then let us know.

Arbitrary section

See the following sample/example for multi-site environment/setup:


  1. Go to the Add New plugins screen in your WordPress admin area
  2. Click the upload tab
  3. Browse for the plugin file (
  4. Click Install Now and then activate the plugin




June 5, 2020
Thank you so much for providing this product, It has saved a lot of time in terms of License management.
May 24, 2020
This has been my go-to for WordPress software licensing for years. Highly recommended if you don't want to pay a 3rd party service to handle software licencing.
April 23, 2020
Support stopped responding to my emails. He gave me attitude in an email as well. Unprofessional.
May 10, 2019
Great plugin that does what it promises. Thank you so much for having such a great product.
December 9, 2018
Don't let the negative reviews stop you from trying this plugin. Has features that you can tweak which other plugins charge you for. Light weight and built by trusted developer. Only thing missing is built-in integration with WooCommerce but looks like little extra work on dev side and will work. Thank you for sharing with the WP community.
Read all 25 reviews

Contributors & Developers

“Software License Manager” is open source software. The following people have contributed to this plugin.


“Software License Manager” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “Software License Manager” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • The IP address is logged in the debug log file for an API request (if debug option is enabled in settings).


  • Added “Add New License” button in the Manage licenses menu.
  • PHP Notice in the manage licenses menu fixed.


  • Fixed an issue with the sorting option in the Manage Licenses interface.


  • Added a new filter for the Management Permission constant (so it can be customized by an addon).
  • Fixed a wpdb::prepare query with the search feature. Thanks to @Nauriskolats for pointing it out.


  • Fixed a product editing glitch with the WP eStore plugin integration.


  • The following UI improvements were submitted by Brian DiChiara. A big Thank You to @solepixel
  • Adds domain to license search.
  • Retain search term value in search field.
  • Better UI for deleting domains:
    Wider domain table.
    Allow for more domains visible in table.
    Easier to click “delete” button.
    Prompt before deleting asking “Are you sure you want to remove this domain?”.
    Intuitive post-delete to remove section if no more domains are active.
  • Displays total activated domains in Manage Licenses table.


  • The product quantity of WP eStore product is taken into account when creating a new license key.
  • Added a new action hook in the listener API (can be used to override the API query).


  • Added a new optional column “subscr_id” to the license keys table. This can be used to store the subsriber ID value (if any) for recurring payment plans.
  • The “subscr_id” will also be present in the license query API output.


  • Added a new action hook for estore recurring payments.


  • Fixed a typo with the slm_api_response_args filter
  • The license key is also included in the license check API query’s JSON output.


  • The license status parameter can now be passed when executing the license create API query.


  • The manage licenses admin interface improvements for mobile devices.
  • The product reference (if any) is shown in the manage licenses interface also.


  • Added couple of filters to the API response args.


  • The check license query now outputs all the db column values.
  • It now captures the WP eStore product ID in the “Product Reference” column of the license manager (if the license is created by eStore).


  • Updated slm-api-utility.php to add Content-Type header to the API response.


  • The slm_create_new api call will no longer show an error code incorrectly.


  • Check for existence of company_name query value before using to fix undefined index error when it doesn’t exist.
  • Add ability to specify product_ref when creating license via API. Thanks to @maddisondesigns for the update.


  • Fixed undefined index warning “enable_auto_key_expiry”
  • The product_ref field is now available in the add/edit license menu. Also, this value is output with the “slm_check” API call. Thanks to Tobias Hildebrandt for implementing this.


  • Added a new error code for the following condition:
    If maximum activation has reached and the license key is used on the domain (where the request came from) then it will return a new error: LICENSE_IN_USE_ON_DOMAIN_AND_MAX_REACHED


  • The integration with WP eStore cart will create multiple licenses when a customer purchases more than 1 quantity of a product.


  • The API response will now include a numeric error code (in the event of an error). Thanks to Steve Gehrman.


  • The registered domains (if any) of a license key will get deleted when that key is deleted from the manage licenses menu.
  • Added wp_unslash() for firstname, lastname, registered domain and company name. Thanks to @sgehrman.
  • Added a new action hook (slm_license_key_expired) that gets triggered when a license key expires.


  • eStore integration update: changed expiry date field to accept number of days so the plugin can dynamically calculate the expiry date for the key.


  • Updated the eStore integration so a custom “Expiry Date” value can be set in the product configuration.


  • Updated the eStore plugin integration so a custom “Maximum Allowed Domains” value can be specified in the eStore product configuration.


  • Added new action and filter hooks in the add/edit interface so an addon can extend the functionality of that interface.
  • Added nonce check in the add/edit license interface.


  • Added a new feature to enable auto expiry of the license keys. You can enable this option from the settings.
  • If you don’t specify a expiry date, when adding a manual license key, it will use the current date plus 1 year as the expiry date.
  • Increased the width and height of the “Registered Domains” box in the edit license interface.
  • Added a new table column product_ref in the license keys table.
  • Added couple of new hooks in the plugin.


  • Added integration with the squeeze form submission of eStore plugin.


  • The license check query now outputs the date values also.
  • Improvement for the WP eStore integration.


  • Added a filter to remove any null values from the DB insert query parameter of the API Utility class.


  • Replaced “esc_url()” with “esc_url_raw()” in the sample plugin.
  • Updated some CSS in the admin interface for WordPress 4.4


  • Added new hooks before the API query is executed. This allows a developer to override the API query and do custom stuff.
  • Added a new API to check the details of an existing license key.


  • The license key is also included with the response sent to the new license creation request. Below is an example response:
    {“result”:”success”,”message”:”License successfully created”,”key”:”5580effe188d3″}

  • You can now pass a pre-generated license key to the license creation API using the “license_key” parameter in the request.


  • Updated the sample plugin code so the query works better.
  • Added the ability to reset the debug log file from the plugin settings interface.
  • The item_reference value will be stored in the database (if sent via the activation API query).


  • Added the option to search a license key from the manage licenses interface.


  • Updated the license key creation API check to use the value from “Secret Key for License Creation” field.


  • Added more sanitization.


  • Fixed a bug with the bulk delete license operation.


  • First commit to wordpress repository.