Free Plugin by DrGlenn

Force Reinstall / Update

A no‑nonsense utility that temporarily makes WordPress think all plugins have an available update so you can quickly reinstall them from Dashboard → Updates. Deactivate when you’re done to clear the fake notices.

Overview

When WordPress thinks a plugin has an update, the “reinstall” flow becomes a one‑click path. This plugin safely fabricates those update notices for all installed plugins (except itself), pointing the download package to the official WordPress.org repository. Deactivate it and the fake notices disappear immediately.

Zero tracking • Tiny footprint • Safe fallbacks • Plays nice with your theme and other plugins.

Why You’ll Like It

No bloat

Single‑purpose helper for fast cleanup/repairs—especially after a compromised site or messy update.

Fast workflow

Reinstall everything from the native Updates screen—no manual zip juggling.

Safe by design

Only touches the update transient and uses .org package URLs. Deactivation clears its changes.

Features (v1.1)

  • Injects harmless “update available” entries for all installed plugins (skips itself).
  • Packages point to official WordPress.org download URLs for each plugin slug.
  • Respects your site version and sets tested accordingly.
  • On deactivation, immediately deletes the update_plugins transient to remove fake notices.
  • Displays a persistent admin warning while active so you remember to turn it off.

What It Touches

add_filter('site_transient_update_plugins', 'force_all_plugin_updates');
register_deactivation_hook(__FILE__, 'force_reinstall_on_deactivate');

Installation

  1. Download the zip: force-reinstall-update.zip
  2. WordPress admin → PluginsAdd NewUpload Plugin → choose the zip → Install Now.
  3. Click Activate.

macOS tip: Hold Option while clicking if your browser tries to open instead of download.

Usage

  • Go to Dashboard → Updates. All plugins will appear to have an update available.
  • Reinstall the plugins you want. WordPress will fetch the latest package from WordPress.org.
  • When finished, deactivate this helper to clear the fake notices.

Download

One‑file simplicity. Makes bulk reinstallation painless.

Download Force Reinstall (v1.1)

Changelog

1.1

  • Added persistent admin notice while active.
  • Copy and documentation improvements.

1.0

  • Initial release: injects update responses and clears on deactivate.

FAQ

Does it modify plugin files?

No. It only edits the in‑memory update metadata that WordPress uses to decide whether to show an update badge.

Is it safe to leave active?

It won’t hurt anything, but you should deactivate it when finished to avoid confusion from perpetual update badges.

Can I see the code?

Absolutely—expand the source below.

View PHP source (v1.1)
response)){ return $transient; }
  if(!function_exists('get_plugins')){ require_once ABSPATH.'wp-admin/includes/plugin.php'; }
  $all_plugins = get_plugins();
  if(empty($all_plugins)){ return $transient; }
  $this_plugin_basename = plugin_basename(__FILE__);
  foreach($all_plugins as $plugin_basename => $plugin_data){
    if($plugin_basename === $this_plugin_basename){ continue; }
    $slug = dirname($plugin_basename);
    if($slug === '.') { $slug = basename($plugin_basename, '.php'); }
    $o = new stdClass();
    $o->id = $plugin_basename;
    $o->slug = $slug;
    $o->plugin = $plugin_basename;
    $o->new_version = '999.999';
    $o->url = 'https://wordpress.org/plugins/' . $slug . '/';
    $o->package = 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip';
    $o->tested = get_bloginfo('version');
    $transient->response[$plugin_basename] = $o;
  }
  return $transient;
}
add_filter('site_transient_update_plugins', 'force_all_plugin_updates');
function force_reinstall_admin_notice(){
  echo '

' . __('The Force Reinstall / Update plugin is active. Deactivate after reinstalling.', 'force-reinstall') . '

'; } add_action('admin_notices','force_reinstall_admin_notice'); function force_reinstall_on_deactivate(){ delete_site_transient('update_plugins'); } register_deactivation_hook(__FILE__, 'force_reinstall_on_deactivate'); ?>

Disclaimers

  • No warranty: Provided “as is.” Test in your environment.
  • Confusion risk: While active, update badges are intentionally fake. Deactivate when finished.
  • Privacy: No external tracking. Uses only WordPress.org package URLs.