{eac}SoftwareRegistry Distribution SDK is an extension plugin to {eac}SoftwareRegistry Software Registration Server . The Software Registry Distribution SDK is used to generate a custom PHP package that you can include in your software project to register your product with your registration server a
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 5.8 and PHP 8.1.
SourceWordPress plugins · Oct 20, 2026
01 / Source details
About this tool.
{eac}SoftwareRegistry Distribution SDK is an extension plugin to {eac}SoftwareRegistry Software Registration Server .
The Software Registry Distribution SDK is used to generate a custom PHP package that you can include in your software project to register your product with your registration server and manage that registration.
A custom version of this document is included in the generated SDK package.
The SDK provides most of the PHP code you will need to implement the Application Program Interface with your Software Registration Server.
Included with the Software Registration SDK package…
After extracting the (your_productid)_registration.zip file, move the (your_productid)_registration folder to your project.
In your project or class file, include (your_productid)_registration/(your_productid)_registration.includes.php to load the required interface and traits.
use \(your_namespace)\Traits\(your_productid)_registration_(wordpress_or_filebased)
Example:
include "(your_productid)_registration/(your_productid)_registration.includes.php"; class <your_classname> implements \(your_namespace)\Interfaces\(your_productid)_registration { use \(your_namespace)\Traits\(your_productid)_registration_(wordpress_or_filebased); ... }
(your_productid)_registration.interface.php will have your product and registration server API constants.
$apiParams = [ 'registry_key' => 'unique ID', // * registration key (assigned by registry server) 'registry_name' => 'Firstname Lastname', // registrant's full name 'registry_email' => 'email@domain.com', // * registrant's email address 'registry_company' => 'Comapny/Organization Name', // registrant's company name 'registry_address' => 'Street\n City St Zip', // registrant's full address (textarea) 'registry_phone' => 'nnnnnnnnnn', // registrant's phone 'registry_product' => 'productId', // * your product name/id ((your_productid)) 'registry_title' => 'Product Title', // your product title 'registry_description' => 'Product Description', // your product description 'registry_version' => 'M.m.p', // your product version 'registry_license' => 'Lx', // 'L1'(Lite), 'L2'(Basic), 'L3'(Standard), 'L4'(Professional), 'L5'(Enterprise), 'LD'(Developer), 'LU'(Unlimited) 'registry_count' => int, // Number of licenses (users/seats/devices) 'registry_variations' => array('name'=>'value',...), // array of name/value pairs 'registry_options' => array('value',...), // array of registry options 'registry_domains' => array('domain',...), // array of valid/registered domains 'registry_sites' => array('url',...), // array of valid/registered sites/uris 'registry_transid' => '', // external transaction id 'registry_timezone' => '', // standard timezone string (client timezone) 'registry_locale' => '', // standard locale/language code ];
* Required values (registry_key not required when creating a new registration).
If setting registry_transid, the recommended (not required) format is {id}|{source}|{suffix} where {id} is the transaction id, {source} indicates the source of the transaction, and {suffix} may be used as needed.
Any additional fields passed wil be saved as custom fields.
Although typically set by the Software Registry server, with the proper option setting, the API may override:
[ 'registry_status' => 'status', // 'pending', 'trial', 'active', 'inactive', 'expired', 'terminated' 'registry_effective' => 'DD-MMM-YYYY', // Effective date 'registry_expires' => 'DD-MMM-YYYY', // Expiration date or term ('30 days', '1 year',... added to effective date) ];
Payment information may be posted with:
[ 'registry_paydue' => float, // amount to be paid/billed, 'registry_payamount' => float, // amount paid, 'registry_paydate' => 'DD-MMM-YYYY', // date paid 'registry_payid' => 'payment id' // transaction id/check #, etc. 'registry_nextpay' => 'DD-MMM-YYYY', // next payment/renewal date ];
The API response is a standard object. status->code is an http status, 200 indicating success.
status -> ( code -> 200, // HTTP status code message -> '(action) ok' // (action) = 'create', 'activate', 'deactivate', 'verify', 'revise' ), registration -> ( registry_key -> string // UUID, registry_status -> string, // 'pending', 'trial', 'active', 'inactive', 'expired', 'terminated', 'invalid' registry_effective -> string, // DD-MMM-YYYY effective date registry_expires -> string, // DD-MMM-YYYY expiration date registry_name -> string, registry_email -> string, registry_company -> string, registry_address -> string, registry_phone -> string, registry_product -> string, registry_title -> string, registry_description -> string, registry_version -> string, registry_license -> string, registry_count -> int, registry_variations -> array, registry_options -> array, registry_domains -> array, registry_sites -> array, registry_transid -> string, registry_timezone -> string, registry_locale -> string, registry_valid -> bool, ), registrar -> ( contact -> object( name -> string // Registrar Name email -> string // Registrar Support Email phone -> string // Registrar Telephone web -> string // Registrar Web Address ), timezone -> string, // standard timezone string locale -> string, // WordPress locale cacheTime -> int, // in seconds, time to cache the registration response (Default Cache Time) refreshInterval -> int, // in seconds, time before refreshing the registration (Default Refresh Time) refreshSchedule -> string, // 'hourly', 'twicedaily', 'daily', 'twiceweekly', 'weekly', 'twicemonthly', 'monthly' - corresponding to refreshInterval options -> array( // from settings page, registrar_options (Allow API to...) 'allow_set_key', 'allow_set_status', 'allow_set_effective', 'allow_set_expiration', 'allow_activation_update' ), licenseCodes -> object( // may be changed by filter on registration server L1 -> 'Lite' L2 -> 'Basic' L3 -> 'Standard' L4 -> 'Professional' L5 -> 'Enterprise' LD -> 'Developer' LU -> 'Unlimited' ), notices -> object( info -> string, // information message text warning -> string, // warning message text error -> string, // error message text success -> string, // success message text ), message -> string, // html message ), registryHtml -> string, // html (table) of human-readable registration values supplemental -> mixed, // supplemental data/html assigned via filters (developer's discretion).
On a successful response (status->code = 200), the SDK will automatically cache the registration data and schedule the next refresh event (you do not have to do this).
notices may be set (according to severity) to indicate an expiration or pending expiration and should be displayed to the user. Typically, only one notice will be set but they can be set via the eacSoftwareRegistry_api_registration_notices filter.
message is set via the eacSoftwareRegistry_api_registration_message filter.
supplemental is set via the eacSoftwareRegistry_api_registration_supplemental filter.
On an error response, an additional element is included:
$this->isValidRegistration(); // Returns boolean if ( $this->isValidRegistration() ) {...} $this->getRegistrationKey(); // Returns the current registration key $registrationKey = $this->getRegistrationKey(); $this->getCurrentRegistration(); // Returns the current registration object (above response object) $currentRegistration = $this->getCurrentRegistration(); $this->isRegistryValue($keyName); // Returns the value of a specific registry key $regStatus = $this->isRegistryValue( 'status '); $this->isRegistryValue($keyName, $value, $test); // Returns boolean comparison of the value of a registry key ($test is '=|eq' (default), '<|lt', '>|gt', '<=|le', '>=|ge') if ( $this->isRegistryValue('license', 'L3', '>=') ) {...}
Several hooks are available to customize or react to registration events. In WordPresss, there are several actions and filters, for file based projects there are corresponding callback methods…
{eac}SoftwareRegistry DistributionUI Example 1 (Activate/Register):UI Example 2 (Refresh/Delete):
02 / Source details
Getting started.
{eac}SoftwareRegistry Distribution SDK is an extension plugin to and requires installation and registration of {eac}SoftwareRegistry .*
Automatic Plugin Installation
This plugin is available from the WordPress Plugin Repository and can be installed from the WordPress Dashboard » Plugins » Add New page. Search for ‘EarthAsylum’, click the plugin’s [Install] button and, once installed, click [Activate].
See Managing Plugins -> Automatic Plugin Installation
Upload via WordPress Dashboard
Installation of this plugin can be managed from the WordPress Dashboard » Plugins » Add New page. Click the [Upload Plugin] button, then select the eacsoftwareregistry-distribution-sdk.zip file from your computer.
See Managing Plugins -> Upload via WordPress Admin
Manual Plugin Installation
You can install the plugin manually by extracting the eacsoftwareregistry-distribution-sdk.zip file and uploading the ‘eacsoftwareregistry-distribution-sdk’ folder to the ‘wp-content/plugins’ folder on your WordPress server.
See Managing Plugins -> Manual Plugin Installation
Settings
Options for this extension will be added to the Software Registry » Settings » Distribution tab.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati