[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fPK59FYH6XXtz1RCWV-aRLHjh5ldWORpE_nts4RIJWyo":3,"$fi0UjvMm6_nk141gTHZPft1gMpuiBdeXa6Pa6-8923vg":191,"$fpt4cWK1Yhqr_Y3YO_C-Qh_qGwl7KKOTJSqPkyUvU5GU":196},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":37,"analysis":123,"fingerprints":173},"eacsoftwareregistry-webhook-endpoints","{eac}SoftwareRegistry WooCommerce Webhook Endpoints","1.1.5","Kevin Burkholder","https:\u002F\u002Fprofiles.wordpress.org\u002Fkevinburkholder\u002F","\u003Cp>\u003Cstrong>{eac}SoftwareRegistry Webhook Endpoints\u003C\u002Fstrong> is an extension plugin to \u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registration-server\u002F\" rel=\"nofollow ugc\">{eac}SoftwareRegistry Software Registration Server\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>WooCommerce Webhooks are used to create or update a software registration in {eac}SoftwareRegistry when a WooCommerce order is created or updated.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>A Webhook is an event notification sent to a URL of your choice. Users can configure them to trigger events on one site to invoke behavior on another.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>The Software Registration Webhooks use the same internal methods as the Software Registry API (see \u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registry-sdk\u002F\" rel=\"nofollow ugc\">Implementing the Software Registry SDK\u003C\u002Fa>).\u003C\u002Fp>\n\u003Cp>We use webhooks so that you may sell your software on a different site then where you register your software. When an order is created or updated on your WooCommerce site, that order information is sent to your registration server via a webhook so that the registration server may create or update the registration.\u003C\u002Fp>\n\u003Cp>WooCommerce Webhooks are created by going to: \u003Cstrong>WooCommerce \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Advanced \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Webhooks\u003C\u002Fstrong> from the dashboard of your WooCommerce shop site.\u003C\u002Fp>\n\u003Cp>To get to the settings for this extension, go to \u003Cstrong>Software Registry \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Woocommerce\u003C\u002Fstrong> from the dashboard of your software registration server.\u003C\u002Fp>\n\u003Cp>On your WooCommerce site, use the \u003Cstrong>Webhook Secret\u003C\u002Fstrong> and \u003Cstrong>Order Delivery URL\u003C\u002Fstrong> defined by this extension when creating your webhooks. The \u003Cstrong>Webhook Secret\u003C\u002Fstrong> is used to authenticate the webhook and the \u003Cstrong>Delivery URL\u003C\u002Fstrong> is the webhook end-point (your registration server).\u003C\u002Fp>\n\u003Cp>You should create a WooCommerce Webhook for \u003Cstrong>Order created\u003C\u002Fstrong> and \u003Cstrong>Order updated\u003C\u002Fstrong>, and you may optionally create webhooks for \u003Cstrong>Order deleted\u003C\u002Fstrong> and \u003Cstrong>Order restored\u003C\u002Fstrong> if your want registrations to be terminated or reactivated when an order is moved to the trash or restored.\u003C\u002Fp>\n\u003Cp>* See \u003Ca href=\"#subscriptions\" rel=\"nofollow ugc\">Subscriptions\u003C\u002Fa> below.\u003C\u002Fp>\n\u003Cp>On your registration server, select the appropriate \u003Cstrong>Webhook Endpoints\u003C\u002Fstrong> in this extension based on the WooCommerce webhooks created.\u003C\u002Fp>\n\u003Ch4>Product Variations and Registry Values\u003C\u002Fh4>\n\u003Cp>On your shop site, you may create a variable product with a product attribute (‘Used for variations’ checked), like:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>registry_license    ->  'Lite' | 'Basic' | 'Standard' | 'Professional' | 'Enterprise' | 'Developer'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>— and\u002For —\u003C\u002Fp>\n\u003Cpre>\u003Ccode>registry_count      ->  '1-User' | '10-Users' | '50-Users' | '100-Users' | 'Unlimited Users'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Then configure (or remove) each of the variations accordingly.\u003Cbr \u002F>\nThis produces a product variation for each license level (or user count) and passes \u003Ccode>registry_license\u003C\u002Fcode> (or \u003Ccode>registry_count\u003C\u002Fcode>) through the webhook overriding the default registration server settings.\u003C\u002Fp>\n\u003Cp>As well, you may create an attribute and variation like:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>registry_expires    ->  '14 Days' | '30 Days' | '6 Months' | '1 Year'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>To override the default registration term.\u003C\u002Fp>\n\u003Cp>These variations may be combined to create a large number of variable products, each passing the given registry values through the webhooks. For example, one variable product may have a variation combination of \u003Ccode>'Basic', '10-users', '6 Months'\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch4>Item Mapping\u003C\u002Fh4>\n\u003Cp>On your registration server, you may specify the items (SKUs) that are to be registered in the \u003Cstrong>Registration Item Mapping\u003C\u002Fstrong> as:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>item_sku=package_name or `item_sku=package_name1,package_name2` (to create a bundle).\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Even if the item sku is the product to be registered, enter \u003Ccode>item_sku=item_sku\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Items that don’t match these SKU(s) will be ignored.\u003C\u002Fp>\n\u003Cp>Since WooCommerce won’t allow duplicate SKUs, regular expressions may be used for “item_sku” matching. For example: \u003Ccode>MyItemSku*=MyPackage\u003C\u002Fcode> Will match any SKU in the order beginning with “MyItemSku” (e.g. “MyItemSku_1”, “MyItemSku_2”) and map (register) it as “MyPackage”.\u003C\u002Fp>\n\u003Ch4>Subscriptions\u003C\u002Fh4>\n\u003Cp>By adding \u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsubscriptions-for-woocommerce\u002F\" rel=\"nofollow ugc\">{eac}SoftwareRegistry Subscriptions for WooCommerce\u003C\u002Fa> to your WooCommerce store site, subscription orders and updates (when using \u003Ca href=\"https:\u002F\u002Fwoocommerce.com\u002Fdocument\u002Fsubscriptions\u002F\" rel=\"nofollow ugc\">Woo Subscriptions\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fcodecanyon.net\u002Fitem\u002Fsumo-subscriptions-woocommerce-subscription-system\u002F16486054\" rel=\"nofollow ugc\">SUMO Subscription\u003C\u002Fa>), as well as product meta data, may also be passed to your registration server.\u003C\u002Fp>\n\u003Cp>\u003Cem>{eac}SoftwareRegistry Subscriptions for WooCommerce\u003C\u002Fem> is a plugin, installed on your WooCommerce site, that adds a custom Webhook topic for subscription updates to the WooCommerrce webhooks, and adds subscription and product data to WooCommerce order webhooks.\u003C\u002Fp>\n\u003Cp>On your WooCommerce site, add a new Webhook using \u003Cstrong>{eac}SoftwareRegistry WC Subscription\u003C\u002Fstrong> or \u003Cstrong>{eac}SoftwareRegistry Sumo Subscription\u003C\u002Fstrong> for the topic; the same \u003Cstrong>Webhook Secret\u003C\u002Fstrong> used for the order webhooks; and the \u003Cstrong>Subscription Delivery URL\u003C\u002Fstrong> rather than the \u003Cstrong>Order Delivery URL\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>With this plugin enabled, not only can you update registrations by order updates, but also by subscription updates, including renewals, expirations, and cancelations, making it easy to keep your registrations in sync with your subscriptions.\u003C\u002Fp>\n\u003Cp>In addition, this plugin will add product meta data to the orders and subscriptions passed through the webhooks so that you may define registry values as custom fields at the product level.\u003C\u002Fp>\n\u003Cp>For example, rather than needing to create variable products, you can simply add custom fields:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>registry_license    ->  'Basic'\nregistry_count      ->  '10-Users'\nregistry_expires    ->  '6 Months'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>And, rather than relying on the \u003Ccode>item_sku\u003C\u002Fcode> list in the \u003Cem>Registration Item Mapping\u003C\u002Fem>, you can add a custom field…\u003C\u002Fp>\n\u003Cpre>\u003Ccode>registry_product    ->  'package_name'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>…that will register or update any subscription for the given item as \u003Ccode>package_name\u003C\u002Fcode> regardless of the item’s SKU or the \u003Cem>Registration Item Mapping\u003C\u002Fem> list.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>If all of your orders are subscriptions…\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>With this plugin enabled on your shop site, there’s a high probability you don’t need to use the “order” webhooks. Your subscriptions will be updated more efficiently from the shop subscription records.\u003C\u002Fp>\n\u003Cp>When a new (or renewal) subscription order is created, it will trigger the “Order created”, “Order updated” (payment processed) and the “Subscription updated” webhooks when all you need is the subscription to create or update the registration.\u003C\u002Fp>\n\u003Cp>On the other hand, since this plugin adds an array of subscription records to the orders passed through the webhooks, you may prefer to use only the order webhooks and not the subscription webhook.\u003C\u002Fp>\n\u003Ch4>Return Value\u003C\u002Fh4>\n\u003Cp>As of version 1.1, this plugin now returns a result array which can be retrieved via the \u003Ccode>woocommerce_webhook_delivery\u003C\u002Fcode> action:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>array(\n    'action'    => string       \u002F\u002F the webhook action,\n    'resource'  => int          \u002F\u002F the webhook resource id (order\u002Fsubscription id),\n    'status'    => string       \u002F\u002F 'success' | 'ignored' | 'error',\n    'result'    => array|string \u002F\u002F success: array of [ sku => [status => registry_key | error_message] ]\n                                \u002F\u002F ignored|error: string error_message\n)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cem>Note that ‘success’ means the webhook was succesfull, ‘result’ could contain an error status\u002Fmessage from {eac}SoftwareRegistry.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>Examples:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>array(\n     'action' => 'order.created',\n     'resource' => 2715,\n     'status' => 'ignored',\n     'result' => 'order with subscription',\n),\n\narray(\n    'action' => 'action.wc_eacswregistry_sumosub',\n    'resource' => 2715,\n    'status' => 'success',\n    'result' => array (\n        0 => array(\n            'eacDoojigger' =>  array(\n                '200' => 'bad53cd3-f397-4f47-9d28-xxxxxxxxxxxx',\n            ),\n        ),\n        1 => array(\n            'eacSoftwareRegistry' => array(\n                '406' => 'registration with this email and product already exists',\n            ),\n        ),\n    ),\n),\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>See Also\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registration-server\u002F\" rel=\"nofollow ugc\">{eac}SoftwareRegistry – Software Registration Server\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsubscriptions-for-woocommerce\u002F\" rel=\"nofollow ugc\">{eac}SoftwareRegistry Subscriptions for WooCommerce\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registry-sdk\u002F\" rel=\"nofollow ugc\">Implementing the Software Registry SDK\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Copyright\u003C\u002Fh3>\n\u003Ch4>Copyright © 2019-2025, EarthAsylum Consulting, distributed under the terms of the GNU GPL.\u003C\u002Fh4>\n\u003Cp>This program is free software: you can redistribute it and\u002For modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\u003C\u002Fp>\n\u003Cp>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\u003C\u002Fp>\n\u003Cp>You should receive a copy of the GNU General Public License along with this program. If not, see \u003Ca href=\"https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002F\u003C\u002Fa>.\u003C\u002Fp>\n","Enables the use of WooCommerce Webhooks to create or update a software registration in {eac}SoftwareRegistry when an order or subscription is created  &hellip;",0,1677,"2025-09-04T14:29:00.000Z","6.8.5","5.8","7.4",[18,19,20,21,22],"software-license","software-registration","software-registry","webhooks","woocommerce","https:\u002F\u002Fswregistry.earthasylum.com\u002Fwebhooks-for-woocommerce\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.1.5.zip",100,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":25,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"kevinburkholder",11,60,30,94,"2026-05-20T01:12:18.941Z",[38,52,65,89,106],{"slug":39,"name":40,"version":41,"author":7,"author_profile":8,"description":42,"short_description":43,"active_installs":11,"downloaded":44,"rating":11,"num_ratings":11,"last_updated":45,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":46,"homepage":49,"download_link":50,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":51},"eacsoftwareregistry-distribution-sdk","{eac}SoftwareRegistry Distribution SDK","1.1.3","\u003Cp>\u003Cstrong>{eac}SoftwareRegistry Distribution SDK\u003C\u002Fstrong> is an extension plugin to \u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registration-server\u002F\" rel=\"nofollow ugc\">{eac}SoftwareRegistry Software Registration Server\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cp>\u003Cem>A custom version of this document is included in the generated SDK package.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>The SDK provides most of the PHP code you will need to implement the Application Program Interface with your Software Registration Server.\u003C\u002Fp>\n\u003Cp>Included with the Software Registration SDK package…\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>(your_productid)_registration.(wordpress_or_filebased).trait.php\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>(your_productid)_registration.includes.php\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>(your_productid)_registration.interface.php\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>(your_productid)_registration.interface.trait.php\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>(your_productid)_registration.refresh.php\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>(your_productid)_registration.readme.md\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Software Registry Implementation\u003C\u002Fh4>\n\u003Cp>After extracting the \u003Ccode>(your_productid)_registration.zip\u003C\u002Fcode> file, move the \u003Ccode>(your_productid)_registration\u003C\u002Fcode> folder to your project.\u003C\u002Fp>\n\u003Cp>In your project or class file, include \u003Ccode>(your_productid)_registration\u002F(your_productid)_registration.includes.php\u003C\u002Fcode> to load the required interface and traits.\u003C\u002Fp>\n\u003Cp>Your class file must then:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>implement \u003Ccode>\\(your_namespace)\\Interfaces\\(your_productid)_registration\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>use \u003Ccode>\\(your_namespace)\\Traits\\(your_productid)_registration_(wordpress_or_filebased)\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>include \"(your_productid)_registration\u002F(your_productid)_registration.includes.php\";\n\nclass \u003Cyour_classname> implements \\(your_namespace)\\Interfaces\\(your_productid)_registration\n{\n    use \\(your_namespace)\\Traits\\(your_productid)_registration_(wordpress_or_filebased);\n        ...\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>(your_productid)_registration.interface.php will have your product and registration server API constants.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>const SOFTWARE_REGISTRY_PRODUCTID   = '{your_software_registry_productid}';\nconst SOFTWARE_REGISTRY_HOST_URL    = '{your_software_registry_host_url}';\nconst SOFTWARE_REGISTRY_CREATE_KEY  = '{your_software_registry_create_key}';\nconst SOFTWARE_REGISTRY_UPDATE_KEY  = '{your_software_registry_update_key}';\nconst SOFTWARE_REGISTRY_READ_KEY    = '{your_software_registry_read_key}';\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Using The API\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>API Parameters\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>API parameters are passed as an array:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$apiParams =\n[\n    'registry_key'          => 'unique ID',                     \u002F\u002F * registration key (assigned by registry server)\n    'registry_name'         => 'Firstname Lastname',            \u002F\u002F   registrant's full name\n    'registry_email'        => 'email@domain.com',              \u002F\u002F * registrant's email address\n    'registry_company'      => 'Comapny\u002FOrganization Name',     \u002F\u002F   registrant's company name\n    'registry_address'      => 'Street\\n City St Zip',          \u002F\u002F   registrant's full address (textarea)\n    'registry_phone'        => 'nnnnnnnnnn',                    \u002F\u002F   registrant's phone\n    'registry_product'      => 'productId',                     \u002F\u002F * your product name\u002Fid ((your_productid))\n    'registry_title'        => 'Product Title',                 \u002F\u002F   your product title\n    'registry_description'  => 'Product Description',           \u002F\u002F   your product description\n    'registry_version'      => 'M.m.p',                         \u002F\u002F   your product version\n    'registry_license'      => 'Lx',                            \u002F\u002F   'L1'(Lite), 'L2'(Basic), 'L3'(Standard), 'L4'(Professional), 'L5'(Enterprise), 'LD'(Developer), 'LU'(Unlimited)\n    'registry_count'        => int,                             \u002F\u002F   Number of licenses (users\u002Fseats\u002Fdevices)\n    'registry_variations'   => array('name'=>'value',...),      \u002F\u002F   array of name\u002Fvalue pairs\n    'registry_options'      => array('value',...),              \u002F\u002F   array of registry options\n    'registry_domains'      => array('domain',...),             \u002F\u002F   array of valid\u002Fregistered domains\n    'registry_sites'        => array('url',...),                \u002F\u002F   array of valid\u002Fregistered sites\u002Furis\n    'registry_transid'      => '',                              \u002F\u002F   external transaction id\n    'registry_timezone'     => '',                              \u002F\u002F   standard timezone string (client timezone)\n    'registry_locale'       => '',                              \u002F\u002F   standard locale\u002Flanguage code\n];\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>* \u003Cem>Required values (registry_key not required when creating a new registration).\u003C\u002Fem>\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>If setting registry_transid, the recommended (not required) format is \u003Ccode>{id}|{source}|{suffix}\u003C\u002Fcode> where {id} is the transaction id, {source} indicates the source of the transaction, and {suffix} may be used as needed.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Any additional fields passed wil be saved as custom fields.\u003C\u002Fp>\n\u003Cp>Although typically set by the Software Registry server, with the proper option setting, the API \u003Cem>may\u003C\u002Fem> override:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[\n    'registry_status'       => 'status',                        \u002F\u002F 'pending', 'trial', 'active', 'inactive', 'expired', 'terminated'\n    'registry_effective'    => 'DD-MMM-YYYY',                   \u002F\u002F Effective date\n    'registry_expires'      => 'DD-MMM-YYYY',                   \u002F\u002F Expiration date or term ('30 days', '1 year',... added to effective date)\n];\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Payment information may be posted with:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[\n    'registry_paydue'       => float,                           \u002F\u002F amount to be paid\u002Fbilled,\n    'registry_payamount'    => float,                           \u002F\u002F amount paid,\n    'registry_paydate'      => 'DD-MMM-YYYY',                   \u002F\u002F date paid\n    'registry_payid'        => 'payment id'                     \u002F\u002F transaction id\u002Fcheck #, etc.\n    'registry_nextpay'      => 'DD-MMM-YYYY',                   \u002F\u002F next payment\u002Frenewal date\n];\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>API Requests\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Create\u002Frequest a new registration…\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$response = $this->registryApiRequest('create',$apiParams);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Activate an existing registration…\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$response = $this->registryApiRequest('activate',['registry_key' => '\u003CregistrationKeyValue>']);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Activate and Update an existing registration…\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$response = $this->registryApiRequest('activate',$apiParams);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Deactivate an existing registration…\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$response = $this->registryApiRequest('deactivate',['registry_key' => '\u003CregistrationKeyValue>']);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Verify or Refresh an existing registration…\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$response = $this->registryApiRequest('verify',['registry_key' => '\u003CregistrationKeyValue>']);\n$response = $this->registryApiRequest('refresh',$apiParams);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Revise an existing registration…\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$response = $this->registryApiRequest('revise',$apiParams);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>API Response\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The API response is a standard object. status->code is an http status, 200 indicating success.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>status      ->\n(\n    code                  -> 200,             \u002F\u002F HTTP status code\n    message               -> '(action) ok'    \u002F\u002F (action) = 'create', 'activate', 'deactivate', 'verify', 'revise'\n),\nregistration ->\n(\n    registry_key          -> string           \u002F\u002F UUID,\n    registry_status       -> string,          \u002F\u002F 'pending', 'trial', 'active', 'inactive', 'expired', 'terminated', 'invalid'\n    registry_effective    -> string,          \u002F\u002F DD-MMM-YYYY effective date\n    registry_expires      -> string,          \u002F\u002F DD-MMM-YYYY expiration date\n    registry_name         -> string,\n    registry_email        -> string,\n    registry_company      -> string,\n    registry_address      -> string,\n    registry_phone        -> string,\n    registry_product      -> string,\n    registry_title        -> string,\n    registry_description  -> string,\n    registry_version      -> string,\n    registry_license      -> string,\n    registry_count        -> int,\n    registry_variations   -> array,\n    registry_options      -> array,\n    registry_domains      -> array,\n    registry_sites        -> array,\n    registry_transid      -> string,\n    registry_timezone     -> string,\n    registry_locale       -> string,\n    registry_valid        -> bool,\n),\nregistrar ->\n(\n    contact               -> object(\n        name              -> string           \u002F\u002F Registrar Name\n        email             -> string           \u002F\u002F Registrar Support Email\n        phone             -> string           \u002F\u002F Registrar Telephone\n        web               -> string           \u002F\u002F Registrar Web Address\n    ),\n    timezone              -> string,          \u002F\u002F standard timezone string\n    locale                -> string,          \u002F\u002F WordPress locale\n    cacheTime             -> int,             \u002F\u002F in seconds, time to cache the registration response (Default Cache Time)\n    refreshInterval       -> int,             \u002F\u002F in seconds, time before refreshing the registration (Default Refresh Time)\n    refreshSchedule       -> string,          \u002F\u002F 'hourly', 'twicedaily', 'daily', 'twiceweekly', 'weekly',  'twicemonthly', 'monthly' - corresponding to refreshInterval\n    options               -> array(           \u002F\u002F from settings page, registrar_options (Allow API to...)\n        'allow_set_key',\n        'allow_set_status',\n        'allow_set_effective',\n        'allow_set_expiration',\n        'allow_activation_update'\n    ),\n    licenseCodes          -> object(          \u002F\u002F may be changed by filter on registration server\n        L1                -> 'Lite'\n        L2                -> 'Basic'\n        L3                -> 'Standard'\n        L4                -> 'Professional'\n        L5                -> 'Enterprise'\n        LD                -> 'Developer'\n        LU                -> 'Unlimited'\n    ),\n    notices               -> object(\n        info              -> string,          \u002F\u002F information message text\n        warning           -> string,          \u002F\u002F warning message text\n        error             -> string,          \u002F\u002F error message text\n        success           -> string,          \u002F\u002F success message text\n    ),\n    message               -> string,          \u002F\u002F html message\n),\nregistryHtml              -> string,          \u002F\u002F html (table) of human-readable registration values\nsupplemental              -> mixed,           \u002F\u002F supplemental data\u002Fhtml assigned via filters (developer's discretion).\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>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).\u003C\u002Fp>\n\u003Cp>\u003Cem>notices\u003C\u002Fem> 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 \u003Ccode>eacSoftwareRegistry_api_registration_notices\u003C\u002Fcode> filter.\u003C\u002Fp>\n\u003Cp>\u003Cem>message\u003C\u002Fem> is set via the \u003Ccode>eacSoftwareRegistry_api_registration_message\u003C\u002Fcode> filter.\u003C\u002Fp>\n\u003Cp>\u003Cem>supplemental\u003C\u002Fem> is set via the \u003Ccode>eacSoftwareRegistry_api_registration_supplemental\u003C\u002Fcode> filter.\u003C\u002Fp>\n\u003Cp>On an error response, an additional element is included:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>error      ->\n(\n    code                  -> 'error_code',\n    message               -> 'error message'\n),\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>error->message may be more informative than status->message.\u003Cbr \u002F>\nErrors may be handled with something like:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>if ($this->is_api_error($response))\n{\n    echo \"\u003Cdiv class='notice notice-error'>\u003Ch4>Error \".$response->error->code.\" : \".$response->error->message.\"\u003C\u002Fh4>\u003C\u002Fdiv>\";\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Methods, Hooks, and Callbacks\u003C\u002Fh4>\n\u003Cp>Useful methods built into the SDK…\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$this->isValidRegistration();\n    \u002F\u002F Returns boolean\n    if ( $this->isValidRegistration() ) {...}\n\n$this->getRegistrationKey();\n    \u002F\u002F Returns the current registration key\n    $registrationKey = $this->getRegistrationKey();\n\n$this->getCurrentRegistration();\n    \u002F\u002F Returns the current registration object (above response object)\n    $currentRegistration = $this->getCurrentRegistration();\n\n$this->isRegistryValue($keyName);\n    \u002F\u002F Returns the value of a specific registry key\n    $regStatus = $this->isRegistryValue( 'status ');\n\n$this->isRegistryValue($keyName, $value, $test);\n    \u002F\u002F Returns boolean comparison of the value of a registry key ($test is '=|eq' (default), '\u003C|lt', '>|gt', '\u003C=|le', '>=|ge')\n    if ( $this->isRegistryValue('license', 'L3', '>=') ) {...}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Several hooks are available to customize or react to registration events.\u003Cbr \u002F>\nIn WordPresss, there are several actions and filters, for file based projects there are corresponding callback methods…\u003C\u002Fp>\n\u003Cpre>\u003Ccode> filter\u002Fcallback: (your_productid)_api_remote_request( $request, $endpoint )\n    @param  array $request ['method'=>, 'timeout'=>, 'redirection'=>, 'sslverify'=>, 'headers'=>, 'body'=>]\n    @param  string $endpoint create, activate, deactivate, verify, refresh, revise\n    @return array request body\n\n action\u002Fcallback: (your_productid)_api_remote_response( $body, $request, $endpoint )\n    @param  array $body response body\n    @param  array $request ['method'=>, 'timeout'=>, 'redirection'=>, 'sslverify'=>, 'headers'=>, 'body'=>]\n    @param  string $endpoint create, activate, deactivate, verify, refresh, revise\n\n action\u002Fcallback: (your_productid)_api_remote_$endpoint( $body, $request, $endpoint )\n    @param  array $body response body\n    @param  array $request ['method'=>, 'timeout'=>, 'redirection'=>, 'sslverify'=>, 'headers'=>, 'body'=>]\n    @param  string $endpoint create, activate, deactivate, verify, refresh, revise\n\n action\u002Fcallback: (your_productid)_api_remote_error( $error, $request, $endpoint )\n    @param  object $error {status:{}, error: {}}\n    @param  array $request ['method'=>, 'timeout'=>, 'redirection'=>, 'sslverify'=>, 'headers'=>, 'body'=>]\n    @param  string $endpoint create, activate, deactivate, verify, refresh, revise\n\n action\u002Fcallback: (your_productid)_update_registration($registration)\n    @param  array $registration registration object\n\n action\u002Fcallback: (your_productid)_purge_registration()\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>What You Need To Do\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>For WordPress Projects\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>In your class constructor\u002Finitialization, add an action to fulfill the registration refresh scheduled by the \u003Ccode>scheduleRegistryRefresh()\u003C\u002Fcode> method in \u003Ccode>(your_productid).wordpress.trait.php\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\\add_action( '(your_productid)_registry_refresh', array($this, 'refreshRegistration') );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can add this and other hooks with:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$this->addSoftwareRegistryHooks();\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The \u003Ccode>addSoftwareRegistryHooks()\u003C\u002Fcode> method adds:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\\add_action( '(your_productid)_registry_refresh',     array($this, 'refreshRegistration') );\n\\add_filter( '(your_productid)_is_registered',        array($this, 'isValidRegistration') );\n\\add_filter( '(your_productid)_registration_key',     array($this, 'getRegistrationKey') );\n\\add_filter( '(your_productid)_registration',         array($this, 'getCurrentRegistration') );\n\\add_filter( '(your_productid)_registry_value',       array($this, 'isRegistryValue'), 10, 4 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>include \"(your_productid)_registration\u002F(your_productid)_registration.includes.php\";\n\nclass \u003Cyour_classname> implements \\(your_namespace)\\Interfaces\\(your_productid)_registration\n{\n    use \\(your_namespace)\\Traits\\(your_productid)_registration_wordpress;\n        ...\n    public function __construct()\n    {\n        $this->addSoftwareRegistryHooks();\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Note:\u003C\u002Fp>\n\u003Cp>If your primary plugin file name is not the same as the product id, edit your \u003Ccode>(your_productid).interface.tpl\u003C\u002Fcode> file and change the \u003Ccode>SOFTWARE_REGISTRY_FILENAME\u003C\u002Fcode> constant.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    const SOFTWARE_REGISTRY_FILENAME    = 'myPluginName';\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>For Other File Based Projects\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The \u003Ccode>scheduleRegistryRefresh()\u003C\u002Fcode> method in \u003Ccode>(your_productid)_registration.filebased.trait.php\u003C\u002Fcode> is called to schedule the next registration refresh. This method can be modified to schedule a cron event to execute the refresh at a future time. The scheduled event may run \u003Ccode>(your_productid)_registration.refresh.php \u003CregistrationKeyValue>\u003C\u002Fcode> from the command line to refresh the registration.\u003C\u002Fp>\n\u003Cp>When left as is, the \u003Ccode>checkRegistryRefreshEvent()\u003C\u002Fcode> method uses the key file to check for a needed registration refresh.\u003C\u002Fp>\n\u003Cp>In your class constructor or destructor add:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$this->checkRegistryRefreshEvent();\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>to trigger the refresh check.\u003C\u002Fp>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>include \"(your_productid)_registration\u002F(your_productid)_registration.includes.php\";\n\nclass \u003Cyour_classname> implements \\(your_namespace)\\Interfaces\\(your_productid)_registration\n{\n    use \\(your_namespace)\\Traits\\(your_productid)_registration_filebased;\n        ...\n    public function __destruct()\n    {\n        \u002F* if necessary, set HOME\u002FUSERPROFILE and\u002For TMP\u002FTMPDIR\u002FTEMP directories *\u002F\n        \u002F\u002F putenv('HOME={your home directory}');   \u002F\u002F where the registration key is stored, otherwise use $_SERVER['DOCUMENT_ROOT']\n        \u002F\u002F putenv('TMP={your temp directory}');    \u002F\u002F where the registration data is stored, otherwise use sys_get_temp_dir()\n        $this->checkRegistryRefreshEvent();\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>User Interface\u003C\u002Fh4>\n\u003Cp>Of course, the user interface is up to you, the developer, but you may look at (and maybe use) the registration UI trait included  with \u003Cem>{eac}Doojigger\u003C\u002Fem> and used by \u003Cem>{eac}SoftwareRegistry\u003C\u002Fem> as an example.\u003C\u002Fp>\n\u003Cp>see:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>…\u002FTraits\u002FswRegistrationUI.trait.php in the eacDoojigger folder.\u003C\u002Fli>\n\u003Cli>…\u002FExtensions\u002Fclass.eacSoftwareRegistry_registration.extension.php in the eacSoftwareRegistry folder.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>See Also\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registration-server\u002F\" rel=\"nofollow ugc\">{eac}SoftwareRegistry – Software Registration Server\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registry-hooks\u002F\" rel=\"nofollow ugc\">{eac}SoftwareRegistry Custom Hooks\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Copyright\u003C\u002Fh3>\n\u003Ch4>Copyright © 2019-2025, EarthAsylum Consulting, distributed under the terms of the GNU GPL.\u003C\u002Fh4>\n\u003Cp>This program is free software: you can redistribute it and\u002For modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\u003C\u002Fp>\n\u003Cp>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\u003C\u002Fp>\n\u003Cp>You should receive a copy of the GNU General Public License along with this program. If not, see \u003Ca href=\"https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002F\u003C\u002Fa>.\u003C\u002Fp>\n","{eac}SoftwareRegistry Distribution SDK for the Software Registration Server - Implementing the Software Registry SDK Package.",2421,"2025-07-25T15:37:00.000Z",[47,48,18,19,20],"license-manager","registration-api","https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registry-sdk\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-distribution-sdk.1.1.3.zip","2026-04-06T09:54:40.288Z",{"slug":53,"name":54,"version":55,"author":7,"author_profile":8,"description":56,"short_description":57,"active_installs":11,"downloaded":58,"rating":11,"num_ratings":11,"last_updated":59,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":60,"homepage":63,"download_link":64,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"eacsoftwareregistry-software-taxonomy","{eac}SoftwareRegistry Software Taxonomy","2.0.12","\u003Cp>\u003Cstrong>{eac}SoftwareRegistry Software Taxonomy\u003C\u002Fstrong> is an extension plugin to \u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registration-server\u002F\" rel=\"nofollow ugc\">{eac}SoftwareRegistry Software Registration Server\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Now with \u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fgithub-hosting\u002F\" rel=\"nofollow ugc\">plugin hosting on Github\u003C\u002Fa> to provide complete, automated plugin information and updates in WordPress.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>{eac}SoftwareRegistry Software Taxonomy\u003C\u002Fstrong> is a simple plugin extension that allows you to set and override {eac}SoftwareRegistry options for specific software products. It both defines the software product as well as the server parameters used when that product is registered via the software registration application program interface.\u003C\u002Fp>\n\u003Cp>When an API request is received by the registry server, the \u003Ccode>registry_product\u003C\u002Fcode> is matched to the software taxonomy slug. When a match is found, the parameters entered in the software taxonomy meta data are used to override the registry server default parameters.\u003C\u002Fp>\n\u003Ch4>Options set on a per-product basis by this extension\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cem>Software Product\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>Registry Title\u003C\u002Fem>            – The Software Product display name\u003C\u002Fli>\n\u003Cli>\u003Cem>Registry Description\u003C\u002Fem>      – The Software Product Description\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>Registrar Contact\u003C\u002Fem> (override existing global options in {eac}SoftwareRegistry)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>Registrar Name\u003C\u002Fem>            – Sending client email from this name\u003C\u002Fli>\n\u003Cli>\u003Cem>Registrar Telephone\u003C\u002Fem>       – Include telephone in client notifications\u003C\u002Fli>\n\u003Cli>\u003Cem>Registrar Support Email\u003C\u002Fem>   – Include support email address in client notifications\u003C\u002Fli>\n\u003Cli>\u003Cem>Registrar Web Address\u003C\u002Fem>     – Include web address in client notifications\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>Registration Defaults\u003C\u002Fem> (override existing global options in {eac}SoftwareRegistry)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>Default Status\u003C\u002Fem>            – The default status to assign to newly created registrations\u003C\u002Fli>\n\u003Cli>\u003Cem>Default Initial Term\u003C\u002Fem>      – The initial term when creating a new registration (pending or trial)\u003C\u002Fli>\n\u003Cli>\u003Cem>Default Full Term\u003C\u002Fem>         – The full term when activating a registration\u003C\u002Fli>\n\u003Cli>\u003Cem>Default License\u003C\u002Fem>           – The default license level (L1-L5, LD) to assign to newly created registrations\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>Client Notification\u003C\u002Fem> (Customize the email message and API response notifications sent to the client)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>Client Email Message\u003C\u002Fem>      – Message sent to client on creation, activation or update of registration.\u003C\u002Fli>\n\u003Cli>\u003Cem>Client API Message\u003C\u002Fem>        – Short message included with all API responses.\u003C\u002Fli>\n\u003Cli>\u003Cem>Client Success Notice\u003C\u002Fem>     – Success notification sent via API response.\u003C\u002Fli>\n\u003Cli>\u003Cem>Client Error Notice\u003C\u002Fem>       – Error notification sent via API response.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>License Limitations\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>see below\u003C\u002Fem>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>GitHub Hosting\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>WordPress Plugin Slug\u003C\u002Fem>     – The {directory}\u002F{plugin.php} slug of the WordPress plugin.\u003C\u002Fli>\n\u003Cli>\u003Cem>GitHub Repository\u003C\u002Fem>         – The {owner}\u002F{repository} id of the github repository.\u003C\u002Fli>\n\u003Cli>\u003Cem>Repository Source\u003C\u002Fem>         – Select which source to use from the repository (branch, release).\u003C\u002Fli>\n\u003Cli>\u003Cem>Tag Name\u003C\u002Fem>                  – (Optional) Specific release or branch tag name (or id).\u003C\u002Fli>\n\u003Cli>\u003Cem>Path to readme.txt\u003C\u002Fem>        – Pathname within the repository to the readme.txt file.\u003Cbr \u002F>\nIf blank, the json file will be generated from information available in the GitHub repository.\u003C\u002Fli>\n\u003Cli>\u003Cem>GitHub Access Token\u003C\u002Fem>       – Your GitHub personal access token, Increases the github rate limit and is required for private repositories.\u003C\u002Fli>\n\u003Cli>\u003Cem>Plugin URLs\u003C\u002Fem>               – Displays the URL(s) you will need for your plugin file and readme.txt file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>License Limitations\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>Based on the license level assigned to a registration, we can limit the optional values in the registration API (count, variations, options, domains & sites). This allows APIs (possibly from multiple sources) to register any\u002Fall values for these options while filtering on the registration server, providing an effective (albeit rudimentary) licensing validation.\u003C\u002Fp>\n\u003Cp>For each license level ( L1=Lite, L2=Basic, L3=Standard, L4=Professional, L5=Enterprise, LD=Developer ) you may set a limit for count, variations, options, domains, and sites.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>count\u003C\u002Fem>        – Number of licenses (users\u002Fseats\u002Fdevices)\u003C\u002Fli>\n\u003Cli>\u003Cem>variations\u003C\u002Fem>   – List of custom name\u002Fvalue pairs\u003C\u002Fli>\n\u003Cli>\u003Cem>options\u003C\u002Fem>      – List of custom registry options\u003C\u002Fli>\n\u003Cli>\u003Cem>domains\u003C\u002Fem>      – List of valid\u002Fregistered domains\u003C\u002Fli>\n\u003Cli>\u003Cem>sites\u003C\u002Fem>        – List of valid\u002Fregistered sites\u002Furis\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For count, the value passed through the API is limited to a maximum value.\u003Cbr \u002F>\nFor variations, options, domains, and sites, the arrays passed through the API are sliced to a maximum number of elements.\u003C\u002Fp>\n\u003Ch4>GitHub Hosting\u003C\u002Fh4>\n\u003Cblockquote>\n\u003Cp>* GitHub hosting requires installation of the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Feacreadme\u002F\" rel=\"ugc\">{eac}Readme plugin\u003C\u002Fa> in order to process readme.txt files.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Wether you’re using software registration or not, you can use Github Hosting to manage your software releases and provide automated updates for your WordPress plugins.\u003C\u002Fp>\n\u003Cp>New in version 2.0, these options allow for the “self-hosting” of WordPress plugins on GitHub in a way similar to and meeting the requirements of the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Feacsoftwareregistry-software-taxonomy\u002F\" rel=\"ugc\">WordPress plugin repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>More details may be found in the included \u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fgithub-hosting\u002F\" rel=\"nofollow ugc\">readme_github.md\u003C\u002Fa> file.\u003C\u002Fp>\n\u003Ch4>See Also\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registration-server\u002F\" rel=\"nofollow ugc\">{eac}SoftwareRegistry – Software Registration Server\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-registry-sdk\u002F\" rel=\"nofollow ugc\">Implementing the Software Registry SDK\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Copyright\u003C\u002Fh3>\n\u003Ch4>Copyright © 2019-2025, EarthAsylum Consulting, distributed under the terms of the GNU GPL.\u003C\u002Fh4>\n\u003Cp>This program is free software: you can redistribute it and\u002For modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\u003C\u002Fp>\n\u003Cp>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\u003C\u002Fp>\n\u003Cp>You should receive a copy of the GNU General Public License along with this program. If not, see \u003Ca href=\"https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002F\u003C\u002Fa>.\u003C\u002Fp>\n","Software Product Taxonomy - Customize {eac}SoftwareRegistry with options, licensing, client messaging, and Github hosting for each software product.",2285,"2025-07-21T21:40:00.000Z",[61,18,62,19,20],"github-hosting","software-product","https:\u002F\u002Fswregistry.earthasylum.com\u002Fsoftware-taxonomy\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-software-taxonomy.2.0.12.zip",{"slug":66,"name":67,"version":68,"author":69,"author_profile":70,"description":71,"short_description":72,"active_installs":73,"downloaded":74,"rating":75,"num_ratings":76,"last_updated":77,"tested_up_to":78,"requires_at_least":79,"requires_php":80,"tags":81,"homepage":84,"download_link":85,"security_score":86,"vuln_count":87,"unpatched_count":11,"last_vuln_date":88,"fetched_at":27},"license-manager-for-woocommerce","License Manager for WooCommerce","3.0.15","Saad Iqbal","https:\u002F\u002Fprofiles.wordpress.org\u002Fsaadiqbal\u002F","\u003Cp>Running a digital store on WooCommerce? \u003Cstrong>\u003Ca href=\"https:\u002F\u002Flicensemanager.at\u002F?utm_source=wp_org&utm_medium=readme&utm_campaign=title\" rel=\"nofollow ugc\">License Manager for WooCommerce\u003C\u002Fa>\u003C\u002Fstrong> gives you everything you need to sell and manage software license keys and digital licenses, including a serial key and software license, securely.\u003Cbr \u002F>\nFrom automatic license key generation and instant email delivery to encrypted storage and powerful REST API endpoints, this WooCommerce automation plugin acts as a complete key manager and license management system. It streamlines software license management for WordPress developers, SaaS vendors, and digital product shops requiring software license keys.\u003Cbr \u002F>\nThe License Manager for WooCommerce allows you to easily sell and manage all of your digital license keys, serial key inventories, and software license records from one centralized license management dashboard.\u003Cbr \u002F>\nWith features like the bulk importer, automatic license delivery, automatic stock management, and database encryption, your shop can handle every key, software license, and digital license more efficiently than ever.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Flicensemanager.at\u002Fpricing\u002F?utm_source=wp_org&utm_medium=readme&utm_campaign=go_pro\" rel=\"nofollow ugc\">🚀 Go Pro\u003C\u002Fa>\u003C\u002Fstrong> | \u003Cstrong>\u003Ca href=\"https:\u002F\u002Ftastewp.com\u002Fcreate\u002FNMS\u002F8.4\u002Flatest_wp\u002Flicense-manager-for-woocommerce%2Cwoocommerce\u002Ftastewp-default\u002F?redirect=admin.php%3Fpage=wc-settings%26tab=lmfwc_settings&ni=true\" rel=\"nofollow ugc\">💻 Live Demo\u003C\u002Fa>\u003C\u002Fstrong> | \u003Cstrong>\u003Ca href=\"https:\u002F\u002Flicensemanager.at\u002Fdocs\u002F?utm_source=wp_org&utm_medium=readme&utm_campaign=documentation\" rel=\"nofollow ugc\">📘  Documentation\u003C\u002Fa>\u003C\u002Fstrong> | \u003Cstrong>\u003Ca href=\"https:\u002F\u002Flicensemanager.at\u002Fget-in-touch\u002F?utm_source=wp_org&utm_medium=readme&utm_campaign=contact_us\" rel=\"nofollow ugc\">💬 Support\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FE_GWMqzYLcs?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch4>Who WooCommerce License Manager is For\u003C\u002Fh4>\n\u003Cp>This automation license management plugin is for:\u003Cbr \u002F>\n* WordPress plugin and theme developers who need a secure license key or serial key system\u003Cbr \u002F>\n* SaaS providers selling subscription-based software license products\u003Cbr \u002F>\n* Digital product stores needing secure license delivery and serial key verification\u003Cbr \u002F>\n* Agencies distributing client licenses using a centralized key manager\u003C\u002Fp>\n\u003Ch4>Key Features of License Manager for WooCommerce\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Automated License Delivery – Generate and send WooCommerce digital license keys and serial key access instantly after checkout.\u003C\u002Fli>\n\u003Cli>Secure Storage – Every license key and software license record is encrypted and protected inside WordPress.\u003C\u002Fli>\n\u003Cli>Stock Control – Track, assign, and update license key availability automatically with built-in key manager functionality.\u003C\u002Fli>\n\u003Cli>REST API Integration – Validate, activate, or revoke licenses, software license keys, and serial key activations directly via API.\u003C\u002Fli>\n\u003Cli>Customer Dashboard – Buyers can manage activations, view software license details, and monitor serial key usage inside My Account.\u003C\u002Fli>\n\u003Cli>Bulk Tools – Import, export, and generate license and serial key batches in a few clicks.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Highlights of License Manager for WooCommerce\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Display the license keys and serial key section inside WooCommerce ‘s My Account Page\u003C\u002Fli>\n\u003Cli>Allow users to activate\u002Fdeactivate their software license keys\u003C\u002Fli>\n\u003Cli>Allow users to download software license certificates\u003C\u002Fli>\n\u003Cli>Admins can add a company logo on a software license certificate\u003C\u002Fli>\n\u003Cli>Admins can do a one-click migration of the license key from Digital License Manager or any existing key manager\u003C\u002Fli>\n\u003Cli>Admin can generate licenses and serial key entries for all past orders\u003C\u002Fli>\n\u003Cli>Automatically sell and deliver software license keys through WooCommerce\u003C\u002Fli>\n\u003Cli>Automatically manage the stock for licensed products and serial key inventory\u003C\u002Fli>\n\u003Cli>Activate, deactivate, and check your software license status through the REST API\u003C\u002Fli>\n\u003Cli>Manually resend license keys and serial key delivery emails\u003C\u002Fli>\n\u003Cli>Add and import software license keys and assign them to WooCommerce products\u003C\u002Fli>\n\u003Cli>All licenses and serial key data are encrypted to prevent unauthorized use\u003C\u002Fli>\n\u003Cli>Administrators can activate or deactivate user accounts tied to a software license\u003C\u002Fli>\n\u003Cli>Allows users to add duplicate license keys or serial key entries into the database\u003C\u002Fli>\n\u003Cli>The order status tab provides software license and serial key delivery settings\u003C\u002Fli>\n\u003Cli>Import license key and serial key batches by file upload\u003C\u002Fli>\n\u003Cli>Export license key and software license records as PDF or CSV\u003C\u002Fli>\n\u003Cli>Manage the status of your license keys, software license lifecycle, and serial key usage\u003C\u002Fli>\n\u003Cli>Create license key generators with custom parameters to produce unique software license and serial key combinations\u003C\u002Fli>\n\u003Cli>Assign a generator to one or more WooCommerce products; these products then automatically create a software license key and serial key whenever they are sold\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>License Manager for WooCommerce Pro\u003C\u002Fh4>\n\u003Cp>License Manager for WooCommerce Pro allows you to enhance the capabilities for your eCommerce website with advanced license management, software license, and key manager features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Download Expires\u003C\u002Fstrong> – Download expired products and generate new software license keys and serial key entries.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Product Download Detail\u003C\u002Fstrong> – Enter a change log and product version from the settings tied to each software license.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Validate Customer Licenses\u003C\u002Fstrong> – Validate customer software license access using their ID or assigned serial key.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Ping Request\u003C\u002Fstrong> – Create a ping request to check the client-server connection and confirm software license validity.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>New License Key Upon Subscription Renewal\u003C\u002Fstrong> – Issue a new software license key and serial key upon each subscription renewal.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Extend License Key Upon Subscription\u003C\u002Fstrong> – Extend the existing software license and associated serial key with each subscription renewal.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Webhooks Integration\u003C\u002Fstrong> – Automate external actions with real-time event-based software license and serial key triggers.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>QR Code Activation\u003C\u002Fstrong> – Simplify activation with scannable license QR codes linked to each software license and serial key for instant access.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>View License Manager for WooCommerce Pro \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.licensemanager.at\u002Fpricing\u002F\" rel=\"nofollow ugc\">pricing plans\u003C\u002Fa>\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3>Feature Breakdown of WooCommerce License Manager\u003C\u002Fh3>\n\u003Ch4>License Key Management & Delivery\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Assign a WooCommerce license key or serial key to any digital product as part of your software license management workflow.\u003C\u002Fli>\n\u003Cli>Automatically generate licenses during checkout using built-in key manager generators.\u003C\u002Fli>\n\u003Cli>Deliver licenses, software license credentials, and serial key access instantly by email and within the customer’s WooCommerce account.\u003C\u002Fli>\n\u003Cli>Re-issue or revoke licenses and serial key access directly from the admin dashboard using the integrated key manager.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Security & Compliance\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Keys and serial key data are stored with encryption. No plain-text exposure of any software license.\u003C\u002Fli>\n\u003Cli>Admin can hide or partially mask serial key values for additional software license privacy.\u003C\u002Fli>\n\u003Cli>Built-in cryptographic files secure license operations and the automation license management system, ensuring your software license manager and key manager remain reliable.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>REST API & Integrations\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Validate, activate, or deactivate licenses and serial key activations via the REST API.\u003C\u002Fli>\n\u003Cli>Connect your apps, plugins, or external services to WooCommerce for software license and serial key verification.\u003C\u002Fli>\n\u003Cli>API supports license checks, ping requests, serial key validation, and software license expiry validation for complete control.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Stock & Reporting Tools\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Track license key inventory and serial key usage across products in real time with the built-in key manager.\u003C\u002Fli>\n\u003Cli>Bulk import or export keys and serial key records with CSV for fast software license migration.\u003C\u002Fli>\n\u003Cli>Generate custom license certificates tied to each software license and serial key, including branding and customer details.\u003C\u002Fli>\n\u003Cli>View activation history and logs to keep your WooCommerce software license and serial key workflow transparent.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Upgrade to License Manager Pro\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Automation for WooCommerce License Manager Pro extends functionality with advanced software license, serial key, and key manager controls.\u003C\u002Fli>\n\u003Cli>Features include versioning and changelogs, subscription renewal support, software license validation by customer ID, and advanced reporting.\u003C\u002Fli>\n\u003Cli>Ideal for scaling stores needing enterprise-level WooCommerce license management and key manager capabilities for handling large software license and serial key volumes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Compatibility and Requirements of This License Key Management Software\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fully compatible with WooCommerce license management workflows for managing software license keys and serial key delivery for digital products.\u003C\u002Fli>\n\u003Cli>This automation license management plugin works with the latest WordPress and WooCommerce versions (tested up to current release) and supports centralized key manager operations.\u003C\u002Fli>\n\u003Cli>Requires WordPress 5.0+ and WooCommerce 5.0+ for stable software license and serial key management performance.\u003C\u002Fli>\n\u003Cli>Lightweight codebase built for speed, security, and scalable license management and key manager operations.\u003C\u002Fli>\n\u003Cli>Trusted by 6,000+ active installs as a reliable software license manager and key manager for WordPress.\u003C\u002Fli>\n\u003Cli>Regular updates and dedicated support ensure long-term software license and serial key reliability.\u003C\u002Fli>\n\u003Cli>Backward compatible with Digital License Manager for smooth migration of existing software license and serial key records.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>API For License Key Management\u003C\u002Fh4>\n\u003Cp>The plugin also offers additional endpoints for manipulating licenses, software license records, generator resources, and serial key assignments. These routes are authorized via API keys (generated through the plugin settings) and accessed via the WordPress API using the built-in WooCommerce license key manager infrastructure. An extensive \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.licensemanager.at\u002Fdocs\u002Frest-api\u002Fgetting-started\u002Fapi-keys\" rel=\"nofollow ugc\">API documentation\u003C\u002Fa>\u003C\u002Fstrong> is also available.\u003C\u002Fp>\n\u003Ch4>Need help?\u003C\u002Fh4>\n\u003Cp>If you have any feature requests, need more hooks, or have even found a bug related to your software license, serial key, or key manager, please let us know in the support forum or e-mail us at support@wpexperts.io.\u003C\u002Fp>\n\u003Cp>You can also check out the \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.licensemanager.at\u002Fdocs\u002F\" rel=\"nofollow ugc\">documentation\u003C\u002Fa>\u003C\u002Fstrong>, which contains the most essential information on what the plugin can do to manage your software license, serial key, and complete key manager workflow.\u003C\u002Fp>\n\u003Ch4>Important\u003C\u002Fh4>\n\u003Cp>The plugin will create two files inside the \u003Ccode>wp-content\u002Fuploads\u002Flmfwc-files\u003C\u002Fcode> folder. These files (\u003Ccode>defuse.txt\u003C\u002Fcode> and \u003Ccode>secret.txt\u003C\u002Fcode>) contain cryptographic secrets which are automatically generated if they don’t exist. These cryptographic secrets are used to encrypt, decrypt and hash your license keys. Once they are generated please \u003Cstrong>back them up somewhere safe\u003C\u002Fstrong>. In case you lose these two files your encrypted license keys inside the database will remain forever lost!\u003C\u002Fp>\n\u003Cp>If you would like to contribute to any of these \u003Ca href=\"https:\u002F\u002Fwww.licensemanager.at\u002Fdocs\u002Frest-api\u002Flibraries\u002Fnode-js\" rel=\"nofollow ugc\">libraries\u003C\u002Fa> in these languages (Node.js, Python, PHP, Ruby, .NET, C, C#, C++, and Golang), please visit our library page for more details.\u003C\u002Fp>\n\u003Ch4>Note\u003C\u002Fh4>\n\u003Cp>Few features like user license display on account page and license certification are fork from Digital License Manager plugin by Darko Gjorgjijoski and we have changed the code according to our need.\u003C\u002Fp>\n","Easily sell and manage software license keys through your WooCommerce shop",6000,154091,92,147,"2026-03-12T06:45:00.000Z","6.9.4","4.7","7.0",[82,47,83,18,22],"license-key","serial-key","https:\u002F\u002Fwww.wpexperts.io\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flicense-manager-for-woocommerce.3.0.15.zip",95,4,"2025-09-05 00:00:00",{"slug":90,"name":91,"version":92,"author":93,"author_profile":94,"description":95,"short_description":96,"active_installs":97,"downloaded":98,"rating":35,"num_ratings":34,"last_updated":99,"tested_up_to":78,"requires_at_least":79,"requires_php":80,"tags":100,"homepage":101,"download_link":102,"security_score":103,"vuln_count":104,"unpatched_count":11,"last_vuln_date":105,"fetched_at":27},"digital-license-manager","Digital License Manager","1.8.4","CodeVerve","https:\u002F\u002Fprofiles.wordpress.org\u002Fcodeverve\u002F","\u003Cp>The \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fcodeverve.com\u002Fproduct\u002Fdigital-license-manager-pro\u002F\" rel=\"nofollow ugc\">Digital License Manager\u003C\u002Fa>\u003C\u002Fstrong> is a licensing plugin that allows you to efficiently sell and manage license keys that also supports bulk import, export, stock synchronization, separate activations table and much more.\u003C\u002Fp>\n\u003Cp>The plugin is actively maintained, secure, well documented and very extendable.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002F\" rel=\"nofollow ugc\">Plugin & API Documentation\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>✔️ Core Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Manage Licenses efficiently (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Flicenses\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Manage License Activations – See activation ip, useragent, label… (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Factivations\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Manage License Generators – Customize the look of the licenses (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fgenerators\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Supports Simple and Variable products for License key delivery (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fproducts\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Deliver License key on product purchase from stock (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fdeliver-from-stock\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Deliver License key on product purchase based on the Generator (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fproducts\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Synchronizes stock with licenses assigned to product (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fstock-synchronization\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Configure the order status on which License is delivered (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fget-started\u002Fconfiguration\u002F#WooCommerce\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Show purchased Licenses in WooCommerce > MyAccount (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fmy-account\u002Flicenses\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Single License page in WooCommerce My Account page (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fmy-account\u002Fsingle-license\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Activate License from WooCommerce MyAccount page (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fmy-account\u002Fsingle-license\u002Fmanual-activations\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Allow\u002FDisallow Customers to download PDF License Certificate (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fmy-account\u002Fsingle-license\u002Fpdf-certificates\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Adds purchased License Keys in the Order Confirmation email (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Femails\u002Forder-confirmation\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Manually re-send License Key to customer via email (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Femails\u002Fmanual-email\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Rest API endpoints for working with Licenses. (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Frest-api\u002Flicenses\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Rest API endpoints for working with Generators. (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Frest-api\u002Fgenerators\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Rest API endpoints for working with Software. (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Frest-api\u002Fsoftware\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Rest API protected by API Key & Endpoint permissions (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Frest-api\u002Fauthentication\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Option to Import Licenses (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Flicenses\u002Fimport-export\u002F#import\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Option to Export Licenses (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Flicenses\u002Fimport-export\u002F#export\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Effortless migration from License Manager for WooCommerce (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fmigration\u002Fmigrate-from-license-manager-for-woocommerce\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Support for “WooCommerce PDF Invoices and Packing Slips” (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fintegrations\u002Fpdf-invoices-and-packing-slips\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Licenses List Block – Lists licenses assigned to the current user (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fblocks\u002Flicenses-table\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>License Check Block – Show a form for checking license key (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fblocks\u002Flicense-check\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Licenses Shortcode – Lists Licenses assigned to the current user (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fblocks\u002Flicenses-table\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>License Check Shortcode – Show a form for checking license key (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fblocks\u002Flicense-check\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Customizable WooCommerce templates (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fcodex\u002Ftemplates\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For a full list of features, please check \u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>✨ Pro Features\u003C\u002Fh3>\n\u003Cp>Our PRO version focuses on support for WooCommerce Subscriptions, detailed software showcase in the product page tabs, software update delivery through special REST API endpoints and more.\u003C\u002Fp>\n\u003Cp>List of features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>WooCommerce Subscriptions Support (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fintegrations\u002Fwoocommerce-subscriptions\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Subscriptions for WooCommerce support (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fintegrations\u002Fsubscriptions-for-woocommerce\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Register License Keys in WooCommerce > My Account (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fmy-account\u002Fregister-license\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>License Revealing (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Flicenses\u002Flicense-revealing\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>WPML Translation Plugin support (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fintegrations\u002Fwpml\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Software Management – Set up gallery, support, documentation… (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fsoftware\u002Fmanaging-software\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Software Releases – Publish releases for each software (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fsoftware\u002Fmanage-releases\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Software Product Details – Assign software to products. (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fsoftware\u002Fproduct-details\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Software Product Details – Show last updated, version, etc. (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fsoftware\u002Fproduct-details\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Software Product Details – Show gallery, support, docs, changelog (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fsoftware\u002Fproduct-details\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Software Download Page in WooCommerce My Account (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fmy-account\u002Fsingle-license\u002Fdownloads\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Software Download RestAPI endpoint (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Frest-api\u002Fsoftware\u002Fdownload\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Software Details RestAPI endpoint (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Frest-api\u002Fsoftware\u002Fsingle\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>License Activation Enable\u002FDisable in WooCommerce > My Account (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fmy-account\u002Fsingle-license\u002Factivations-table\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>WordPress Premium Theme & Plugin Updater (\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fwordpress-theme-plugin-updates\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Software Analytics (Coming soon)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fcodeverve.com\u002Fproduct\u002Fdigital-license-manager-pro\u002F\" rel=\"nofollow ugc\">[GET PRO VERSION]\u003C\u002Fa> 🔥\u003C\u002Fp>\n\u003Cp>For a full list of features, please check \u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>📃 REST API Documentation\u003C\u002Fh3>\n\u003Cp>The REST API is one of the crucial features that this plugin provides.\u003C\u002Fp>\n\u003Cp>It allows developers to create, update, activate, deactivate, validate licenses through the API.\u003C\u002Fp>\n\u003Cp>The full REST API documentation can be found on the link below:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Frest-api\u002F\" rel=\"nofollow ugc\">[See Documentation]\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>📃 Complete Documentation\u003C\u002Fh3>\n\u003Cp>The complete documentation can be found on the link below:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocs.codeverve.com\u002Fdigital-license-manager\u002Fhandbook\u002Fwoocommerce\u002Fproducts\u002F\" rel=\"nofollow ugc\">[See Documentation]\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>📃 Client Libraries\u003C\u002Fh3>\n\u003Cp>The following client libraries and integrations are available:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdigital-license-manager\u002Fdlm-php\" rel=\"nofollow ugc\">PHP Library\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdigital-license-manager\u002Fdlm-cpp\" rel=\"nofollow ugc\">C++ Client (Libcurl)\u003C\u002Fa> \u002F \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdigital-license-manager\u002Fdlm-cpp-example\" rel=\"nofollow ugc\">C++ Example\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdigital-license-manager\u002FDLM-NET\" rel=\"nofollow ugc\">C# Library\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdigital-license-manager\u002Fdlm-python\" rel=\"nofollow ugc\">Python Library\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdigital-license-manager\u002Fdlm-plugin-pro\" rel=\"nofollow ugc\">Premium WordPress Updater (Requires PRO)\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdigital-license-manager\u002Fdlm-plugin-pro\" rel=\"nofollow ugc\">Premium Plugin Example (Requires PRO)\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdigital-license-manager\u002Fdlm-theme-pro\" rel=\"nofollow ugc\">Premium Theme Example (Requires PRO)\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>➕ Issues \u002F Feature Requests\u003C\u002Fh3>\n\u003Cp>The development can be tracked on our \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgdarko\u002Fdigital-license-manager\" rel=\"nofollow ugc\">Github Repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Any contributions are welcome! Feel free to submit pull requests or report issues.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgdarko\u002Fdigital-license-manager\" rel=\"nofollow ugc\">Digital License Manager on GitHub\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>👏 Acknowledgements\u003C\u002Fh3>\n\u003Cp>This plugin was early fork of License Manager for WooCommerce by Drazen Bebic and WPExperts. However, nowadays, the code has been completely rewritten in order to modernize it and provide better support, stability and new features.\u003C\u002Fp>\n\u003Cp>Other acknowledgments: Micromodal, Tom-Select, Flatpickr, defuse\u002FPHP-Encryption, spipu\u002Fhtml2pdf, tecnickcom\u002Ftcpdf, 10quality\u002Fwp-query-builder, ignitekit\u002Fwp-notices.\u003C\u002Fp>\n\u003Cp>Props to \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fpondermatic\u002F\" rel=\"nofollow ugc\">@pondermatic\u003C\u002Fa> for contributing to our plugin.\u003C\u002Fp>\n\u003Ch3>⚠️ Important Note\u003C\u002Fh3>\n\u003Cp>The plugin will create \u003Ccode>wp-content\u002Fuploads\u002Fdlm-files\u003C\u002Fcode> directory which stores the cryptographic secrets that are required to decrypt the licenses. If you lose this file, you will lose your license keys as well. \u003Cstrong>Make sure you backup those files!\u003C\u002Fstrong>\u003C\u002Fp>\n","Efficiently sell and manage software license keys \u002F codes on your WooCommerce webshop",700,20619,"2026-02-03T20:23:00.000Z",[82,47,83,18,22],"https:\u002F\u002Fcodeverve.com\u002Fproduct\u002Fdigital-license-manager-pro\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdigital-license-manager.1.8.4.zip",99,1,"2025-03-24 20:55:16",{"slug":107,"name":108,"version":109,"author":110,"author_profile":111,"description":112,"short_description":113,"active_installs":25,"downloaded":114,"rating":33,"num_ratings":87,"last_updated":115,"tested_up_to":14,"requires_at_least":116,"requires_php":117,"tags":118,"homepage":121,"download_link":122,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"woo-elite-licenser-addon","Elite Licenser addon-lite for WooCommerce","2.1.2","appsbd","https:\u002F\u002Fprofiles.wordpress.org\u002Fappsbd\u002F","\u003Cp>It is an add-on of Elite Licenser also WooCommerce. So you must need main app (Elite licenser) to use it.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>It’s an add-ons of WooCommerce which is also add-on of Elite Licenser\u003C\u002Fli>\n\u003Cli>Generate license code for WooCommerce digital product\u003C\u002Fli>\n\u003Cli>User can see the license code into order details\u003C\u002Fli>\n\u003Cli>License auto disabled when a order refund, canceled or failed\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>About Elite Licenser\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fappsbd.com\u002Felitepro?f=wp\" rel=\"nofollow ugc\">Elite Licenser\u003C\u002Fa>\u003C\u002Fstrong> is a WordPress plugin for any types of product licensing. It also manages product updates, auto generates license code, built in Envato licensing verification system, full license control and more. It has full set of API, so you can handle it by other applications as well. One app handles license of all your products. You can handle any language (PHP, .Net, Java, Android, etc.). Also you can add licensing to more than one WordPress plugin or theme and it can be installed on same WordPress.\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Fbit.ly\u002Felite-videos\" rel=\"nofollow ugc\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Ff8hQQ-UVj9k?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch3>Features Summary\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>No Nulled Version Application Anymore\u003C\u002Fstrong>: You can protect your any product by Elite License. Just generate license script and add that into your product that’s it.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>One Licensing app for Any types of product\u003C\u002Fstrong>:You can use this license server for any types of application. Like you can create multiple WordPress plugin, WordPress theme, any php application including Joomla and other CMS, any .net application, any java or android application. That means one app for all types of application.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic Product Updating\u003C\u002Fstrong>: It has also product updating feature. You just add new version details using a very easy web panel then your app will get update notification. Like if your product is a WordPress plugin or theme then the update will display as core WordPress update.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>3rd Party App Hook(instant Notification) :\u003C\u002Fstrong> It has hook system for 3rd party app instant notification. It means when a client or license will be add into this system then this system will inform 3rd party app ( like Membership App) new client or license has been added with all client or license information.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Email Template :\u003C\u002Fstrong> Modify pre-existing templates to send emails to customers. we don’t want to say much on it, Our hardly request to see once in live preview then you will see how easy it is.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Envato Integration:\u003C\u002Fstrong>You will get build-in Envato license verification system. So you can easily handle your envato license as well other market place license. Even you can add your own integration for any others marketplace as a simple addon plugin.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Plug and Play code generation:\u003C\u002Fstrong>You can generate complete WordPress plugin and theme sample code, which you could directly install on WordPress. It also generate other languages sample code too.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Auto host ban:\u003C\u002Fstrong> If anyone attempts to activate the product repeatedly with an incorrect license, this it will block that host(domain) automatically. The host(domain) will no longer be able to use any of your products and you will get those host’s list into its panel.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Complete API Support:\u003C\u002Fstrong> It has complete API support for 3rd party app, you can also control the API permission.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Continuously License Code Protection + small footsteps server load:\u003C\u002Fstrong> We are always think future about our product and we coding them carefully. For example: Normally other licenser app check license on each time load. But in this licenser you can handle that as well. Either you can choose each time or you can set multiple settings of calling for license. like you can set first 3 times it will check hourly then it will check once in a day for 5 times then it will check once in a week and continue. But you can also inactive that license key from this app any time. If you change the license key status then that license key holder app will check immediately.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Remove License Any Time:\u003C\u002Fstrong> You can forcefully remove license from client’s product. if you think that client steal your license or still using your product after refunded.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>One App Handle’s your all application:\u003C\u002Fstrong> You just need to install it once and use it into your all app. Don’t need to take any other service or application. You can also use envato license system into it. Fully hassle less for any author or developer.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom License Type :\u003C\u002Fstrong> You can create many custom license type, like single license, multi license, 1 year license etc, You can set the max domain on each license type. Also you can detect forum sharing. Cause you can set verification counter as well. It means if you set a multi license with 50 domain and verification required on 10 domain then client need to verification manually by you to add each domain after 10th.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>URL Based Restrictions:\u003C\u002Fstrong>This app restrict a license key with URL that means, if someone installed your app example.com\u002Fapp and also install example.com\u002Fapp2 or app2.example.com then for each case it they required individual license key if purchase single license key. So no more usage after buying a single license.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Details license information:\u003C\u002Fstrong> You can get details license information, There is also a log when and where it has been installed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Addons:\u003C\u002Fstrong> There are many addon will be come for additional feature in future. You can use that addon too.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>**It is also supported by**\u003C\u002Fh3>\n\u003C\u002Fp>\n\u003Ch3>along with other payment gateways\u003C\u002Fh3>\n\u003Ch3>Demo Site Infomation\u003C\u002Fh3>\n\u003Cp>URL: \u003Ca href=\"https:\u002F\u002Fdemo.appsbd.com\u002Felite-license\u002Fwp-admin\" rel=\"nofollow ugc\">https:\u002F\u002Fdemo.appsbd.com\u002Felite-license\u002Fwp-admin\u003C\u002Fa>\u003Cbr \u002F>\nUser : \u003Cstrong>demo\u003C\u002Fstrong>\u003Cbr \u002F>\nPassword: \u003Cstrong>demo\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fsupport.appsbd.com\" rel=\"nofollow ugc\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>URL: \u003Ca href=\"https:\u002F\u002Fdemo.appsbd.com\u002Felite-license\u002Fwp-admin\" rel=\"nofollow ugc\">https:\u002F\u002Fdemo.appsbd.com\u002Felite-license\u002Fwp-admin\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Javascript Source\u003C\u002Fh3>\n\u003Cp>https:\u002F\u002Fgithub.com\u002Fappsbd\u002Felite-licenser-js\u003C\u002Fp>\n\u003Ch3>External Service Disclosure\u003C\u002Fh3>\n\u003Cp>This plugin connects to an external service to retrieve information about related addons and enhancements for the Vite Coupon plugin.\u003C\u002Fp>\n\u003Cp>Service: addon.appsbd.com\u003Cbr \u002F>\nPurpose: To fetch data about available plugin addons and related functionalities.\u003C\u002Fp>\n","It is an add-on of Elite Licenser also WooCommerce. So you must need main app (Elite licenser) to use it.",7507,"2025-08-07T11:50:00.000Z","4.4","5.6",[119,47,18,22,120],"license","wordpress-plugin-license","https:\u002F\u002Fappsbd.com\u002Felite-licenser\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwoo-elite-licenser-addon.2.1.2.zip",{"attackSurface":124,"codeSignals":156,"taintFlows":164,"riskAssessment":165,"analyzedAt":172},{"hooks":125,"ajaxHandlers":152,"restRoutes":153,"shortcodes":154,"cronEvents":155,"entryPointCount":11,"unprotectedCount":11},[126,132,136,141,144,148],{"type":127,"name":128,"callback":129,"file":130,"line":131},"action","options_settings_page","admin_options_settings","Extensions\u002Fclass.woocommerce_webhooks.extension.php",86,{"type":127,"name":133,"callback":134,"file":130,"line":135},"rest_api_init","register_api_routes",89,{"type":137,"name":138,"callback":139,"file":130,"line":140},"filter","http_origin","closure",152,{"type":137,"name":142,"callback":139,"file":130,"line":143},"allowed_http_origins",155,{"type":137,"name":145,"callback":146,"file":130,"line":147},"is_registrar_option","__return_true",197,{"type":137,"name":149,"callback":139,"file":150,"line":151},"eacSoftwareRegistry_load_extensions","eacSoftwareRegistry_Webhook_Endpoints.php",49,[],[],[],[],{"dangerousFunctions":157,"sqlUsage":158,"outputEscaping":160,"fileOperations":11,"externalRequests":11,"nonceChecks":11,"capabilityChecks":11,"bundledLibraries":163},[],{"prepared":104,"raw":11,"locations":159},[],{"escaped":161,"rawEcho":11,"locations":162},5,[],[],[],{"summary":166,"deductions":167},"The plugin 'eacsoftwareregistry-webhook-endpoints' v1.1.5 exhibits a strong security posture based on the provided static analysis. The absence of any identified entry points like AJAX handlers, REST API routes, shortcodes, or cron events significantly limits the plugin's attack surface.  Furthermore, the code adheres to secure coding practices by utilizing prepared statements for its single SQL query and properly escaping all output. The lack of file operations, external HTTP requests, and the absence of any identified dangerous functions or taint flows are all positive indicators of secure development.\n\nHowever, the static analysis does highlight some areas that, while not directly indicating vulnerabilities in this specific version, warrant attention in a broader context. The complete absence of nonce checks and capability checks across all entry points (even though there are zero identified) suggests a potential oversight in the plugin's architecture. If future versions introduce new entry points, the lack of these fundamental WordPress security mechanisms could become a significant concern. The vulnerability history is also remarkably clean, with no recorded CVEs. While this is excellent, it's important to remember that a clean history does not guarantee future safety, especially for plugins with limited observed security testing or a small user base.\n\nIn conclusion, the current version of 'eacsoftwareregistry-webhook-endpoints' appears to be very secure, with no immediate threats detected through static analysis. Its strengths lie in its minimal attack surface and adherence to secure coding practices for its observed code. The primary weakness, though not currently exploitable due to the absence of entry points, is the potential for future vulnerabilities if nonce and capability checks are not implemented as new features are added. The excellent vulnerability history is a strong positive, but should be monitored alongside ongoing security practices.",[168,170],{"reason":169,"points":161},"Lack of nonce checks",{"reason":171,"points":161},"Lack of capability checks","2026-04-16T13:36:07.992Z",{"wat":174,"direct":182},{"assetPaths":175,"generatorPatterns":178,"scriptPaths":179,"versionParams":180},[176,177],"\u002Fwp-content\u002Fplugins\u002Feacsoftwareregistry-webhook-endpoints\u002FExtensions\u002Fincludes\u002Fwoocommerce_webhooks.options.php","\u002Fwp-content\u002Fplugins\u002Feacsoftwareregistry-webhook-endpoints\u002FExtensions\u002Fclass.woocommerce_webhooks.extension.php",[],[],[181],"eacSoftwareRegistry_Webhook_Endpoints\u002F1.1.5",{"cssClasses":183,"htmlComments":184,"htmlAttributes":185,"restEndpoints":186,"jsGlobals":189,"shortcodeOutput":190},[],[],[],[187,188],"\u002Fwp-json\u002Feacswregistry\u002Fv1\u002Fwc-order","\u002Fwp-json\u002Feacswregistry\u002Fv1\u002Fwc-subscription",[],[],{"error":192,"url":193,"statusCode":194,"statusMessage":195,"message":195},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Feacsoftwareregistry-webhook-endpoints\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":197,"versions":198},13,[199,205,212,218,225,232,239,246,253,260,267,274,281],{"version":6,"download_url":24,"svn_tag_url":200,"released_at":26,"has_diff":201,"diff_files_changed":202,"diff_lines":26,"trac_diff_url":203,"vulnerabilities":204,"is_current":192},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.1.5\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.4&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.5",[],{"version":206,"download_url":207,"svn_tag_url":208,"released_at":26,"has_diff":201,"diff_files_changed":209,"diff_lines":26,"trac_diff_url":210,"vulnerabilities":211,"is_current":201},"1.1.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.1.4.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.1.4\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.3&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.4",[],{"version":41,"download_url":213,"svn_tag_url":214,"released_at":26,"has_diff":201,"diff_files_changed":215,"diff_lines":26,"trac_diff_url":216,"vulnerabilities":217,"is_current":201},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.1.3.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.1.3\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.2&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.3",[],{"version":219,"download_url":220,"svn_tag_url":221,"released_at":26,"has_diff":201,"diff_files_changed":222,"diff_lines":26,"trac_diff_url":223,"vulnerabilities":224,"is_current":201},"1.1.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.1.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.1.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.1&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.2",[],{"version":226,"download_url":227,"svn_tag_url":228,"released_at":26,"has_diff":201,"diff_files_changed":229,"diff_lines":26,"trac_diff_url":230,"vulnerabilities":231,"is_current":201},"1.1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.0&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.1",[],{"version":233,"download_url":234,"svn_tag_url":235,"released_at":26,"has_diff":201,"diff_files_changed":236,"diff_lines":26,"trac_diff_url":237,"vulnerabilities":238,"is_current":201},"1.1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.1.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.10&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.1.0",[],{"version":240,"download_url":241,"svn_tag_url":242,"released_at":26,"has_diff":201,"diff_files_changed":243,"diff_lines":26,"trac_diff_url":244,"vulnerabilities":245,"is_current":201},"1.0.10","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.0.10.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.0.10\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.9&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.10",[],{"version":247,"download_url":248,"svn_tag_url":249,"released_at":26,"has_diff":201,"diff_files_changed":250,"diff_lines":26,"trac_diff_url":251,"vulnerabilities":252,"is_current":201},"1.0.9","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.0.9.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.0.9\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.8&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.9",[],{"version":254,"download_url":255,"svn_tag_url":256,"released_at":26,"has_diff":201,"diff_files_changed":257,"diff_lines":26,"trac_diff_url":258,"vulnerabilities":259,"is_current":201},"1.0.8","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.0.8.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.0.8\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.7&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.8",[],{"version":261,"download_url":262,"svn_tag_url":263,"released_at":26,"has_diff":201,"diff_files_changed":264,"diff_lines":26,"trac_diff_url":265,"vulnerabilities":266,"is_current":201},"1.0.7","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.0.7.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.0.7\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.6&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.7",[],{"version":268,"download_url":269,"svn_tag_url":270,"released_at":26,"has_diff":201,"diff_files_changed":271,"diff_lines":26,"trac_diff_url":272,"vulnerabilities":273,"is_current":201},"1.0.6","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.0.6.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.0.6\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.5&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.6",[],{"version":275,"download_url":276,"svn_tag_url":277,"released_at":26,"has_diff":201,"diff_files_changed":278,"diff_lines":26,"trac_diff_url":279,"vulnerabilities":280,"is_current":201},"1.0.5","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.0.5.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.0.5\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.4&new_path=%2Feacsoftwareregistry-webhook-endpoints%2Ftags%2F1.0.5",[],{"version":282,"download_url":283,"svn_tag_url":284,"released_at":26,"has_diff":201,"diff_files_changed":285,"diff_lines":26,"trac_diff_url":26,"vulnerabilities":286,"is_current":201},"1.0.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacsoftwareregistry-webhook-endpoints.1.0.4.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feacsoftwareregistry-webhook-endpoints\u002Ftags\u002F1.0.4\u002F",[],[]]