Skip to content

pbiron/updates-api-inspector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Updates API Inspector

Contributors: pbiron, afragen
Tags: updates-api
Requires at least: 4.6
Tested up to: 5.5.0
Stable tag: 0.1.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Z6D97FA595WSU

Inspect various aspects of the WordPress Updates API

Description

The WordPress Updates API is pretty much a mystery to many developers for many reasons, not least of which is the fact that there is no documentation for it.

For plugins hosted in the WordPress Plugin Directory and themes hosted in the WordPress Theme Directory (and core itself), the API "just works".

Plugins and themes hosted externally (such as premium plugins/themes) need to hook into the API and ensure the proper information is populated in the proper site transients so that core can offer updates for those externally hosted plugins/themes. What site transients are those:

  • update_plugins
  • update_themes

(and of course, update_core for core updates).

This plugin attempts to demystify the Updates API by allowing you to inspect:

  • how the API is queried by core
  • what the API returns in respose to a query
  • what's in the site transients core uses when offering updates to admin users (whether manual or auto-updates)

At this point, this plugin is very preliminary (it is version 0.1.1 after all), but I'm releasing it in it's current state because of the new Auto-updates UI in WordPress 5.5.0. While many externally hosted plugins/themes have been hooking into API for years, the new auto-updates UI has certain requirements for how the site transients are populated and not all externally hosted plugins/themes have populated them such that the new UI will work properly (see Recommended usage of the Updates API to support the auto-updates UI for Plugins and Themes in WordPress 5.5).

My hope is that by providing an easy way for developers to inspect the API queries/responses and the site transients core populates from them, they will more easily be able to update their code so that the new UI works properly for them.

In future versions, I plan to add many other features, as well as more extensive on-screen help of an "educational" nature.

Installation

From your WordPress dashboard

  1. Go to Plugins > Add New and click on Upload Plugin
  2. Upload the zip file
  3. Activate the plugin

Screenshots

1. The Request for plugin updates

The Request for plugin updates

2. The API Response for plugin updates

The API Response for plugin updates

3. The Transient Value as Set for plugin updates

The Transient Value as Set for plugin updates

4. The Transient Value as Read for plugin updates

The Transient Value as Read for plugin updates

5. Multisite

Multisite

Frequently Asked Questions

Why isn't the Updates API documented?

That's a good question, and I honestly don't know the answer.

What's the best hook to use for injecting information about by externally hosted plugin or theme into the site transients?

There is no best hook!

The most common hooks used are probably:

A number of other hooks can be used, but except in very special* cases I wouldn't recommend them...so I'm not even going to list what they are :-)

Many considerations go into deciding which hook to use and I couldn't possibly give those considerations their due here...so I won't even try.

Will this plugin work in versions of WordPress prior to 5.5.0?

It should! My main motivation for releasing it now is to help developers of externally hosted plugins/themes prepare for the release of 5.5.0, this plugin should work just fine with previous versions (although I have only tested it with 5.5.0).

Does this plugin work in multisite?

Yes it does!

In non-multisite, the Updates API Inspector menu item appers in Tools.

In multisite, this plugin can only be network activated (since that's where updates happen) and the menu item appears at the top-level of Network Admin.

Can I contribute to this plugin?

Yes you can! Development happens on GitHub. If you find a bug or have other suggestions, please open an issue there. Pull requests accepted.

Changelog

0.1.1

  • Scrap the use of AJAX: run the update check before the tool page is rendered and output just what we need to.
  • Also adds a minimal help screen and other various code/string cleanup.

0.1.0

  • init commit.

About

Inspect various aspects of the WordPress Updates API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages