Single Click Plugin Updater WordPress Plugin
This plugin extends the plugin update notification feature introduced in WordPress 2.3 by adding an “update automatically” link to update notifications. When you click the link, the new version of the corresponding plugin is downloaded and installed automatically. It also lets you know which plugins have update notifications enabled.
Update 06.04.2008 : Version 2.0.1 with much more features is out. More info here.
Download it now! (37 Kb)
How It Works (In Detail)
To be able to display the new link this plugin will hide the original update notification and display a slightly modified one. Here’s what happens when you click the “update automatically” link :
- If the plugin that needs to be updated is active, it is deactivated.
- The Plugin Updater retrieves the plugin’s page from Wordpress.org and finds the download link.
- The new version is downloaded and extracted to the wp-content/plugins directory (this directory must be writable by the Updater plugin).
- If necessary, the updated plugin is re-activated.
All this happens in the background, so if everything works OK you’ll end up back at the “Plugins” tab. If there are any errors the plugin will display an error message and abort the upgrade.
Requirements
- WordPress 2.3 or newer.
- CURL library installed or allow_url_fopen enabled in php.ini. If you don’t know what that means, don’t worry - at least one of these is available on most webservers by default.
- The /plugins directory must be writable by WordPress. The exact file permissions depend on the server configuration. Read more about file permissions. 666 or 755 may be sufficient, and 777 will always work, though this is not recommended due to security risks.
The plugin has been tested and works under Firefox 2.x, Opera 9.x and, as of version 1.0.5, Internet Explorer.
Installation
To install the plugin, please follow these steps:
- Download the one-click-plugin-updater.zip file (below) to your computer.
- Unzip the file.
- Upload “one-click-plugin-updater” folder to the “/wp-content/plugins/” directory.
- Activate the plugin through the ‘Plugins’ menu in WordPress.
That’s it.
Download
one-click-plugin-updater.zip (40 Kb)

August 21st, 2008 at 2:03 am
[...] plugin instalowałem przez wtyczkę One Click Plugin Updater (również polecam) ale według danych w internecie aby ta wtyczka działała [...]
August 20th, 2008 at 3:53 pm
@José LuÃs - I can guess why that is, but I don’t know how to fix that. Ah well.
August 20th, 2008 at 3:44 pm
Version 2.4.1 fixed PCLZip error on updates (didn’t test on installation of new plugins yet).
But I had to set Plugin Updater Module to “Wordpress core”, since every time I ordered an update it just told me the plugin was “activated” but didn’t update at all…
August 20th, 2008 at 12:16 pm
2.0.8 - 2.4 use the same version of PclZip, so that’s probably not the problem. An error like that might appear if the download was corrupted somehow, but then it should be only temporary - the update should work after a few tries. Besides, the download size shown in the log is correct, so I doubt it was corrupted.
If the bug was happening on my own server I’d hack the plugin to leave the temporary downloaded file in place and look at it (the .zip) myself to see why it doesn’t work. I’d also directly test PclZip on that file.
Obviously I can’t do any of that with your server, so I’ll only attempt to make the file extraction algorithm a bit more robust.
August 20th, 2008 at 5:32 am
@Sam L - I am getting the exact same thing. I’ve tried the permissions thing. Nothing…ideas?
August 20th, 2008 at 2:36 am
Hey,
As of version 2.4 I can’t upload new plugins/themes from web anymore, it gives me the error below. (when trying to install a random plugin as an example)
Downloading ‘http://downloads.wordpress.org/plugin/ozh-admin-drop-down-menu.zip’…
Downloaded 11998 bytes.
Will save the new version archive (zip) to a temporary file ‘/var/tmp/PLGy67yfX’.
About to extract ‘/var/tmp/PLGy67yfX’.
Extracting files from /var/tmp/PLGy67yfX…
So far, the type is set to ‘plugin’.
gzopen() found, will use PclZip.
PclZip failed!
PclZip says : ‘PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature’
Any help would be much appreciated!
August 19th, 2008 at 1:16 pm
@Troy - Might it be that you’re using suPHP or Suhosin (spelling?) and the problematic files/directories have a different owner or group than the updater’s files?
August 19th, 2008 at 6:35 am
@White Shadow - Safe mode is off and I have tried every combination of 775, 755 and 777 on all directories and files and still no luck…
August 17th, 2008 at 8:30 pm
@JHS - Okay, now I’m definitely going to fix it in the next update. Expect it sometime during next week.
August 17th, 2008 at 8:02 pm
I get the same message that Ben mentioned . . . and I’ve tried it on multiple sits with the same result. So I have reverted to One Click Install on all sites until the problem is resolved. I love One Click Install and have been using it for a long time, but this plug-in simply will not work.
August 17th, 2008 at 5:38 pm
@Jon Soroko - The problem with the miniguide is actually an oversight on my part; a bug. You can manually enable the miniguide in Plugins -> Upgrade Settings.
To install a plugin, go to Plugins -> Install a Plugin. Likewise, use Design -> Install a Theme for themes. Simple
August 17th, 2008 at 5:15 pm
I like this plugin quite a lot - but two difficulties. First, in the More/Hide segment on the banner towards the top of my dashboard pages - this is what I get when I click “More”:
Cannot load one_click_miniguide.
Second - since One-Click Install has been subsumed into One-Click-Plugin-Updater - how does one use it to install a theme (in the description in the plugins menu, theme installation is mentioned). Or to install a new (rather than updated) plugin?
My apologies if the answer to these questions are staring me in the face - but I’m not getting it.
O.C.P.U. is still a great plugin - and will clearly save lots of time and energy - but I’m very lazy, and I want the features of One-Click Install, too.
Jon Soroko
August 12th, 2008 at 10:58 am
@José LuÃs - I don’t think so, though it may affect the access permissions of other plugin files (when it updates them). Maybe that has something to do with it.
August 12th, 2008 at 4:15 am
I noticed that disabling One Click Plugin Updater, Wordpress core update function works fine. Does this plugin enables any normally unused library?
August 11th, 2008 at 3:32 am
[...] One Click Plugin Updater Upgrade plugins with a single click, install new plugins or themes from an URL or by uploading a file, see which plugins have update notifications enabled, control how often WordPress checks for updates, and more. By Janis Elsts. [...]
August 9th, 2008 at 6:05 pm
[...] habe nämlich das Plugin One click Plugin Updater installiert, ihr könnt damit eure Plugins selber über ein Menü [...]
August 9th, 2008 at 12:09 pm
@Troy - I still think the log in your previous comment clearly indicates a permission issue. Check the permissions on akismet/akismet.php; also check which user owns those files. Is safemode on?
August 9th, 2008 at 8:04 am
@White Shadow - I have checked the chmod of the plugins and themes directory to 777 and snoopy says it’s okay on the upgrade settings page. Any other ideas?
Much appreciated.
August 9th, 2008 at 1:01 am
@Ben - From the log I can tell what’s going on, but I don’t know why.
First the plugin tries to create the temp. file in “/tmp”, but apparently that directory doesn’t exist and tempnam() returns an emty string. This is not exactly what it (PHP) should do - it should instead create the file in the system’s default temp. folder.
So the the plugin tries again (because it’s persistent and tries to be reasonably failsafe), attempting to create the temporary file in it’s own directory which definitely must exist. But this time, for some inexplicable reason, the tempnam() function reports that it has created the temp. file in “/var/tmp”, which, according to your comment, doesn’t exist.
As far as I can tell it’s a PHP/server/configuration bug.
[Oh, the humanity. I should probably go get some sleep.]
August 8th, 2008 at 11:27 pm
I seem to keep getting the same message:
Can’t create a temporary file ‘/var/tmp/PLGVUPqpR’.
The full installation log is below :
Plugin directory is ‘/f1/content/tictechtoe/public/wp-content/plugins/’
Checking to see if /f1/content/tictechtoe/public/wp-content/plugins/ is writable.
Okay.
Nonce verification passed.
About to upgrade 1 plugins.
Upgrading ’stats/stats.php’, download URL is ‘http://downloads.wordpress.org/plugin/stats.1.3.2.zip’.
The plugin that needs to be upgraded is not active. Good.
Downloading ‘http://downloads.wordpress.org/plugin/stats.1.3.2.zip’…
Downloaded 229591 bytes.
Will save the new version archive (zip) to a temporary file ”.
Warning: couldn’t create a temporary file at ”.
Using alternate temporary file ‘/var/tmp/PLGVUPqpR’.
Error: couldn’t create a temporary file ‘/var/tmp/PLGVUPqpR’.
Main loop finished.
That temp directory just doesn’t exist on the server, maybe I’m just missing a setting or something? Please help, and sorry for sounding like a noob.
August 8th, 2008 at 1:14 pm
@Mirco - Unfortunately this “error 500″ is a very generic, non-descriptive and fairly rare error. It’s nigh impossible to tell why it happens unless you do some heavy research.
From what I’ve found after googling wordpress plugins & error 500, it appears that this error is usually caused either by an incorrect .htaccess file or by file permissions.
Take a look at what permissions the actual one-click-plugin-updater files have. I can’t say what, exactly, they need to be, but they should have the same permissions as other plugin’s files. For example, if you have Akismet working and akismet.php is 755, then all .php files in the one-click-plugin-updater directory should also have 755 permissions.
If that doesn’t help then .htacess would be the next thing to look at.
August 8th, 2008 at 12:55 pm
I get an Error 500 from my server, when trying to update plugins after installing the new one click version. I checked the permissions in my plugin folder and its set to 755, so it should work according to the manual. After that i check for the libcurl library and it’s also running on the server.
August 8th, 2008 at 2:22 am
@Donal - In that case I’m out of ideas.
August 8th, 2008 at 2:14 am
@White Shadow -
I replaced that file and got the same result I’m afraid.
August 8th, 2008 at 12:34 am
@Donal - I think this is caused by the change in the zip library… both plugins use essentially the same library, but OneClick Installer uses an older version, and my plugin uses the newer version that comes with WordPress itself.
You can check if this is really the cause by replacing pclzip.lib.php in the plugins folder with the one from this archive. If it starts working OK after that then we’ll know it’s the ZIP library.
August 8th, 2008 at 12:20 am
I am having the same problem as Efe (comment 238) and had to deactivate the plugin. It only started happening when One Click Installer was upgraded and changed to One Click Plugin Updater.
August 7th, 2008 at 1:09 pm
@Troy Dean - This most likely means the plugin doesn’t have write access to your “wp-content/plugins” folder. Depending on your server configuration you may need to chmod it to 755 or 777 (does that make sense?
).
August 7th, 2008 at 1:03 pm
@Jeremy - You can find something similar in the WordPress Repository - the revision log and this page have some of my comments.
August 7th, 2008 at 12:59 pm
Whenever I attempt to update a plugin using WP 2.5 and PHP 5 I get the following error message:
Any clues?
If I can get this to work I’ll save myself a heap of time. Any assistance much appreciated.
TWarning: file_put_contents(/home/aclass/public_html/wp-content/plugins/akismet/akismet.gif) [function.file-put-contents]: failed to open stream: Permission denied in /home/aclass/public_html/wp-content/plugins/one-click-plugin-updater/oneclick-plugin-updater.php on line 1047
Can’t create file akismet/akismet.gif in /home/aclass/public_html/wp-content/plugins/!
Main loop finished.
Can’t create file ‘akismet/akismet.gif’ in ‘/home/aclass/public_html/wp-content/plugins/’
The full installation log is below :
Error reporting set to E_ALL.
Plugin directory is ‘/home/aclass/public_html/wp-content/plugins/’
Checking to see if /home/aclass/public_html/wp-content/plugins/ is writable.
Okay.
Nonce verification passed.
About to upgrade 1 plugins.
Upgrading ‘akismet/akismet.php’, download URL is ‘http://downloads.wordpress.org/plugin/akismet.zip’.
The plugin that needs to be upgraded is not active. Good.
Downloading ‘http://downloads.wordpress.org/plugin/akismet.zip’…
Downloaded 12606 bytes.
Will save the new version archive (zip) to a temporary file ‘/tmp/PLGh1IfAw’.
About to extract ‘/tmp/PLGh1IfAw’.
Extracting files from /tmp/PLGh1IfAw…
So far, the type is set to ‘plugin’.
Need to load PclZip.
gzopen() found, will use PclZip.
Starting extraction to folder ‘/home/aclass/public_html/wp-content/plugins/’.
Extracting akismet/akismet.gif
Can’t create file akismet/akismet.gif in /home/aclass/public_html/wp-content/plugins/!
Main loop finished.
August 7th, 2008 at 12:49 pm
Hi White Shadow,
Are there any release notes for this plugin that I can read? I’m always curious to know what’s changed from version to version with WP plugins! But I can’t find any for yours here or on the WordPress Extend page.
Cheers,
Jeremy