Plugin Update Checker

This is a custom update checker library for WordPress plugins. It lets you add automatic update notifications and one-click upgrades to your commercial and private plugins. All you need to do is put your plugin details in a JSON file, place the file on your server, and pass the URL to the library. The library periodically checks the URL to see if there's a new version available and displays an update notification to the user if necessary.

From the users' perspective, it works just like with plugins hosted on WordPress.org. The update checker uses the default plugin upgrade UI that will already be familiar to most WordPress users.

See this blog post for more information and usage instructions.

Getting Started

Self-hosted Plugins

  1. Make a JSON file that describes your plugin. Here's a minimal example:

     {
         "name" : "My Cool Plugin",
         "version" : "2.0",
         "author" : "John Smith",
         "download_url" : "http://example.com/plugins/my-cool-plugin.zip",
         "sections" : {
             "description" : "Plugin description here. You can use HTML."
         }
     }
    

    See this table for a full list of supported fields.

  2. Upload this file to a publicly accessible location.
  3. Download the update checker, unzip the archive and copy the plugin-update-checker directory to your plugin.
  4. Add the following code to the main plugin file:

     require 'plugin-update-checker/plugin-update-checker.php';
     $myUpdateChecker = PucFactory::buildUpdateChecker(
         'http://example.com/path/to/metadata.json',
         __FILE__
     );
    

Notes

Plugins Hosted on GitHub

(GitHub support is experimental.)

  1. Download the latest release, unzip it and copy the plugin-update-checker directory to your plugin.
  2. Add the following code to the main file of your plugin:

     require 'plugin-update-checker/plugin-update-checker.php';
     $className = PucFactory::getLatestClassVersion('PucGitHubChecker');
     $myUpdateChecker = new $className(
         'https://github.com/user-name/plugin-repo-name/',
         __FILE__,
         'master'
     );
    

    The third argument specifies the branch to use for updating your plugin. The default is master. If the branch name is omitted or set to master, the update checker will use the latest release or tag (if available). Otherwise it will use the specified branch.

  3. Optional: Add a readme.txt file formatted according to the WordPress.org plugin readme standard. The contents of this file will be shown when the user clicks the "View version 1.2.3 details" link.

Notes

If your GitHub repository requires an access token, you can specify it like this:

$myUpdateChecker->setAccessToken('your-token-here');

The GitHub version of the library will pull update details from the following parts of a release/tag/branch:

Resources