[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fIUsEU10j5J4Y9Ew6shEewlhRKcFwdFaQeGTaM7UZnVs":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":36,"analysis":130,"fingerprints":360},"wp-license-manager","WP License Manager","0.5.5","Jarkko Laine","https:\u002F\u002Fprofiles.wordpress.org\u002Fjarkkolaine\u002F","\u003Cp>WP License Manager is an easy to use plugin that will turn your WordPress site into a license manager that can be used for WordPress themes, plugins and other downloadable products.\u003C\u002Fp>\n\u003Cp>Downloadable files are stored in Amazon Simple Storage Service (S3) to keep them safe from people without a license.\u003C\u002Fp>\n\u003Cp>Possible uses for WP License Manager:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Hosting your own premium plugins and themes and serving updates to them.\u003C\u002Fli>\n\u003Cli>Hosting private plugins that you don’t want to share in the open.\u003C\u002Fli>\n\u003Cli>If you get more creative, the license manager plugin can be extended to be used for all kinds of digital goods; downloadable games, for example.\u003C\u002Fli>\n\u003C\u002Ful>\n","Turn your WordPress site into a software license manager for WordPress plugins, themes, and other downloadable products.",30,4386,80,3,"2015-04-27T17:37:00.000Z","4.2.39","3.1","",[20,21,22,23],"licence","license","license-management","updates","http:\u002F\u002Ffourbean.com\u002Fwp-license-manager\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-license-manager.0.5.5.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":11,"avg_security_score":26,"avg_patch_time_days":11,"trust_score":34,"computed_at":35},"jarkkolaine",1,84,"2026-04-04T14:16:57.772Z",[37,61,79,96,112],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":59,"download_link":60,"security_score":47,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"simba-plugin-updates-manager","Simba Plugin Updates Manager","1.12.0","David Anderson \u002F Team Updraft","https:\u002F\u002Fprofiles.wordpress.org\u002Fdavidanderson\u002F","\u003Cp>This plugin enables you to host updates for plugins from your own WordPress site.\u003C\u002Fp>\n\u003Cp>i.e. It provides a service for the availability and download of WordPress plugin updates – just like the wordpress.org plugin repository. This can be for free plugins, or licensed plugins – it includes a full licence manager (and a free class for using it is available).\u003C\u002Fp>\n\u003Cp>This is the plugin updates server that has been providing millions of plugin updates to the users of the paid versions of \u003Ca href=\"https:\u002F\u002Fupdraftplus.com\" rel=\"nofollow ugc\">the UpdraftPlus backup\u002Frestore\u002Fclone WordPress plugin\u003C\u002Fa> since 2013 (and various other \u003Ca href=\"https:\u002F\u002Fteamupdraft.com\" rel=\"nofollow ugc\">Team Updraft\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwww.simbahosting.co.uk\u002Fs3\u002Fshop\u002F\" rel=\"nofollow ugc\">Simba Hosting plugins\u003C\u002Fa>).\u003C\u002Fp>\n\u003Cp>A paid connector for WooCommerce is also available, allowing WordPress to automatically assign and renew licences when purchases are made; plus other features for coupons and renewal emails (including pre-filled carts); \u003Ca href=\"https:\u002F\u002Fwww.simbahosting.co.uk\u002Fs3\u002Fproduct\u002Fplugin-updates-licensing-and-renewals-manager-woocommerce-connector\u002F\" rel=\"nofollow ugc\">follow this link for more information.\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>The best way to get a feel for its features is to take a look at the available screenshots.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>Manage multiple plugins, both free and paid\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Manage user licences – create, renew and delete licence entitlements for non-free plugins\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Send renewal reminder emails for licensed plugins\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Have multiple different zips (i.e. different plugin versions) available for your plugins\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Have sophisticated rules for which zip a particular user gets delivered (e.g. send them an older version if they are on an old version of WordPress or PHP)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Counts plugin downloads, by version – calculate how many active users you have\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Shortcode provided for showing users on your website what plugins are available\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Shortcode provided for showing plugin changelogs (automatically read from the plugin zip)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Data is included in WordPress’s privacy tools’ output (export \u002F delete)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Import a new zip via WP-CLI: wp plugins-manager import-zip –file=”\u002Fpath\u002Fto\u002Ffile.zip” –user=”your-WP-user” –add-rule\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Update plugins’ supported WordPress versions via WP-CLI:\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>wp plugins-manager update-versions –user=”WordPress-username-or-email-or-id” –slug=”plugin-slug” –tested-version=”version-number(x.y.z)”\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Or\u003C\u002Fp>\n\u003Cul>\n\u003Cli>wp plugins-manager update_versions –user=”WordPress-username-or-email-or-id” –current-wp-version=”version-number(x.y.z)” –tested-version=”version-number(x.y.z)”\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Running an updates and an licensing server are two important parts of providing plugin updates to your users. You will also need to add code in your plugin to point towards that updates server. A popular class used for this purpose with free plugins, that requires you to do nothing more than include it and tell it the updates URL, is available here: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FYahnisElsts\u002Fplugin-update-checker\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002FYahnisElsts\u002Fplugin-update-checker\u003C\u002Fa> . For licenced plugins, a compatible class is available here: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDavidAnderson684\u002Fsimba-plugin-manager-updater\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002FDavidAnderson684\u002Fsimba-plugin-manager-updater\u003C\u002Fa> .\u003C\u002Fp>\n\u003Ch4>Other information\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>Privacy: The plugin does not contact any remote services. It also integrates with WordPress’s privacy tools (4.9.6+) for export\u002Fdeletion, and removes user data when users are deleted.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Some other plugins you may be interested in: \u003Ca href=\"https:\u002F\u002Fwww.simbahosting.co.uk\u002Fs3\u002Fshop\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.simbahosting.co.uk\u002Fs3\u002Fshop\u002F\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fupdraftplus.com\" rel=\"nofollow ugc\">https:\u002F\u002Fupdraftplus.com\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fgetwpo.com\" rel=\"nofollow ugc\">https:\u002F\u002Fgetwpo.com\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>This plugin is ready for translations, and we would welcome new translations (please use \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fsimba-plugin-updates-manager\" rel=\"nofollow ugc\">the wordpress.org translation system\u003C\u002Fa>).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>The MIT License (MIT)\u003C\u002Fp>\n\u003Cp>Copyright © 2015- David Anderson, https:\u002F\u002Fwww.simbahosting.co.uk\u003C\u002Fp>\n\u003Cp>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and\u002For sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\u003C\u002Fp>\n\u003Cp>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\u003C\u002Fp>\n\u003Cp>THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\u003C\u002Fp>\n","Provides a facility for distributing updates and handling licences and renewal reminders for your own WordPress plugins",40,21856,100,5,"2025-11-12T16:20:00.000Z","6.9.4","5.5","7.4",[54,55,56,57,58],"licences","plugin-updates","updates-server","wordpress-plugin-updates","wordpress-updates","https:\u002F\u002Fwww.simbahosting.co.uk\u002Fs3\u002Fshop\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimba-plugin-updates-manager.1.12.0.zip",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":47,"num_ratings":33,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":74,"tags":75,"homepage":77,"download_link":78,"security_score":47,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"updatepulse-server","UpdatePulse Server","1.0.10","Alexandre Froger","https:\u002F\u002Fprofiles.wordpress.org\u002Ffrogerme\u002F","\u003Cp>UpdatePulse Server allows developers to provide updates for software packages, including WordPress plugins and themes.\u003C\u002Fp>\n\u003Cp>Some example use cases:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>provide updates for premium plugins or themes, with a license key\u003C\u002Fli>\n\u003Cli>provide custom theme or plugin updates to clients of a webdesign agency and not intended for the general public\u003C\u002Fli>\n\u003Cli>provide updates for a desktop software that integrates with UpdatePulse Server’s update and license API\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Packages may be either uploaded directly, or downloaded automatically from configured Version Control Systems, public or private.\u003Cbr \u002F>\nPackage updates may require a license ; both packages and licenses can be managed through an API or a user interface within UpdatePulse Server.\u003C\u002Fp>\n\u003Ch3>Important notes\u003C\u002Fh3>\n\u003Cp>The target audience of this plugin is developers, not end-users.\u003C\u002Fp>\n\u003Cp>Zip PHP extension is required.\u003C\u002Fp>\n\u003Cp>For more information, available APIs, functions, actions and filters, see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fanyape\u002Fupdatepulse-server\u002Fblob\u002Fmain\u002FREADME.md\" rel=\"nofollow ugc\">the plugin’s full documentation\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Make sure to read the full documentation and the content of the “Help” tab under “UpdatePulse Server” settings before opening an issue or contacting the author.\u003C\u002Fp>\n\u003Ch3>Overview\u003C\u002Fh3>\n\u003Cp>This plugin adds the following major features to WordPress:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Package management:\u003C\u002Fstrong> to manage update packages, showing a listing with Package Name, Version, Type, File Name, Size, File Modified and License Status; includes bulk operations to delete and download, and the ability to delete all the packages.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Add Packages:\u003C\u002Fstrong> Upload update packages from a local machine to the server, or download them to the server from a Version Control System.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Version Control Systems:\u003C\u002Fstrong> Instead of manually uploading packages, use Version Control Systems to host packages, and download them to UpdatePulse Server automatically. Supports Bitbucket, Github and Gitlab, as well as self-hosted installations of Gitlab.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cloud Storage\u003C\u002Fstrong>: Instead of storing packages on the file system where UpdatePulse Server is installed, they can be stored on a cloud storage service, as long as it is compatible with Amazon S3’s API. Examples: Amazon S3, Cloudflare R2, Backblaze B2, MinIO, and many more!\u003C\u002Fli>\n\u003Cli>\u003Cstrong>UpdatePulse Server does not\u003C\u002Fstrong> install executable code from the Version Control System onto your installation of WordPress, and \u003Cstrong>does not\u003C\u002Fstrong> track your activity. It is designed to only store packages and licenses, and to provide updates when they are requested.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Licenses:\u003C\u002Fstrong> manage licenses with License Key, Registered Email, Status, Package Type, Package Slug, Creation Date, and Expiration Date; add and edit them with a form, or use the API for more control. Licenses prevent packages from being updated without a valid license. Licenses Keys are generated automatically by default and the values are unguessable (it is recommended to keep the default). When checking the validity of licenses, an extra license signature is also checked to prevent the use of a license on more than the configured allowed domains.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>API:\u003C\u002Fstrong> UpdatePulse Server provides APIs to manage packages and licenses. The APIs keys are secured with a system of tokens: the API keys are never shared over the network, acquiring a token requires signed payloads, and the tokens have a limited lifetime. For more details about tokens and security, see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fanyape\u002Fupdatepulse-server\u002Fblob\u002Fmain\u002Fdocs\u002Fmisc.md#nonce-api\" rel=\"nofollow ugc\">the Nonce API documentation\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>To connect their plugins or themes and UpdatePulse Server, developers can find integration examples in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAnyape\u002Fupdatepulse-server-integration\" rel=\"nofollow ugc\">UpdatePulse Server Integration Examples\u003C\u002Fa> repository – theme and plugin examples rely heavily on the popular \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FYahnisElsts\u002Fplugin-update-checker\" rel=\"nofollow ugc\">Plugin Update Checker\u003C\u002Fa> by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FYahnisElsts\" rel=\"nofollow ugc\">Yahnis Elsts\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Companion Plugins\u003C\u002Fh3>\n\u003Cp>The following plugins are compatible with UpdatePulse Server and can be used to extend its functionality:\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fstore.anyape.com\u002Fproduct\u002Fupdatepulse-blocks\u002F?wl=1\" rel=\"nofollow ugc\">Updatepulse Blocks\u003C\u002Fa>: a seamless way to display packages from UpdatePulse Server directly within your site using the WordPress Block Editor or shortcodes.\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fstore.anyape.com\u002Fproduct\u002Fupdatepulse-for-woocommerce\u002F?wl=1\" rel=\"nofollow ugc\">UpdatePulse for WooCommerce\u003C\u002Fa>: a WooCommerce connector for UpdatePulse Server, allowing you to sell licensed packages through your WooCommerce store, either on the same WordPress installation or a separate store site.\u003C\u002Fp>\n\u003Cp>Developers are encouraged to build plugins and themes \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fanyape\u002Fupdatepulse-server\u002Fblob\u002Fmain\u002FREADME.md\" rel=\"nofollow ugc\">integrated\u003C\u002Fa> with UpdatePulse Server, leveraging its publicly available functions, actions and filters, or by making use of the provided APIs.\u003C\u002Fp>\n\u003Cp>If you wish to see your plugin added to this list, please \u003Ca href=\"mailto:updatepulse@anyape.com\" rel=\"nofollow ugc\">contact the author\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Cp>Please read the plugin FAQ, there is a lot that may help you there!\u003C\u002Fp>\n\u003Cp>UpdatePulse Server is regularly updated for compatibility, and bug reports are welcome, preferably on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fanyape\u002Fupdatepulse-server\u002F\" rel=\"nofollow ugc\">Github\u003C\u002Fa>. Pull Requests from developers following the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002FWordPress-Coding-Standards\" rel=\"nofollow ugc\">WordPress Coding Standards\u003C\u002Fa> (\u003Ccode>WordPress-Extra\u003C\u002Fcode> ruleset) are highly appreciated and will be credited upon merge.\u003C\u002Fp>\n\u003Cp>In case the plugin has not been updated for a while, no panic: it simply means the compatibility flag has not been changed, and it very likely remains compatible with the latest version of WordPress. This is because it was designed with long-term compatibility in mind from the ground up.\u003C\u002Fp>\n\u003Cp>Each \u003Cstrong>bug\u003C\u002Fstrong> report will be addressed in a timely manner if properly documented – previously unanswered general inquiries and issues reported on the WordPress forum may take significantly longer to receive a response (if any).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Only issues occurring with WordPress core, WooCommerce, and default WordPress themes (incl. WooCommerce Storefront) will be considered.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Troubleshooting involving 3rd-party plugins or themes will not be addressed on the WordPress support forum.\u003C\u002Fstrong>\u003C\u002Fp>\n","Run your own update server for plugins, themes or any other software: manage packages & licenses, and provide updates to your users.",20,985,"2025-06-07T05:44:00.000Z","6.7.5","6.7","8.0",[21,55,76,58],"theme-updates","https:\u002F\u002Fgithub.com\u002Fanyape\u002Fupdatepulse-server\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fupdatepulse-server.1.0.10.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":69,"num_ratings":33,"last_updated":89,"tested_up_to":50,"requires_at_least":90,"requires_php":18,"tags":91,"homepage":18,"download_link":95,"security_score":47,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"credit-line-generator","Credit Line Generator","0.3.3","hatesspam","https:\u002F\u002Fprofiles.wordpress.org\u002Fhatesspam\u002F","\u003Cp>This plug-in is a typing aid for image credits on posts and pages for the Classic editor.\u003C\u002Fp>\n\u003Cp>It adds a button to your editor called ‘by’ in the Visual Editor and ‘credit’ in the Text Editor tab. Pressing the button conjures up a form that will let you fill out fields about the image, such as the name of the creator, and the URL of the license under which you are using the image.\u003C\u002Fp>\n\u003Cp>Press submit, and the plug-in will paste a nicely formatted string at the current cursor position of your editor.\u003C\u002Fp>\n\u003Cp>I am currently a happy user of my own plugin, and foresee no major changes in the future. Please let me know if there is any feature you could use.\u003C\u002Fp>\n\u003Cp>If you are using WordPress 5.0 or higher with the Gutenberg editor, use the Classic Editor through the plugin of the same name.\u003C\u002Fp>\n\u003Cp>There is a known problem when using this plugin in the Gutenberg editor with the Classic block: https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fpop-up-doesnt-work-if-classic-block-editor-is-itself-a-pop-up\u002F .\u003C\u002Fp>\n\u003Ch4>GDPR compliance\u003C\u002Fh4>\n\u003Cp>This plugin helps you helps you format personal data (such as the name and online address of a photographer), but it does not store such data itself.\u003C\u002Fp>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 3.9 or newer.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Note that earlier versions of this plug-in function perfectly fine with earlier versions of WordPress. Version 1.2.1 of the plug-in supports WordPress 3.3 through 3.8.x, but does not support the visual editor.\u003C\u002Fp>\n\u003Ch4>Examples\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cem>Photo\u003C\u002Fem> by John Smith.\u003C\u002Fli>\n\u003Cli>\u003Cem>Photo of a fire truck\u003C\u002Fem> by John Smith, \u003Cem>some rights reserved\u003C\u002Fem>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Rationale\u003C\u002Fh4>\n\u003Cp>My goal in writing this plugin was mainly to help me avoid typos.\u003C\u002Fp>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Cp>A setting will enable wrapping the credit line in HTML mark-up, so that you can style it more easily. This setting is off by default.\u003C\u002Fp>\n\u003Ch3>Alternatives\u003C\u002Fh3>\n\u003Cp>There are plugins that add a credit field to media, which you can then display in your post using a shortcode. Media Credit by Peter Putzer is an example:\u003C\u002Fp>\n\u003Cblockquote class=\"wp-embedded-content\" data-secret=\"WhzI1UjrmV\">\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmedia-credit\u002F\" rel=\"ugc\">Media Credit\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Cp>\u003Ciframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"“Media Credit” — Plugin Directory\" src=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmedia-credit\u002Fembed\u002F#?secret=sI38CzTODT#?secret=WhzI1UjrmV\" data-secret=\"WhzI1UjrmV\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\">\u003C\u002Fiframe>\u003C\u002Fp>\n\u003Cp>Plugins also exist that let you read IPTC meta data from image files and display it in your content using meta tags, for instance using JSM’s Adobe XMP \u002F IPTC for WordPress:\u003C\u002Fp>\n\u003Cblockquote class=\"wp-embedded-content\" data-secret=\"MaIcXfhvJI\">\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadobe-xmp-for-wp\u002F\" rel=\"ugc\">JSM Adobe XMP \u002F IPTC for WordPress\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Cp>\u003Ciframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"“JSM Adobe XMP \u002F IPTC for WordPress” — Plugin Directory\" src=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadobe-xmp-for-wp\u002Fembed\u002F#?secret=ztajv9U0Ah#?secret=MaIcXfhvJI\" data-secret=\"MaIcXfhvJI\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\">\u003C\u002Fiframe>\u003C\u002Fp>\n","A template for the Classic editor that allows you to copy and paste image credits into your posts. This makes it easier to avoid typos.",10,4160,"2025-12-10T15:34:00.000Z","3.9",[92,93,94,20,21],"credit","credits","image-credit","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcredit-line-generator.0.3.3.zip",{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":27,"downloaded":104,"rating":27,"num_ratings":27,"last_updated":105,"tested_up_to":72,"requires_at_least":106,"requires_php":107,"tags":108,"homepage":110,"download_link":111,"security_score":47,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"key-vault","License Key Vault","1.0.0","PalmsTrack","https:\u002F\u002Fprofiles.wordpress.org\u002Fpalmstrack\u002F","\u003Cp>License Key Vault is a secure admin dashboard solution for managing your software license keys.\u003Cbr \u002F>\nIt encrypts all stored keys in your database and allows on‑the‑fly decryption copying without exposing sensitive data.\u003Cbr \u002F>\nThe plugin supports CSV export and tagging for categorization, giving you complete control over your license information.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Encrypted Storage:\u003C\u002Fstrong> All license keys are stored encrypted in your WordPress database, ensuring that sensitive data remains secure.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>On‑the‑Fly Decryption:\u003C\u002Fstrong> Retrieve and copy your license keys securely without exposing plaintext keys in the interface.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CSV Export:\u003C\u002Fstrong> Easily back up your license keys using CSV export functionality.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Categorization:\u003C\u002Fstrong> Organize your license keys by product or category for easy management.\u003C\u002Fli>\n\u003C\u002Ful>\n","Securely store and manage your software license keys directly from your WordPress dashboard.",344,"2025-04-26T00:31:00.000Z","5.9","7.2",[109,97,22],"key-manager","https:\u002F\u002Fpalmstrack.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkey-vault.1.0.0.zip",{"slug":113,"name":114,"version":99,"author":115,"author_profile":116,"description":117,"short_description":118,"active_installs":27,"downloaded":119,"rating":27,"num_ratings":27,"last_updated":120,"tested_up_to":72,"requires_at_least":121,"requires_php":122,"tags":123,"homepage":127,"download_link":128,"security_score":129,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"license-mxt","License MXT – License Management System","Raju Ahmed","https:\u002F\u002Fprofiles.wordpress.org\u002Ffxraju\u002F","\u003Cp>License MXT provides a complete solution for managing software licenses within WordPress. Generate, validate and track license keys for your plugins and themes through an intuitive dashboard and RESTful API.\u003C\u002Fp>\n\u003Cp>Key Features:\u003Cbr \u002F>\n* License key generation and management\u003Cbr \u002F>\n* Real-time license validation via REST API\u003Cbr \u002F>\n* Site URL tracking and validation\u003Cbr \u002F>\n* Comprehensive dashboard with usage statistics\u003Cbr \u002F>\n* Multi-site license management\u003Cbr \u002F>\n* Search and filter capabilities\u003Cbr \u002F>\n* Easy integration with existing plugins\u002Fthemes\u003C\u002Fp>\n\u003Ch3>Description: License key generation\u003C\u002Fh3>\n\u003Ch3>Description: License key generation\u003C\u002Fh3>\n\u003Ch3>Integration Example\u003C\u002Fh3>\n\u003Cp>Basic license validation:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$response = wp_remote_post('https:\u002F\u002Fyour-site.com\u002Fwp-json\u002Flicense-mxt\u002Fv1\u002Fvalidate', [\n    'body' => [\n        'license_key' => 'YOUR-LICENSE-KEY',\n        'site_url'    => home_url()\n    ]\n]);\n\u003C\u002Fcode>\u003C\u002Fpre>\n","A powerful license management system for WordPress plugin and theme developers.",632,"2025-03-19T16:37:00.000Z","5.2","7.0",[21,124,22,125,126],"license-key","plugin-licensing","theme-licensing","https:\u002F\u002Fwww.webmxt.com\u002Fproduct\u002Flicense-mxt","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flicense-mxt.1.0.0.zip",92,{"attackSurface":131,"codeSignals":192,"taintFlows":268,"riskAssessment":349,"analyzedAt":359},{"hooks":132,"ajaxHandlers":188,"restRoutes":189,"shortcodes":190,"cronEvents":191,"entryPointCount":27,"unprotectedCount":27},[133,139,144,147,150,152,155,158,161,164,166,169,172,175,177,179,183,185],{"type":134,"name":135,"callback":136,"file":137,"line":138},"action","admin_footer","_js_vars","includes\\class-wp-license-manager-list-table.php",112,{"type":134,"name":140,"callback":141,"file":142,"line":143},"init","anonymous","includes\\class-wp-license-manager.php",61,{"type":134,"name":145,"callback":141,"file":142,"line":146},"plugins_loaded",137,{"type":134,"name":148,"callback":141,"file":142,"line":149},"admin_enqueue_scripts",150,{"type":134,"name":148,"callback":141,"file":142,"line":151},151,{"type":134,"name":153,"callback":141,"file":142,"line":154},"add_meta_boxes_wplm_product",154,{"type":134,"name":156,"callback":141,"file":142,"line":157},"save_post",155,{"type":134,"name":159,"callback":141,"file":142,"line":160},"admin_init",158,{"type":134,"name":162,"callback":141,"file":142,"line":163},"admin_menu",159,{"type":134,"name":162,"callback":141,"file":142,"line":165},162,{"type":134,"name":167,"callback":141,"file":142,"line":168},"admin_post_license_manager_add_license",163,{"type":134,"name":170,"callback":141,"file":142,"line":171},"admin_notices",170,{"type":134,"name":173,"callback":141,"file":142,"line":174},"wp_enqueue_scripts",182,{"type":134,"name":173,"callback":141,"file":142,"line":176},183,{"type":134,"name":140,"callback":141,"file":142,"line":178},185,{"type":180,"name":181,"callback":141,"file":142,"line":182},"filter","query_vars",188,{"type":134,"name":140,"callback":141,"file":142,"line":184},189,{"type":134,"name":186,"callback":141,"file":142,"line":187},"parse_request",190,[],[],[],[],{"dangerousFunctions":193,"sqlUsage":194,"outputEscaping":200,"fileOperations":27,"externalRequests":27,"nonceChecks":14,"capabilityChecks":33,"bundledLibraries":264},[],{"prepared":195,"raw":33,"locations":196},6,[197],{"file":198,"line":165,"context":199},"admin\\class-licenses-list-table.php","$wpdb->get_var() with variable interpolation",{"escaped":201,"rawEcho":11,"locations":202},52,[203,207,208,210,211,214,217,219,220,222,224,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255,257,259,261],{"file":204,"line":205,"context":206},"admin\\class-wp-license-manager-admin.php",379,"raw output",{"file":204,"line":205,"context":206},{"file":204,"line":209,"context":206},390,{"file":204,"line":209,"context":206},{"file":212,"line":213,"context":206},"admin\\partials\\licenses_list.php",15,{"file":215,"line":216,"context":206},"admin\\partials\\licenses_new.php",22,{"file":215,"line":218,"context":206},48,{"file":215,"line":218,"context":206},{"file":221,"line":213,"context":206},"admin\\partials\\settings_nag.php",{"file":137,"line":223,"context":206},295,{"file":137,"line":223,"context":206},{"file":137,"line":226,"context":206},296,{"file":137,"line":228,"context":206},342,{"file":137,"line":230,"context":206},393,{"file":137,"line":232,"context":206},394,{"file":137,"line":234,"context":206},395,{"file":137,"line":236,"context":206},400,{"file":137,"line":238,"context":206},561,{"file":137,"line":240,"context":206},701,{"file":137,"line":242,"context":206},860,{"file":137,"line":244,"context":206},876,{"file":137,"line":246,"context":206},891,{"file":137,"line":248,"context":206},955,{"file":137,"line":250,"context":206},984,{"file":137,"line":252,"context":206},1011,{"file":137,"line":254,"context":206},1015,{"file":137,"line":256,"context":206},1016,{"file":137,"line":258,"context":206},1020,{"file":137,"line":260,"context":206},1021,{"file":262,"line":263,"context":206},"public\\class-wp-license-manager-api.php",218,[265],{"name":266,"version":28,"knownCves":267},"Guzzle",[],[269,309,327,341],{"entryPoint":270,"graph":271,"unsanitizedCount":307,"severity":308},"search_box (includes\\class-wp-license-manager-list-table.php:279)",{"nodes":272,"edges":301},[273,278,283,287,289,293,295,299],{"id":274,"type":275,"label":276,"file":137,"line":277},"n0","source","$_REQUEST['orderby']",286,{"id":279,"type":280,"label":281,"file":137,"line":277,"wp_function":282},"n1","sink","echo() [XSS]","echo",{"id":284,"type":275,"label":285,"file":137,"line":286},"n2","$_REQUEST['order']",288,{"id":288,"type":280,"label":281,"file":137,"line":286,"wp_function":282},"n3",{"id":290,"type":275,"label":291,"file":137,"line":292},"n4","$_REQUEST['post_mime_type']",290,{"id":294,"type":280,"label":281,"file":137,"line":292,"wp_function":282},"n5",{"id":296,"type":275,"label":297,"file":137,"line":298},"n6","$_REQUEST['detached']",292,{"id":300,"type":280,"label":281,"file":137,"line":298,"wp_function":282},"n7",[302,304,305,306],{"from":274,"to":279,"sanitized":303},false,{"from":284,"to":288,"sanitized":303},{"from":290,"to":294,"sanitized":303},{"from":296,"to":300,"sanitized":303},4,"medium",{"entryPoint":310,"graph":311,"unsanitizedCount":307,"severity":326},"\u003Cclass-wp-license-manager-list-table> (includes\\class-wp-license-manager-list-table.php:0)",{"nodes":312,"edges":321},[313,314,315,316,317,318,319,320],{"id":274,"type":275,"label":276,"file":137,"line":277},{"id":279,"type":280,"label":281,"file":137,"line":277,"wp_function":282},{"id":284,"type":275,"label":285,"file":137,"line":286},{"id":288,"type":280,"label":281,"file":137,"line":286,"wp_function":282},{"id":290,"type":275,"label":291,"file":137,"line":292},{"id":294,"type":280,"label":281,"file":137,"line":292,"wp_function":282},{"id":296,"type":275,"label":297,"file":137,"line":298},{"id":300,"type":280,"label":281,"file":137,"line":298,"wp_function":282},[322,323,324,325],{"from":274,"to":279,"sanitized":303},{"from":284,"to":288,"sanitized":303},{"from":290,"to":294,"sanitized":303},{"from":296,"to":300,"sanitized":303},"low",{"entryPoint":328,"graph":329,"unsanitizedCount":33,"severity":340},"prepare_items (admin\\class-licenses-list-table.php:150)",{"nodes":330,"edges":338},[331,334],{"id":274,"type":275,"label":332,"file":198,"line":333},"$_REQUEST",166,{"id":279,"type":280,"label":335,"file":198,"line":336,"wp_function":337},"get_results() [SQLi]",195,"get_results",[339],{"from":274,"to":279,"sanitized":303},"high",{"entryPoint":342,"graph":343,"unsanitizedCount":33,"severity":340},"\u003Cclass-licenses-list-table> (admin\\class-licenses-list-table.php:0)",{"nodes":344,"edges":347},[345,346],{"id":274,"type":275,"label":332,"file":198,"line":333},{"id":279,"type":280,"label":335,"file":198,"line":336,"wp_function":337},[348],{"from":274,"to":279,"sanitized":303},{"summary":350,"deductions":351},"The wp-license-manager plugin, version 0.5.5, exhibits a generally positive security posture due to a lack of identified critical vulnerabilities and a robust adherence to some security best practices. The absence of any recorded CVEs and a clean record of past vulnerabilities suggest a history of secure development or effective patching. The plugin also demonstrates a minimal attack surface with no identified AJAX handlers, REST API routes, shortcodes, or cron events that could be directly exploited. Furthermore, the use of prepared statements for the majority of its SQL queries and the presence of nonce and capability checks are commendable security measures.\n\nHowever, the static analysis reveals some areas of concern that warrant attention. The taint analysis indicates two high-severity flows with unsanitized paths, which could potentially lead to security issues if data is not properly handled before being used in sensitive operations. While the overall output escaping is relatively good, a significant percentage (37%) of outputs are not properly escaped, presenting a risk of Cross-Site Scripting (XSS) vulnerabilities if user-controlled data is involved. The inclusion of the Guzzle library, while not inherently a vulnerability, means the plugin relies on an external dependency which itself could have its own vulnerabilities or require updates.\n\nIn conclusion, wp-license-manager v0.5.5 has strong foundational security practices, particularly in its limited attack surface and SQL query handling. The absence of known historical vulnerabilities is a significant strength. Nevertheless, the identified high-severity taint flows and the percentage of unescaped outputs are notable weaknesses that require further investigation and remediation to ensure the plugin's overall security. The reliance on the Guzzle library should also be monitored for potential security updates.",[352,354,357],{"reason":353,"points":213},"High severity taint flows with unsanitized paths",{"reason":355,"points":356},"Significant percentage of unescaped outputs",8,{"reason":358,"points":14},"Bundled library (Guzzle) requires monitoring","2026-03-16T22:30:01.914Z",{"wat":361,"direct":370},{"assetPaths":362,"generatorPatterns":365,"scriptPaths":366,"versionParams":367},[363,364],"\u002Fwp-content\u002Fplugins\u002Fwp-license-manager\u002Fcss\u002Fwp-license-manager-admin.css","\u002Fwp-content\u002Fplugins\u002Fwp-license-manager\u002Fjs\u002Fwp-license-manager-admin.js",[],[364],[368,369],"wp-license-manager-admin.css?ver=","wp-license-manager-admin.js?ver=",{"cssClasses":371,"htmlComments":372,"htmlAttributes":373,"restEndpoints":382,"jsGlobals":383,"shortcodeOutput":384},[],[],[374,375,376,377,378,379,380,381],"wp_license_manager_product_bucket","wp_license_manager_product_file_name","wp_license_manager_product_version","wp_license_manager_product_tested","wp_license_manager_product_requires","wp_license_manager_product_updated","wp_license_manager_product_banner_low","wp_license_manager_product_banner_high",[],[],[]]