How to Integrate WordPress Plugin Update Notifications Into Your Commercial Plugin

If you purchase through a link on our site, we may earn a commission. Learn more.

Plugins hosted on the WordPress repository enjoy a very neat and integrated update procedure whereby as soon as you upload a new version of the plugin, the users will get a notification in their dashboard saying that there is a new version available. However if on the other hand your plugin is not hosted on the repository, you might be wondering if you can achieve the same thing. As you might have guessed, the answer is yes!
Table of Contents

Plugins hosted on the WordPress repository enjoy a very neat and integrated update procedure whereby as soon as you upload a new version of the plugin, the users will get a notification in their dashboard saying that there is a new version available.

However if on the other hand your plugin is not hosted on the repository, you might be wondering if you can achieve the same thing. As you might have guessed, the answer is yes!

A Github-hosted project by Jeremy Clark provides all the code you need:

https://github.com/jeremyclark13/automatic-theme-plugin-update

Here’s another free solution by W-Shadow:

http://w-shadow.com/blog/2010/09/02/automatic-updates-for-any-plugin/

And yet another one by Jason Gill:

http://www.gilluminate.com/2011/12/23/host-your-own-custom-wordpress-plugin-updater/

If you’d like to build it yourself, there is an excellent tutorial on WP.Tutsplus.com:

http://wp.tutsplus.com/tutorials/plugins/a-guide-to-the-wordpress-http-api-automatic-plugin-updates/

There is also a Codecanyon item named WordPress Plugin Update which does a similar job and might be worth checking out too.

Preventing Updates

Many developers also develop plugins for particular clients. In this case, they might want to prevent WordPress from sending out any data to WordPress.org when doing update checks. The code below, provided by Mark Jaquith, will do the trick:

[php]
function cws_hidden_plugin_12345( $r, $url ) {
if ( 0 !== strpos( $url, ‘http://api.wordpress.org/plugins/update-check’ ) )
return $r; // Not a plugin update request. Bail immediately.
$plugins = unserialize( $r[‘body’][‘plugins’] );
unset( $plugins->plugins[ plugin_basename( __FILE__ ) ] );
unset( $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ] );
$r[‘body’][‘plugins’] = serialize( $plugins );
return $r;
}

add_filter( ‘http_request_args’, ‘cws_hidden_plugin_12345’, 5, 2 );
[/php]

If you enjoyed this post, make sure to subscribe to WPMayor’s RSS feed.

Jean Galea

Jean Galea is an investor, entrepreneur, and blogger. He is the founder of WP Mayor, the plugins WP RSS Aggregator and Spotlight, as well as the Mastermind.fm podcast. His personal blog can be found at jeangalea.com.

Discover more from our archives ↓

Popular articles ↓

Share Your Thoughts

Your email address will not be published. Required fields are marked *

Claim Your Free Website Tip 👇

Leave your name, email and website URL below to receive one actionable improvement tip tailored for your website within the next 24 hours.

"They identified areas for improvement that we had not previously considered." - Elliot

By providing your information, you'll also be subscribing to our weekly newsletter packed with exclusive content and insights. You can unsubscribe at any time with just one click.