We’re pleased to announce that we’ve launched a new, revamped WooCommerce Beta Tester plugin! The plugin is now hosted on WordPress.org, and you can get it on WordPress.org or install it through the Plugins section of your site admin.

For more details on how to beta test WooCommerce, please refer to one of our earlier posts.

Features

WooCommerce Beta Tester allows you to try out new versions of WooCommerce before they are officially released. You should use this plugin with caution and not on production sites, as beta releases may not be stable.

This plugin allows you to:

  • Easily switch between different released and unreleased WooCommerce versions.
  • Choose one channel to switch versions from (beta/rc/stable).
  • Check release notes of the current chosen version.
  • Submit bug reports on GitHub using the current chosen version (and automatically populate the System Status Report in the bug report)

Technical details

The old version of the plugin used to rely on GitHub’s API and getting information from that in order to download beta/rc/stable versions. For example, if you visit GitHub’s API for WooCommerce you will be provided with a JSON structure of all releases. The plugin would then filter and group the releases based on the results from this API.

However, there is a technical limitation on WordPress.org – they do not host plugins that update other plugins from non-WordPress.org sources, so as a consequence of that the only way you could download our beta testing plugin was from GitHub. With the revamp, we now rely on WordPress.org’s API for WooCommerce, which provides us a JSON structure similar to that of GitHub’s.

Now that we have all the information we need from the WordPress.org API, the next step is to do the actual switch to the targeted WooCommerce version. We achieve that by using the filters pre_set_site_transient_update_plugins and plugins_api_result, by hooking on the WooCommerce plugin and change its zip_url, that is, download_link. We can also do some other fancy changes, like generating a link to the changelog for example.

The source code of the plugin is hosted publicly on GitHub, so feel free to browse around it or do some contributions. 🙂 If you notice a bug please open a report on GitHub.