Compare commits

...

3 Commits

Author SHA1 Message Date
78a911640f Version 1.4.1: Add FAQ about keeping plugin installed
Some checks failed
ci/woodpecker/push/woodpecker Pipeline is pending
Build Release / Build and Create Release (push) Has been cancelled
Build Release / Deploy to WordPress.org (push) Has been cancelled
ci/woodpecker/tag/woodpecker Pipeline failed
2025-04-10 01:24:17 +01:00
c45621d896 Version 1.4.0: Rename plugin and update text domain
Some checks failed
ci/woodpecker/push/woodpecker Pipeline is pending
Build Release / Build and Create Release (push) Has been cancelled
Build Release / Deploy to WordPress.org (push) Has been cancelled
ci/woodpecker/tag/woodpecker Pipeline failed
2025-04-10 01:13:49 +01:00
7ae1da3775 Rename plugin to 'Fix Plugin file does not exist. Notices' for better SEO 2025-04-10 01:03:23 +01:00
7 changed files with 90 additions and 33 deletions

24
.github/workflows/assets.yml vendored Normal file
View 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

View File

@ -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

View File

@ -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

View File

@ -1,8 +1,8 @@
# Plugin Reference Cleaner # Fix 'Plugin file does not exist.' Notices
[![WordPress Plugin Version](https://img.shields.io/wordpress/plugin/v/plugin-reference-cleaner)](https://wordpress.org/plugins/plugin-reference-cleaner/) [![WordPress Plugin Version](https://img.shields.io/wordpress/plugin/v/fix-plugin-does-not-exist-notices)](https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/)
[![WordPress Plugin Rating](https://img.shields.io/wordpress/plugin/rating/plugin-reference-cleaner)](https://wordpress.org/plugins/plugin-reference-cleaner/) [![WordPress Plugin Rating](https://img.shields.io/wordpress/plugin/rating/fix-plugin-does-not-exist-notices)](https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/)
[![WordPress Plugin Downloads](https://img.shields.io/wordpress/plugin/dt/plugin-reference-cleaner)](https://wordpress.org/plugins/plugin-reference-cleaner/) [![WordPress Plugin Downloads](https://img.shields.io/wordpress/plugin/dt/fix-plugin-does-not-exist-notices)](https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/)
[![License](https://img.shields.io/badge/license-GPL--2.0%2B-blue.svg)](https://www.gnu.org/licenses/gpl-2.0.html) [![License](https://img.shields.io/badge/license-GPL--2.0%2B-blue.svg)](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:
@ -82,6 +82,12 @@ Yes, the plugin works on both single sites and multisite installations. It prope
2. Missing plugin shown in the plugins list with "Remove Reference" link 2. Missing plugin shown in the plugins list with "Remove Reference" link
3. Auto-scroll feature that highlights the missing plugin 3. Auto-scroll feature that highlights the missing plugin
## FAQ
### 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.
## Developers ## Developers
### Contributing ### Contributing
@ -104,6 +110,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

View File

@ -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/

View File

@ -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 clean up invalid plugin entries.
* Version: 1.3.3 * Version: 1.4.1
* 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'));
@ -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();

View File

@ -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