Releases: nonstopmarketing/EZ-Plugin-Deploy
Release list
v1.8.5 — Clearer Cloudflare-challenge message
Not a bug — a clearer message
The intermittent "Unexpected server response" some users hit was a Cloudflare security challenge ("Just a moment…") intercepting the admin-ajax.php request and returning an HTML challenge page instead of JSON. It's not a plugin error and not a timeout — reloading the page refreshes your Cloudflare clearance cookie and the next attempt goes through.
Change
The drop zone and EZ Delete now detect a challenge/HTML response and show:
Blocked by a Cloudflare security challenge — not a plugin error. Reload the page (F5) to refresh your clearance, then try again.
…instead of the generic error, so it's obvious what happened.
Install
Install the attached wp-ez-plugin-deploy-1.8.5.zip.
v1.8.4 — Fix "Unexpected server response" on install
Root cause
WP_Ajax_Upgrader_Skin lives in its own file that WordPress core only loads inside its built-in update AJAX handlers — not for a custom AJAX action like this plugin's. Instantiating it when the class wasn't loaded threw a fatal, producing a 500 with an HTML error body, which the browser couldn't parse → "Unexpected server response."
Fixes
- Explicitly
require_oncethe skin class file when the class is missing - Disable
display_errorsinside the handler so PHP notices/deprecations can't leak into and corrupt the JSON response - Register a shutdown handler that returns any remaining fatal as a JSON error, so if anything else ever fails you'll see the actual message and line number instead of a generic 500
- Bail with a clear message if
WP_Filesystem()can't initialize
Install
Download and install the attached wp-ez-plugin-deploy-1.8.4.zip.
v1.8.3 — Fix zip packaging (backslash path separators)
The real root cause
Every prior "Plugin file does not exist" / nested-folder failure traces back to how the zip was built, not the PHP.
PowerShell's Compress-Archive wrote zip entries with Windows backslash separators (wp-ez-plugin-deploy\readme.txt). On a Linux server, WordPress's unpacker couldn't see a single root directory in those entries, so it:
- Wrapped everything in a folder named after the zip filename (
wp-ez-plugin-deploy-1.8.x/) - Converted backslashes to slashes on extraction
…yielding wp-ez-plugin-deploy-1.8.x/wp-ez-plugin-deploy/wp-ez-plugin-deploy.php and a broken activation path.
Fix
Release zips are now produced with git archive, which writes proper forward-slash paths plus an explicit directory entry. WordPress detects the single root and installs to wp-content/plugins/wp-ez-plugin-deploy/ correctly.
Action required
- Delete any leftover
wp-ez-plugin-deploy-*folders inwp-content/plugins/via File Manager. - Download and install the
wp-ez-plugin-deploy-1.8.3.zipattached to this release (not a self-built zip).
It will now activate cleanly.
v1.8.2 — Fix nested install folders
Fix
Recurring "Plugin file does not exist" activation error caused by plugins installing into a wrongly-nested folder like my-plugin-1.2.3/my-plugin/.
WordPress's installer only descends one level into a nested archive, so a zip whose contents sit two levels deep ends up with the destination folder named after the outer wrapper (often the zip filename + version). That path doesn't match the plugin's real location, so activation 500s.
What changed
- During drop-zone installs, the plugin now hooks
upgrader_source_selectionto locate the real plugin folder inside the unpacked source and rename it to the clean detected slug before WordPress moves it intowp-content/plugins/. Any nesting is collapsed; the folder always lands with the correct name.
Note on existing broken installs
If you already have a wrongly-named folder on disk (e.g. wp-ez-plugin-deploy-1.8.1/), delete it via File Manager first, then install wp-ez-plugin-deploy-1.8.2.zip normally.
Install
Upload wp-ez-plugin-deploy-1.8.2.zip via Plugins → Add New → Upload Plugin, or drop it onto the EZ Plugin Deploy zone.
v1.8.1 — Fix "Plugin file does not exist" on update
Fix
"Plugin file does not exist" error when installing an update over an existing plugin.
The fallback plugin-file scan was excluding any path already listed in the pre-deactivation active plugins snapshot — which is exactly where the updated plugin lives. Replaced with get_plugins() scoped to the known slug folder, which has no such exclusion.
Install
Drop wp-ez-plugin-deploy-1.8.1.zip onto the EZ Plugin Deploy zone.
v1.8.0 — Fix EZ Delete and old-version removal
Fixes
EZ Delete wasn't deleting and old plugin version wasn't being removed before install — both caused by the same root issue: WP_Filesystem on shared hosting (like SiteGround, WP Engine, Cloudways) silently fails when it can't write files without FTP credentials, even though the web process itself has full permission.
Changes
- All file deletion now uses native PHP
unlink()/rmdir()directly, bypassingWP_Filesystementirely - Zip slug is now read from the uploaded file before
File_Upload_Upgradermoves it — previously the slug read could fail after the move, leaving$zip_slugempty so nothing got deactivated/deleted
Install
Drop wp-ez-plugin-deploy-1.8.0.zip onto the EZ Plugin Deploy zone (or upload via Plugins → Add New).
v1.7.2 — EZ Delete restored on all inactive plugins
Change
Reverts v1.7.1 — EZ Delete is restored on all inactive plugin rows. It is needed for removing dev plugins that have file permission issues with WordPress's native delete.
Install
Upload wp-ez-plugin-deploy-1.7.2.zip via Plugins → Add New → Upload Plugin, or drop it onto the EZ Plugin Deploy zone.
v1.7.1 — EZ Delete scoped to own row
Fix
EZ Delete link now only appears on the EZ Plugin Deploy row in the plugins list. Previously it was injected on every inactive plugin row, which was unintended.
Install
Upload wp-ez-plugin-deploy.zip via Plugins → Add New → Upload Plugin, or drop it onto the EZ Plugin Deploy zone.
v1.7.0 — Drop zone on Add Plugins page
What's New
- Drop zone now appears on wp-admin/plugin-install.php (Add Plugins page) in addition to plugins.php
Previous release highlights (v1.6.x)
- v1.6.1 — Fixed 500 / "Unexpected server response" error caused by plugin activation hooks that produce output (wrapped
activate_plugin()in output buffering) - v1.6.0 — Full security hardening: nonce-before-capability, ZIP magic-byte validation, strict slug allowlist, realpath confinement, fixed undefined variable in fallback scan, activation hooks no longer suppressed
Installation
Download wp-ez-plugin-deploy.zip and upload via Plugins → Add New → Upload Plugin, or drop it onto the EZ Plugin Deploy zone itself.
Full changelog
See readme.txt