Compare commits
5 Commits
113c4d54da
...
v1.4.2
Author | SHA1 | Date | |
---|---|---|---|
b883a222c0 | |||
8562c311c5 | |||
78a911640f | |||
c45621d896 | |||
7ae1da3775 |
24
.github/workflows/assets.yml
vendored
Normal file
24
.github/workflows/assets.yml
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
name: Plugin Asset Update
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- '.wordpress-org/**'
|
||||||
|
- 'assets/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
assets:
|
||||||
|
name: Push assets to WordPress.org
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: WordPress.org plugin asset/readme update
|
||||||
|
uses: 10up/action-wordpress-plugin-asset-update@stable
|
||||||
|
env:
|
||||||
|
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
|
||||||
|
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
|
||||||
|
SLUG: fix-plugin-does-not-exist-notices
|
20
.github/workflows/release.yml
vendored
20
.github/workflows/release.yml
vendored
@ -20,19 +20,19 @@ jobs:
|
|||||||
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
|
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Create build directory
|
- name: Create build directory
|
||||||
run: mkdir -p build/plugin-reference-cleaner
|
run: mkdir -p build/fix-plugin-does-not-exist-notices
|
||||||
|
|
||||||
- name: Copy plugin files
|
- name: Copy plugin files
|
||||||
run: |
|
run: |
|
||||||
cp plugin-reference-cleaner.php build/plugin-reference-cleaner/
|
cp fix-plugin-does-not-exist-notices.php build/fix-plugin-does-not-exist-notices/
|
||||||
cp readme.txt build/plugin-reference-cleaner/
|
cp readme.txt build/fix-plugin-does-not-exist-notices/
|
||||||
cp LICENSE build/plugin-reference-cleaner/
|
cp LICENSE build/fix-plugin-does-not-exist-notices/
|
||||||
cp README.md build/plugin-reference-cleaner/
|
cp README.md build/fix-plugin-does-not-exist-notices/
|
||||||
|
|
||||||
- name: Create ZIP file
|
- name: Create ZIP file
|
||||||
run: |
|
run: |
|
||||||
cd build
|
cd build
|
||||||
zip -r ../plugin-reference-cleaner-${{ steps.get_version.outputs.VERSION }}.zip plugin-reference-cleaner
|
zip -r ../fix-plugin-does-not-exist-notices-${{ steps.get_version.outputs.VERSION }}.zip fix-plugin-does-not-exist-notices
|
||||||
|
|
||||||
- name: Create Release
|
- name: Create Release
|
||||||
id: create_release
|
id: create_release
|
||||||
@ -42,11 +42,11 @@ jobs:
|
|||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
files: |
|
files: |
|
||||||
plugin-reference-cleaner-${{ steps.get_version.outputs.VERSION }}.zip
|
fix-plugin-does-not-exist-notices-${{ steps.get_version.outputs.VERSION }}.zip
|
||||||
body: |
|
body: |
|
||||||
Plugin Reference Cleaner v${{ steps.get_version.outputs.VERSION }}
|
Fix 'Plugin file does not exist.' Notices v${{ steps.get_version.outputs.VERSION }}
|
||||||
|
|
||||||
See [CHANGELOG.md](https://github.com/wpallstars/plugin-reference-cleaner/blob/main/CHANGELOG.md) for details.
|
See [CHANGELOG.md](https://github.com/wpallstars/fix-plugin-does-not-exist-notices/blob/main/CHANGELOG.md) for details.
|
||||||
|
|
||||||
# Deploy to WordPress.org
|
# Deploy to WordPress.org
|
||||||
wordpress:
|
wordpress:
|
||||||
@ -65,4 +65,4 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
|
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
|
||||||
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
|
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
|
||||||
SLUG: plugin-reference-cleaner
|
SLUG: fix-plugin-does-not-exist-notices
|
@ -2,6 +2,15 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [1.4.1] - 2023-11-30
|
||||||
|
### Added
|
||||||
|
- FAQ about keeping the plugin installed after notices are cleared
|
||||||
|
|
||||||
|
## [1.4.0] - 2023-11-30
|
||||||
|
### Changed
|
||||||
|
- Updated plugin name and text domain
|
||||||
|
- Repository rename from plugin-reference-cleaner to fix-plugin-does-not-exist-notices
|
||||||
|
|
||||||
## [1.3.3] - 2023-10-05
|
## [1.3.3] - 2023-10-05
|
||||||
### Added
|
### Added
|
||||||
- "Click here to scroll" button to automatically find missing plugins
|
- "Click here to scroll" button to automatically find missing plugins
|
||||||
|
33
README.md
33
README.md
@ -1,8 +1,8 @@
|
|||||||
# Plugin Reference Cleaner
|
# Fix 'Plugin file does not exist.' Notices
|
||||||
|
|
||||||
[](https://wordpress.org/plugins/plugin-reference-cleaner/)
|
[](https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/)
|
||||||
[](https://wordpress.org/plugins/plugin-reference-cleaner/)
|
[](https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/)
|
||||||
[](https://wordpress.org/plugins/plugin-reference-cleaner/)
|
[](https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/)
|
||||||
[](https://www.gnu.org/licenses/gpl-2.0.html)
|
[](https://www.gnu.org/licenses/gpl-2.0.html)
|
||||||
|
|
||||||
Easily remove references to deleted plugins that cause "Plugin file does not exist" errors in your WordPress admin.
|
Easily remove references to deleted plugins that cause "Plugin file does not exist" errors in your WordPress admin.
|
||||||
@ -45,7 +45,7 @@ When WordPress detects a plugin file that no longer exists but is still referenc
|
|||||||
### From WordPress.org:
|
### From WordPress.org:
|
||||||
|
|
||||||
1. Visit Plugins > Add New in your WordPress admin
|
1. Visit Plugins > Add New in your WordPress admin
|
||||||
2. Search for "Plugin Reference Cleaner"
|
2. Search for "Fix 'Plugin file does not exist.' Notices"
|
||||||
3. Click "Install Now" and then "Activate"
|
3. Click "Install Now" and then "Activate"
|
||||||
|
|
||||||
### Manual Installation:
|
### Manual Installation:
|
||||||
@ -76,6 +76,22 @@ The plugin entry will be removed from your active plugins list, and the correspo
|
|||||||
|
|
||||||
Yes, the plugin works on both single sites and multisite installations. It properly handles network-activated plugins as well.
|
Yes, the plugin works on both single sites and multisite installations. It properly handles network-activated plugins as well.
|
||||||
|
|
||||||
|
### How do I know which plugin references should be removed?
|
||||||
|
|
||||||
|
The plugin will only show "Remove Reference" links for plugins that are listed in your database but don't actually exist in your plugins directory. These are safe to remove.
|
||||||
|
|
||||||
|
### Will this break my site?
|
||||||
|
|
||||||
|
No. Since the plugin is only removing references to plugins that no longer exist, removing these references won't affect your site's functionality. In fact, it's cleaning up remnants that might be causing issues.
|
||||||
|
|
||||||
|
### What if I accidentally remove a reference I shouldn't have?
|
||||||
|
|
||||||
|
If you remove a reference to a plugin that you later want to reinstall, simply install the plugin again and activate it normally.
|
||||||
|
|
||||||
|
### Do I need to keep this plugin installed and active after notices are cleared?
|
||||||
|
|
||||||
|
Although this plugin consumes minimal disk space, and doesn't run unless you are on the /wp-admin/plugins.php page, you don't need to keep it active or installed if you don't have this notice to clear — but it is safe to, if you just want it as a part of your overall WordPress stack of enhancements and conveniences.
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
1. Error message with explanation notification
|
1. Error message with explanation notification
|
||||||
@ -104,6 +120,13 @@ The plugin works by:
|
|||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
### 1.4.1
|
||||||
|
- Added FAQ about keeping the plugin installed after notices are cleared
|
||||||
|
|
||||||
|
### 1.4.0
|
||||||
|
- Updated plugin name and text domain
|
||||||
|
- Repository rename from plugin-reference-cleaner to fix-plugin-does-not-exist-notices
|
||||||
|
|
||||||
### 1.3.3
|
### 1.3.3
|
||||||
* Improved notification placement next to WordPress error messages
|
* Improved notification placement next to WordPress error messages
|
||||||
* Added "Click here to scroll" button that automatically locates missing plugins
|
* Added "Click here to scroll" button that automatically locates missing plugins
|
||||||
|
4
build.sh
4
build.sh
@ -10,7 +10,7 @@ if [ -z "$1" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
VERSION=$1
|
VERSION=$1
|
||||||
PLUGIN_SLUG="plugin-reference-cleaner"
|
PLUGIN_SLUG="fix-plugin-does-not-exist-notices"
|
||||||
BUILD_DIR="build/$PLUGIN_SLUG"
|
BUILD_DIR="build/$PLUGIN_SLUG"
|
||||||
ZIP_FILE="${PLUGIN_SLUG}-${VERSION}.zip"
|
ZIP_FILE="${PLUGIN_SLUG}-${VERSION}.zip"
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ mkdir -p $BUILD_DIR
|
|||||||
|
|
||||||
# Copy required files
|
# Copy required files
|
||||||
echo "Copying plugin files..."
|
echo "Copying plugin files..."
|
||||||
cp plugin-reference-cleaner.php $BUILD_DIR/
|
cp fix-plugin-does-not-exist-notices.php $BUILD_DIR/
|
||||||
cp readme.txt $BUILD_DIR/
|
cp readme.txt $BUILD_DIR/
|
||||||
cp LICENSE $BUILD_DIR/
|
cp LICENSE $BUILD_DIR/
|
||||||
cp README.md $BUILD_DIR/
|
cp README.md $BUILD_DIR/
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Plugin Reference Cleaner
|
* Fix 'Plugin file does not exist.' Notices
|
||||||
*
|
*
|
||||||
* @package PluginReferenceCleaner
|
* @package FixPluginDoesNotExistNotices
|
||||||
* @author Marcus Quinn
|
* @author Marcus Quinn
|
||||||
* @copyright 2023 WP All Stars
|
* @copyright 2023 WP All Stars
|
||||||
* @license GPL-2.0+
|
* @license GPL-2.0+
|
||||||
*
|
*
|
||||||
* @wordpress-plugin
|
* @wordpress-plugin
|
||||||
* Plugin Name: Plugin Reference Cleaner
|
* Plugin Name: Fix 'Plugin file does not exist.' Notices
|
||||||
* Description: Adds a "Remove Reference" button to plugin deactivation error notices, allowing users to clean up invalid plugin entries.
|
* Description: Adds missing plugins to the plugins list with a "Remove Reference" link so you can permanently clean up invalid plugin entries and remove error notices.
|
||||||
* Version: 1.3.3
|
* Version: 1.4.2
|
||||||
* Author: Marcus Quinn
|
* Author: Marcus Quinn
|
||||||
* Author URI: https://www.wpallstars.com
|
* Author URI: https://www.wpallstars.com
|
||||||
* License: GPL-2.0+
|
* License: GPL-2.0+
|
||||||
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
* Text Domain: plugin-reference-cleaner
|
* Text Domain: fix-plugin-does-not-exist-notices
|
||||||
* Domain Path: /languages
|
* Domain Path: /languages
|
||||||
* Requires at least: 5.0
|
* Requires at least: 5.0
|
||||||
* Requires PHP: 7.0
|
* Requires PHP: 7.0
|
||||||
@ -39,7 +39,7 @@ if (!defined('ABSPATH')) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
class Plugin_Reference_Cleaner {
|
class Fix_Plugin_Does_Not_Exist_Notices {
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
// Add our plugin to the plugins list
|
// Add our plugin to the plugins list
|
||||||
add_filter('all_plugins', array($this, 'add_missing_plugins_references'));
|
add_filter('all_plugins', array($this, 'add_missing_plugins_references'));
|
||||||
@ -72,7 +72,7 @@ class Plugin_Reference_Cleaner {
|
|||||||
$plugin_name = basename($plugin_path);
|
$plugin_name = basename($plugin_path);
|
||||||
$plugins[$plugin_path] = array(
|
$plugins[$plugin_path] = array(
|
||||||
'Name' => $plugin_name . ' <span class="error">(File Missing)</span>',
|
'Name' => $plugin_name . ' <span class="error">(File Missing)</span>',
|
||||||
'Description' => 'This plugin file does not exist. You can safely remove this reference.',
|
'Description' => 'This plugin is still marked as "Active" in your database — but its folder and files can\'t be found in /wp-content/plugins/. Click "Remove Reference" to permanently remove it from your active plugins list and eliminate the error notice.',
|
||||||
'Version' => 'N/A',
|
'Version' => 'N/A',
|
||||||
'Author' => '',
|
'Author' => '',
|
||||||
'PluginURI' => '',
|
'PluginURI' => '',
|
||||||
@ -103,7 +103,7 @@ class Plugin_Reference_Cleaner {
|
|||||||
// Add our action
|
// Add our action
|
||||||
$nonce = wp_create_nonce('remove_plugin_reference_' . $plugin_file);
|
$nonce = wp_create_nonce('remove_plugin_reference_' . $plugin_file);
|
||||||
$remove_url = admin_url('plugins.php?action=remove_reference&plugin=' . urlencode($plugin_file) . '&_wpnonce=' . $nonce);
|
$remove_url = admin_url('plugins.php?action=remove_reference&plugin=' . urlencode($plugin_file) . '&_wpnonce=' . $nonce);
|
||||||
$actions['remove_reference'] = '<a href="' . esc_url($remove_url) . '" class="delete" aria-label="' . esc_attr__('Remove Reference', 'plugin-reference-cleaner') . '">Remove Reference</a>';
|
$actions['remove_reference'] = '<a href="' . esc_url($remove_url) . '" class="delete" aria-label="' . esc_attr__('Remove Reference', 'fix-plugin-does-not-exist-notices') . '">Remove Reference</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $actions;
|
return $actions;
|
||||||
@ -120,7 +120,7 @@ class Plugin_Reference_Cleaner {
|
|||||||
|
|
||||||
// Verify permissions
|
// Verify permissions
|
||||||
if (!current_user_can('activate_plugins')) {
|
if (!current_user_can('activate_plugins')) {
|
||||||
wp_die(__('You do not have sufficient permissions to perform this action.', 'plugin-reference-cleaner'));
|
wp_die(__('You do not have sufficient permissions to perform this action.', 'fix-plugin-does-not-exist-notices'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the plugin file
|
// Get the plugin file
|
||||||
@ -231,7 +231,7 @@ class Plugin_Reference_Cleaner {
|
|||||||
ourNotice.className = 'prc-notice';
|
ourNotice.className = 'prc-notice';
|
||||||
|
|
||||||
// Add content
|
// Add content
|
||||||
ourNotice.innerHTML = '<h3 style="margin-top:0;color:#826200;">👉 Plugin Reference Cleaner Can Fix This</h3>' +
|
ourNotice.innerHTML = '<h3 style="margin-top:0;color:#826200;">👉 Fix Plugin Does Not Exist Notices Can Fix This</h3>' +
|
||||||
'<p>To remove the above error notification, scroll down to find the plugin marked with "<strong style="color:red">(File Missing)</strong>" and click its "<strong>Remove Reference</strong>" link.</p>' +
|
'<p>To remove the above error notification, scroll down to find the plugin marked with "<strong style="color:red">(File Missing)</strong>" and click its "<strong>Remove Reference</strong>" link.</p>' +
|
||||||
'<p>This will permanently remove the missing plugin reference from your database.</p>' +
|
'<p>This will permanently remove the missing plugin reference from your database.</p>' +
|
||||||
'<p><a href="#" id="prc-scroll-to-plugin" style="font-weight:bold;text-decoration:underline;color:#826200;">Click here to scroll to the missing plugin</a></p>';
|
'<p><a href="#" id="prc-scroll-to-plugin" style="font-weight:bold;text-decoration:underline;color:#826200;">Click here to scroll to the missing plugin</a></p>';
|
||||||
@ -288,7 +288,7 @@ class Plugin_Reference_Cleaner {
|
|||||||
|
|
||||||
// Also display our standard info notice with more details
|
// Also display our standard info notice with more details
|
||||||
echo '<div class="notice notice-info is-dismissible">';
|
echo '<div class="notice notice-info is-dismissible">';
|
||||||
echo '<h3>Plugin Reference Cleaner</h3>';
|
echo '<h3>Fix Plugin Does Not Exist Notices</h3>';
|
||||||
echo '<p><strong>Missing plugin files detected:</strong> The plugins listed below with <span style="color:red;">(File Missing)</span> tag no longer exist but are still referenced in your database.</p>';
|
echo '<p><strong>Missing plugin files detected:</strong> The plugins listed below with <span style="color:red;">(File Missing)</span> tag no longer exist but are still referenced in your database.</p>';
|
||||||
echo '<p><strong>How to fix:</strong> Click the "Remove Reference" link next to each missing plugin to safely remove it from your active plugins list.</p>';
|
echo '<p><strong>How to fix:</strong> Click the "Remove Reference" link next to each missing plugin to safely remove it from your active plugins list.</p>';
|
||||||
echo '<p>This will clean up your database and remove the error notifications.</p>';
|
echo '<p>This will clean up your database and remove the error notifications.</p>';
|
||||||
@ -340,4 +340,4 @@ class Plugin_Reference_Cleaner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Initialize the plugin
|
// Initialize the plugin
|
||||||
new Plugin_Reference_Cleaner();
|
new Fix_Plugin_Does_Not_Exist_Notices();
|
19
readme.txt
19
readme.txt
@ -1,11 +1,11 @@
|
|||||||
=== Plugin Reference Cleaner ===
|
=== Fix 'Plugin file does not exist.' Notices ===
|
||||||
Contributors: marcusquinn
|
Contributors: marcusquinn
|
||||||
Donate link: https://www.wpallstars.com
|
Donate link: https://www.wpallstars.com
|
||||||
Tags: plugins, missing plugins, cleanup, error fix, admin tools
|
Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file does not exist
|
||||||
Requires at least: 5.0
|
Requires at least: 5.0
|
||||||
Tested up to: 6.4
|
Tested up to: 6.4
|
||||||
Requires PHP: 7.0
|
Requires PHP: 7.0
|
||||||
Stable tag: 1.3.3
|
Stable tag: 1.4.1
|
||||||
License: GPL-2.0+
|
License: GPL-2.0+
|
||||||
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ When WordPress detects a plugin file that no longer exists but is still referenc
|
|||||||
|
|
||||||
== Installation ==
|
== Installation ==
|
||||||
|
|
||||||
1. Upload the `plugin-reference-cleaner` folder to the `/wp-content/plugins/` directory
|
1. Upload the `fix-plugin-does-not-exist-notices` folder to the `/wp-content/plugins/` directory
|
||||||
2. Activate the plugin through the 'Plugins' menu in WordPress
|
2. Activate the plugin through the 'Plugins' menu in WordPress
|
||||||
3. No configuration needed - the plugin works automatically
|
3. No configuration needed - the plugin works automatically
|
||||||
4. If you have missing plugin errors, you'll immediately see them in your plugins list with "Remove Reference" links
|
4. If you have missing plugin errors, you'll immediately see them in your plugins list with "Remove Reference" links
|
||||||
@ -77,6 +77,10 @@ No. Since the plugin is only removing references to plugins that no longer exist
|
|||||||
|
|
||||||
If you remove a reference to a plugin that you later want to reinstall, simply install the plugin again and activate it normally.
|
If you remove a reference to a plugin that you later want to reinstall, simply install the plugin again and activate it normally.
|
||||||
|
|
||||||
|
= Do I need to keep this plugin installed and active after notices are cleared? =
|
||||||
|
|
||||||
|
Although this plugin consumes minimal disk space, and doesn't run unless you are on the /wp-admin/plugins.php page, you don't need to keep it active or installed if you don't have this notice to clear — but it is safe to, if you just want it as a part of your overall WordPress stack of enhancements and conveniences.
|
||||||
|
|
||||||
== Screenshots ==
|
== Screenshots ==
|
||||||
|
|
||||||
1. Error message with explanation notification
|
1. Error message with explanation notification
|
||||||
@ -85,6 +89,13 @@ If you remove a reference to a plugin that you later want to reinstall, simply i
|
|||||||
|
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
|
||||||
|
= 1.4.1 =
|
||||||
|
* Added FAQ about keeping the plugin installed after notices are cleared
|
||||||
|
|
||||||
|
= 1.4.0 =
|
||||||
|
* Updated plugin name and text domain
|
||||||
|
* Repository rename from plugin-reference-cleaner to fix-plugin-does-not-exist-notices
|
||||||
|
|
||||||
= 1.3.3 =
|
= 1.3.3 =
|
||||||
* Improved notification placement next to WordPress error messages
|
* Improved notification placement next to WordPress error messages
|
||||||
* Added "Click here to scroll" button that automatically locates missing plugins
|
* Added "Click here to scroll" button that automatically locates missing plugins
|
||||||
|
Reference in New Issue
Block a user