From a58516367ab935bc0fea4698e301b69e97d20ca7 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 14:35:15 +0100
Subject: [PATCH 01/19] Prepare release v1.6.6
---
README.md | 17 +++
assets/css/admin-styles.css | 9 +-
assets/js/admin-scripts.js | 112 +++++++++++-------
fix-plugin-does-not-exist-notices.php | 17 +--
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 23 +++-
6 files changed, 122 insertions(+), 58 deletions(-)
diff --git a/README.md b/README.md
index 67fd9dc..0659d6b 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,23 @@ The plugin works by:
## Changelog
+### 1.6.6
+* Fixed issue with "Remove Notice" link not appearing on missing plugin rows
+* Fixed issue with automatic removal of plugin references without user action
+* Fixed notice positioning to ensure it appears below error messages
+* Restored pointer triangle to indicate relationship with error message
+* Improved detection of missing plugins in the plugin list
+* Enhanced scroll functionality to work with all plugin types
+
+### 1.6.5
+* Fixed duplicate notices issue - now only one notice appears below error messages
+* Changed notice heading to "Fix Plugin Does Not Exist Notices ☝️"
+* Updated explanatory text to be more clear about the removal process
+* Changed "Remove Reference" link text to "Remove Notice" for better clarity
+* Made "(File Missing)" text bold and red for better visibility
+* Fixed scroll functionality to work with all plugin rows
+* Improved JavaScript to prevent multiple notices from appearing
+
### 1.6.4
* Updated version management to ensure consistent patch version increments
* Improved documentation for version update process
diff --git a/assets/css/admin-styles.css b/assets/css/admin-styles.css
index c889c41..89442a5 100644
--- a/assets/css/admin-styles.css
+++ b/assets/css/admin-styles.css
@@ -23,6 +23,13 @@
}
/* Style for highlighting the missing plugin row */
-tr.inactive.prc-highlight-missing {
+tr.inactive.prc-highlight-missing,
+tr.active.prc-highlight-missing {
background-color: #fff8e5 !important; /* Use !important to override default styles */
}
+
+/* Make File Missing text bold and red */
+span.error {
+ font-weight: bold !important;
+ color: #dc3232 !important;
+}
diff --git a/assets/js/admin-scripts.js b/assets/js/admin-scripts.js
index 55b8e71..3dd06cc 100644
--- a/assets/js/admin-scripts.js
+++ b/assets/js/admin-scripts.js
@@ -1,61 +1,81 @@
(function() {
+ // Track if we've already added our notice
+ var noticeAdded = false;
+
// Function to inject our notice
function injectNotice() {
+ // If we've already added a notice, don't add another one
+ if (noticeAdded) {
+ return;
+ }
+
// Find all notification containers first
var noticeContainers = document.querySelectorAll('.notice, .error, .updated');
+ var targetNotice = null;
// Find all error notifications about missing plugins
noticeContainers.forEach(function(notice) {
if (notice.textContent.includes('Plugin file does not exist') ||
notice.textContent.includes('has been deactivated due to an error')) {
-
- // Check if we already added our notice
- if (notice.nextElementSibling && notice.nextElementSibling.classList.contains('prc-notice')) {
- return;
- }
-
- // Create our custom notice
- var ourNotice = document.createElement('div');
- ourNotice.className = 'prc-notice';
-
- // Add content using localized strings passed via wp_localize_script
- var pluginMissingText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.pluginMissing ?
- fpdenData.i18n.pluginMissing : 'Plugin file missing';
- var removeReferenceText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.removeReference ?
- fpdenData.i18n.removeReference : 'Remove Reference';
- var clickToScrollText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.clickToScroll ?
- fpdenData.i18n.clickToScroll : 'Click here to scroll to missing plugins';
-
- ourNotice.innerHTML = '
👉 Fix Plugin Does Not Exist Notices Can Fix This
' +
- 'To remove the above error notification, scroll down to find the plugin marked with "(' + pluginMissingText + ')" and click its "' + removeReferenceText + '" link.
' +
- 'This will permanently remove the missing plugin reference from your database.
' +
- '' + clickToScrollText + '
';
-
- // Insert our notice right after the error
- notice.parentNode.insertBefore(ourNotice, notice.nextSibling);
-
- // Add scroll behavior
- var scrollLink = document.getElementById('prc-scroll-to-plugin');
- if (scrollLink) {
- scrollLink.addEventListener('click', function(e) {
- e.preventDefault();
- var missingPlugins = document.querySelectorAll('tr.inactive:not(.plugin-update-tr)');
- for (var i = 0; i < missingPlugins.length; i++) {
- if (missingPlugins[i].textContent.includes('(File Missing)')) {
- // Add a class for highlighting instead of direct style manipulation
- missingPlugins[i].classList.add('prc-highlight-missing');
- missingPlugins[i].scrollIntoView({ behavior: 'smooth', block: 'center' });
- // Optional: Remove highlight after a delay
- setTimeout(function() {
- missingPlugins[i].classList.remove('prc-highlight-missing');
- }, 3000); // Remove highlight after 3 seconds
- return;
- }
- }
- });
- }
+ // We'll use the last matching notice as our target
+ targetNotice = notice;
}
});
+
+ // If we found a target notice, add our custom notice after it
+ if (targetNotice) {
+ // Check if we already added our notice
+ if (targetNotice.nextElementSibling && targetNotice.nextElementSibling.classList.contains('prc-notice')) {
+ return;
+ }
+
+ // Create our custom notice
+ var ourNotice = document.createElement('div');
+ ourNotice.className = 'prc-notice';
+
+ // Add content using localized strings passed via wp_localize_script
+ var pluginMissingText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.pluginMissing ?
+ fpdenData.i18n.pluginMissing : 'Plugin file missing';
+ var removeReferenceText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.removeReference ?
+ fpdenData.i18n.removeReference : 'Remove Notice';
+ var clickToScrollText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.clickToScroll ?
+ fpdenData.i18n.clickToScroll : 'Click here to scroll to missing plugins';
+
+ ourNotice.innerHTML = 'Fix Plugin Does Not Exist Notices ☝️
' +
+ 'To remove these notices, scroll down to each plugin .php showing "(File Missing)", and click "' + removeReferenceText + '".
' +
+ 'This safely removes the missing active plugin reference from your database, using the standard WordPress function to update your active plugin options table with only the correct remaining installed and active plugins.
' +
+ '' + clickToScrollText + '
';
+
+ // Insert our notice right after the error
+ targetNotice.parentNode.insertBefore(ourNotice, targetNotice.nextSibling);
+
+ // Mark that we've added our notice
+ noticeAdded = true;
+
+ // Add scroll behavior
+ var scrollLink = document.getElementById('prc-scroll-to-plugin');
+ if (scrollLink) {
+ scrollLink.addEventListener('click', function(e) {
+ e.preventDefault();
+ // Look for all plugin rows, not just inactive ones
+ var allPluginRows = document.querySelectorAll('tr.active, tr.inactive');
+ for (var i = 0; i < allPluginRows.length; i++) {
+ if (allPluginRows[i].textContent.includes('(File Missing)')) {
+ // Add a class for highlighting instead of direct style manipulation
+ allPluginRows[i].classList.add('prc-highlight-missing');
+ allPluginRows[i].scrollIntoView({ behavior: 'smooth', block: 'center' });
+ // Optional: Remove highlight after a delay
+ (function(row) {
+ setTimeout(function() {
+ row.classList.remove('prc-highlight-missing');
+ }, 3000); // Remove highlight after 3 seconds
+ })(allPluginRows[i]);
+ return;
+ }
+ }
+ });
+ }
+ }
}
// Try to inject notices on multiple events to ensure it works
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 957be8f..9d9ea5f 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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.6.4
+ * Version: 1.6.6
* Author: Marcus Quinn
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.4' );
+define( 'FPDEN_VERSION', '1.6.6' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
@@ -183,10 +183,10 @@ class Fix_Plugin_Does_Not_Exist_Notices {
}
/**
- * Add the Remove Reference action link to invalid plugins.
+ * Add the Remove Notice action link to invalid plugins.
*
* Filters the action links displayed for each plugin on the plugins page.
- * Adds a "Remove Reference" link for plugins identified as missing.
+ * Adds a "Remove Notice" link for plugins identified as missing.
*
* @param array $actions An array of plugin action links.
* @param string $plugin_file Path to the plugin file relative to the plugins directory.
@@ -201,8 +201,11 @@ class Fix_Plugin_Does_Not_Exist_Notices {
return $actions;
}
- // Check if this is a missing plugin identified by our previous filter.
- if ( isset( $plugin_data['Name'] ) && strpos( $plugin_data['Name'], '(File Missing)' ) !== false ) {
+ // Get our list of invalid plugins
+ $invalid_plugins = $this->get_invalid_plugins();
+
+ // Check if this plugin file is in our list of invalid plugins
+ if ( in_array( $plugin_file, $invalid_plugins, true ) ) {
// Clear existing actions like "Activate", "Deactivate", "Edit".
$actions = array();
@@ -211,7 +214,7 @@ class Fix_Plugin_Does_Not_Exist_Notices {
$remove_url = admin_url( 'plugins.php?action=remove_reference&plugin=' . urlencode( $plugin_file ) . '&_wpnonce=' . $nonce );
/* translators: %s: Plugin file path */
$aria_label = sprintf( __( 'Remove reference to missing plugin %s', 'fix-plugin-does-not-exist-notices' ), esc_attr( $plugin_file ) );
- $actions['remove_reference'] = '' . esc_html__( 'Remove Reference', 'fix-plugin-does-not-exist-notices' ) . '';
+ $actions['remove_reference'] = '' . esc_html__( 'Remove Notice', 'fix-plugin-does-not-exist-notices' ) . '';
}
return $actions;
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index eba0e7c..f677585 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.4\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.6\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index ab24434..dc3c82f 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.4
+Stable tag: 1.6.6
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -89,6 +89,23 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.6 =
+* Fixed issue with "Remove Notice" link not appearing on missing plugin rows
+* Fixed issue with automatic removal of plugin references without user action
+* Fixed notice positioning to ensure it appears below error messages
+* Restored pointer triangle to indicate relationship with error message
+* Improved detection of missing plugins in the plugin list
+* Enhanced scroll functionality to work with all plugin types
+
+= 1.6.5 =
+* Fixed duplicate notices issue - now only one notice appears below error messages
+* Changed notice heading to "Fix Plugin Does Not Exist Notices ☝️"
+* Updated explanatory text to be more clear about the removal process
+* Changed "Remove Reference" link text to "Remove Notice" for better clarity
+* Made "(File Missing)" text bold and red for better visibility
+* Fixed scroll functionality to work with all plugin rows
+* Improved JavaScript to prevent multiple notices from appearing
+
= 1.6.4 =
* Updated version management to ensure consistent patch version increments
* Improved documentation for version update process
@@ -196,8 +213,8 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
-= 1.6.4 =
-Improved version management with consistent patch version increments and enhanced documentation for development workflows!
+= 1.6.6 =
+Critical fix for "Remove Notice" link not appearing and automatic plugin reference removal issues!
= 1.6.3 =
Fixed Git Updater repository URLs and updated organization naming for consistent branding across all platforms!
From 10f6783cdb339c0c4e9bba16d4df63d9106d0245 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 14:43:17 +0100
Subject: [PATCH 02/19] Fix duplicate notices and optimize plugin detection
(v1.6.7)
---
README.md | 7 ++
assets/js/admin-scripts.js | 8 +--
fix-plugin-does-not-exist-notices.php | 64 ++++++++-----------
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 13 +++-
5 files changed, 48 insertions(+), 46 deletions(-)
diff --git a/README.md b/README.md
index 0659d6b..b582c61 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,13 @@ The plugin works by:
## Changelog
+### 1.6.7
+* Fixed duplicate notices issue by removing PHP-generated notice
+* Simplified notice system to only show one notice below WordPress error
+* Ensured consistent terminology with "Remove Notice" text
+* Optimized plugin detection with caching to improve performance
+* Fixed JavaScript to correctly handle multiple error messages
+
### 1.6.6
* Fixed issue with "Remove Notice" link not appearing on missing plugin rows
* Fixed issue with automatic removal of plugin references without user action
diff --git a/assets/js/admin-scripts.js b/assets/js/admin-scripts.js
index 3dd06cc..1b2c553 100644
--- a/assets/js/admin-scripts.js
+++ b/assets/js/admin-scripts.js
@@ -35,14 +35,14 @@
// Add content using localized strings passed via wp_localize_script
var pluginMissingText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.pluginMissing ?
- fpdenData.i18n.pluginMissing : 'Plugin file missing';
- var removeReferenceText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.removeReference ?
- fpdenData.i18n.removeReference : 'Remove Notice';
+ fpdenData.i18n.pluginMissing : 'File Missing';
+ var removeNoticeText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.removeNotice ?
+ fpdenData.i18n.removeNotice : 'Remove Notice';
var clickToScrollText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.clickToScroll ?
fpdenData.i18n.clickToScroll : 'Click here to scroll to missing plugins';
ourNotice.innerHTML = 'Fix Plugin Does Not Exist Notices ☝️
' +
- 'To remove these notices, scroll down to each plugin .php showing "(File Missing)", and click "' + removeReferenceText + '".
' +
+ 'To remove these notices, scroll down to each plugin .php showing "(' + pluginMissingText + ')", and click "' + removeNoticeText + '".
' +
'This safely removes the missing active plugin reference from your database, using the standard WordPress function to update your active plugin options table with only the correct remaining installed and active plugins.
' +
'' + clickToScrollText + '
';
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 9d9ea5f..185fe60 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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.6.6
+ * Version: 1.6.7
* Author: Marcus Quinn
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.6' );
+define( 'FPDEN_VERSION', '1.6.7' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
@@ -73,6 +73,13 @@ add_action( 'plugins_loaded', 'fpden_load_textdomain' );
*/
class Fix_Plugin_Does_Not_Exist_Notices {
+ /**
+ * Cached list of invalid plugins.
+ *
+ * @var array
+ */
+ private $invalid_plugins = null;
+
/**
* Constructor. Hooks into WordPress actions and filters.
*/
@@ -133,8 +140,8 @@ class Fix_Plugin_Does_Not_Exist_Notices {
array(
'i18n' => array(
'clickToScroll' => esc_html__( 'Click here to scroll to missing plugins', 'fix-plugin-does-not-exist-notices' ),
- 'pluginMissing' => esc_html__( 'Plugin file missing', 'fix-plugin-does-not-exist-notices' ),
- 'removeReference' => esc_html__( 'Remove Reference', 'fix-plugin-does-not-exist-notices' ),
+ 'pluginMissing' => esc_html__( 'File Missing', 'fix-plugin-does-not-exist-notices' ),
+ 'removeNotice' => esc_html__( 'Remove Notice', 'fix-plugin-does-not-exist-notices' ),
),
)
);
@@ -166,7 +173,7 @@ class Fix_Plugin_Does_Not_Exist_Notices {
'Name' => $plugin_name . ' (File Missing)',
/* translators: %s: Path to wp-content/plugins */
'Description' => sprintf(
- __( 'This plugin is still marked as "Active" in your database — but its folder and files can\'t be found in %s. Click "Remove Reference" to permanently remove it from your active plugins list and eliminate the error notice.', 'fix-plugin-does-not-exist-notices' ),
+ __( 'This plugin is still marked as "Active" in your database — but its folder and files can\'t be found in %s. Click "Remove Notice" to permanently remove it from your active plugins list and eliminate the error notice.', 'fix-plugin-does-not-exist-notices' ),
'/wp-content/plugins/
'
),
'Version' => __( 'N/A', 'fix-plugin-does-not-exist-notices' ),
@@ -302,8 +309,9 @@ class Fix_Plugin_Does_Not_Exist_Notices {
/**
* Display admin notices on the plugins page.
*
- * Shows informational notices about missing plugins and feedback
- * messages after attempting to remove a reference.
+ * Shows feedback messages after attempting to remove a reference.
+ * The main informational notice is handled by JavaScript to position it
+ * directly below the WordPress error message.
*
* @return void
*/
@@ -329,34 +337,8 @@ class Fix_Plugin_Does_Not_Exist_Notices {
get_invalid_plugins();
-
- // Display the main informational notice if there are missing plugins.
- if ( ! empty( $invalid_plugins ) ) {
- ?>
-
-
-
-
-
- ()
-
-
-
-
-
-
-
-
- invalid_plugins ) {
+ return $this->invalid_plugins;
+ }
+
+ $this->invalid_plugins = array();
$active_plugins = array();
// Determine which option to check based on context (Network Admin or single site).
@@ -397,11 +385,11 @@ class Fix_Plugin_Does_Not_Exist_Notices {
$plugin_path = WP_PLUGIN_DIR . '/' . $plugin_file;
// Use validate_file to prevent directory traversal issues, although less likely here.
if ( validate_file( $plugin_file ) === 0 && ! file_exists( $plugin_path ) ) {
- $invalid_plugins[] = $plugin_file;
+ $this->invalid_plugins[] = $plugin_file;
}
}
- return $invalid_plugins;
+ return $this->invalid_plugins;
}
} // End class Fix_Plugin_Does_Not_Exist_Notices
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index f677585..27b22be 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.6\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.7\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index dc3c82f..5b2ebb8 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.6
+Stable tag: 1.6.7
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -89,6 +89,13 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.7 =
+* Fixed duplicate notices issue by removing PHP-generated notice
+* Simplified notice system to only show one notice below WordPress error
+* Ensured consistent terminology with "Remove Notice" text
+* Optimized plugin detection with caching to improve performance
+* Fixed JavaScript to correctly handle multiple error messages
+
= 1.6.6 =
* Fixed issue with "Remove Notice" link not appearing on missing plugin rows
* Fixed issue with automatic removal of plugin references without user action
@@ -213,8 +220,8 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
-= 1.6.6 =
-Critical fix for "Remove Notice" link not appearing and automatic plugin reference removal issues!
+= 1.6.7 =
+Fixed duplicate notices issue and improved performance with optimized plugin detection!
= 1.6.3 =
Fixed Git Updater repository URLs and updated organization naming for consistent branding across all platforms!
From 515336aa2be9d0ced54fb4ff2ec993c43023f28f Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 14:52:35 +0100
Subject: [PATCH 03/19] Improve notice positioning and appearance (v1.6.8)
---
README.md | 7 +++++++
assets/css/admin-styles.css | 3 +++
assets/js/admin-scripts.js | 14 +++++++++++---
fix-plugin-does-not-exist-notices.php | 4 ++--
languages/fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 13 ++++++++++---
6 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
index b582c61..cf97fbf 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,13 @@ The plugin works by:
## Changelog
+### 1.6.8
+* Fixed notice positioning to appear directly below WordPress error messages
+* Improved notice width to match WordPress error messages
+* Updated explanatory text for better clarity
+* Fixed issue with notices not appearing in some cases
+* Improved JavaScript detection of WordPress error messages
+
### 1.6.7
* Fixed duplicate notices issue by removing PHP-generated notice
* Simplified notice system to only show one notice below WordPress error
diff --git a/assets/css/admin-styles.css b/assets/css/admin-styles.css
index 89442a5..ebdb8b4 100644
--- a/assets/css/admin-styles.css
+++ b/assets/css/admin-styles.css
@@ -5,6 +5,9 @@
margin: 5px 0 15px;
font-size: 14px;
position: relative;
+ width: 100%;
+ box-sizing: border-box;
+ max-width: none;
}
.prc-notice h3 {
margin-top: 0;
diff --git a/assets/js/admin-scripts.js b/assets/js/admin-scripts.js
index 1b2c553..c891b54 100644
--- a/assets/js/admin-scripts.js
+++ b/assets/js/admin-scripts.js
@@ -15,10 +15,12 @@
// Find all error notifications about missing plugins
noticeContainers.forEach(function(notice) {
- if (notice.textContent.includes('Plugin file does not exist') ||
- notice.textContent.includes('has been deactivated due to an error')) {
+ if ((notice.textContent.includes('Plugin file does not exist') ||
+ notice.textContent.includes('has been deactivated due to an error')) &&
+ notice.classList.contains('error')) {
// We'll use the last matching notice as our target
targetNotice = notice;
+ console.log('Found WordPress error notice:', notice.textContent);
}
});
@@ -43,12 +45,18 @@
ourNotice.innerHTML = 'Fix Plugin Does Not Exist Notices ☝️
' +
'To remove these notices, scroll down to each plugin .php showing "(' + pluginMissingText + ')", and click "' + removeNoticeText + '".
' +
- 'This safely removes the missing active plugin reference from your database, using the standard WordPress function to update your active plugin options table with only the correct remaining installed and active plugins.
' +
+ 'This safely removes the missing active plugin reference from your database.
' +
+ 'We\'re using the standard WordPress function to update your active plugin options table — to leave only the correct remaining plugins installed and active.
' +
'' + clickToScrollText + '
';
// Insert our notice right after the error
targetNotice.parentNode.insertBefore(ourNotice, targetNotice.nextSibling);
+ // Make sure our notice has the same width as the WordPress error notice
+ ourNotice.style.width = targetNotice.offsetWidth + 'px';
+ ourNotice.style.maxWidth = '100%';
+ ourNotice.style.boxSizing = 'border-box';
+
// Mark that we've added our notice
noticeAdded = true;
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 185fe60..9060c1f 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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.6.7
+ * Version: 1.6.8
* Author: Marcus Quinn
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.7' );
+define( 'FPDEN_VERSION', '1.6.8' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 27b22be..bc6e1aa 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.7\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.8\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index 5b2ebb8..a5b7097 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.7
+Stable tag: 1.6.8
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -89,6 +89,13 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.8 =
+* Fixed notice positioning to appear directly below WordPress error messages
+* Improved notice width to match WordPress error messages
+* Updated explanatory text for better clarity
+* Fixed issue with notices not appearing in some cases
+* Improved JavaScript detection of WordPress error messages
+
= 1.6.7 =
* Fixed duplicate notices issue by removing PHP-generated notice
* Simplified notice system to only show one notice below WordPress error
@@ -220,8 +227,8 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
-= 1.6.7 =
-Fixed duplicate notices issue and improved performance with optimized plugin detection!
+= 1.6.8 =
+Improved notice positioning and appearance, with better explanatory text and more reliable error detection!
= 1.6.3 =
Fixed Git Updater repository URLs and updated organization naming for consistent branding across all platforms!
From 24ff0f9552fd4ffa136cc501760c66a40f399f72 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 15:01:34 +0100
Subject: [PATCH 04/19] Fix notice positioning and prevent auto-clearing of
error notices (v1.6.9)
---
README.md | 7 ++++
assets/js/admin-scripts.js | 26 ++++++++++---
fix-plugin-does-not-exist-notices.php | 38 ++++++++++++++++++-
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 13 +++++--
5 files changed, 75 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index cf97fbf..17d5555 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,13 @@ The plugin works by:
## Changelog
+### 1.6.9
+* Fixed issue with notices not appearing below WordPress error messages
+* Improved JavaScript detection of WordPress error notices
+* Prevented WordPress from automatically clearing error notices on page refresh
+* Added multiple timing attempts to ensure notices appear correctly
+* Enhanced error notice targeting for better compatibility
+
### 1.6.8
* Fixed notice positioning to appear directly below WordPress error messages
* Improved notice width to match WordPress error messages
diff --git a/assets/js/admin-scripts.js b/assets/js/admin-scripts.js
index c891b54..de41ee7 100644
--- a/assets/js/admin-scripts.js
+++ b/assets/js/admin-scripts.js
@@ -10,20 +10,30 @@
}
// Find all notification containers first
- var noticeContainers = document.querySelectorAll('.notice, .error, .updated');
+ var noticeContainers = document.querySelectorAll('.notice, .error, .updated, div.error');
var targetNotice = null;
// Find all error notifications about missing plugins
noticeContainers.forEach(function(notice) {
if ((notice.textContent.includes('Plugin file does not exist') ||
notice.textContent.includes('has been deactivated due to an error')) &&
- notice.classList.contains('error')) {
+ (notice.classList.contains('error') || notice.classList.contains('notice-error'))) {
// We'll use the last matching notice as our target
targetNotice = notice;
console.log('Found WordPress error notice:', notice.textContent);
}
});
+ // If we didn't find a specific error notice, look for the general WordPress error at the top
+ if (!targetNotice) {
+ // Try to find the WordPress error message at the top of the page
+ var wpError = document.querySelector('.error:not(.below-h2), div.error:not(.below-h2), .notice-error:not(.below-h2)');
+ if (wpError) {
+ targetNotice = wpError;
+ console.log('Found general WordPress error notice');
+ }
+ }
+
// If we found a target notice, add our custom notice after it
if (targetNotice) {
// Check if we already added our notice
@@ -88,7 +98,8 @@
// Try to inject notices on multiple events to ensure it works
document.addEventListener('DOMContentLoaded', function() {
- injectNotice();
+ // Delay the initial injection to ensure WordPress has fully loaded its notices
+ setTimeout(injectNotice, 100);
// Also set up a MutationObserver to watch for dynamically added notices
var observer = new MutationObserver(function(mutations) {
@@ -96,8 +107,8 @@
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
// Check if added nodes are notices or contain notices
mutation.addedNodes.forEach(function(node) {
- if (node.nodeType === 1 && (node.matches('.notice, .error, .updated') || node.querySelector('.notice, .error, .updated'))) {
- injectNotice();
+ if (node.nodeType === 1 && (node.matches('.notice, .error, .updated, div.error') || node.querySelector('.notice, .error, .updated, div.error'))) {
+ setTimeout(injectNotice, 50); // Small delay to ensure the DOM is updated
}
});
}
@@ -113,4 +124,9 @@
setTimeout(injectNotice, 500); // Delay slightly to ensure dynamic content is loaded
});
+ // Additional attempt after a longer delay to catch late-loading notices
+ window.addEventListener('load', function() {
+ setTimeout(injectNotice, 1000); // Longer delay as final attempt
+ });
+
})();
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 9060c1f..a41ffc4 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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.6.8
+ * Version: 1.6.9
* Author: Marcus Quinn
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.8' );
+define( 'FPDEN_VERSION', '1.6.9' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
@@ -98,6 +98,9 @@ class Fix_Plugin_Does_Not_Exist_Notices {
// Enqueue admin scripts and styles.
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_assets' ) );
+
+ // Prevent WordPress from automatically deactivating missing plugins
+ add_filter( 'pre_option_recently_activated', array( $this, 'prevent_auto_deactivation' ) );
}
/**
@@ -391,6 +394,37 @@ class Fix_Plugin_Does_Not_Exist_Notices {
return $this->invalid_plugins;
}
+
+ /**
+ * Prevent WordPress from automatically deactivating missing plugins.
+ *
+ * WordPress normally deactivates plugins that don't exist and adds them to the
+ * 'recently_activated' option. This filter prevents that behavior so we can
+ * handle the deactivation ourselves through our UI.
+ *
+ * @param mixed $pre_option The value to return instead of the option value.
+ * @return mixed The original value (null) to let WordPress proceed, or an array to override.
+ */
+ public function prevent_auto_deactivation( $pre_option ) {
+ // Only run on the plugins page
+ if ( ! $this->is_plugins_page() ) {
+ return $pre_option;
+ }
+
+ // Get our invalid plugins
+ $invalid_plugins = $this->get_invalid_plugins();
+
+ // If we have invalid plugins and we're on the plugins page, return an empty array
+ // to prevent WordPress from auto-deactivating the plugins
+ if ( ! empty( $invalid_plugins ) ) {
+ // Return the current value of the option to prevent WordPress from modifying it
+ $recently_activated = get_option( 'recently_activated', array() );
+ return $recently_activated;
+ }
+
+ // Otherwise, let WordPress handle it normally
+ return $pre_option;
+ }
} // End class Fix_Plugin_Does_Not_Exist_Notices
// Initialize the plugin class.
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index bc6e1aa..ff6a037 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.8\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.9\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index a5b7097..b8c1f4e 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.8
+Stable tag: 1.6.9
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -89,6 +89,13 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.9 =
+* Fixed issue with notices not appearing below WordPress error messages
+* Improved JavaScript detection of WordPress error notices
+* Prevented WordPress from automatically clearing error notices on page refresh
+* Added multiple timing attempts to ensure notices appear correctly
+* Enhanced error notice targeting for better compatibility
+
= 1.6.8 =
* Fixed notice positioning to appear directly below WordPress error messages
* Improved notice width to match WordPress error messages
@@ -227,8 +234,8 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
-= 1.6.8 =
-Improved notice positioning and appearance, with better explanatory text and more reliable error detection!
+= 1.6.9 =
+Fixed critical issue with WordPress automatically clearing error notices on page refresh and improved notice positioning!
= 1.6.3 =
Fixed Git Updater repository URLs and updated organization naming for consistent branding across all platforms!
From 873ca5f272d1acfe09ed186757305ad71e9283b8 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 15:06:17 +0100
Subject: [PATCH 05/19] Fix critical error when plugin folder is deleted
(v1.6.10)
---
README.md | 7 +++
fix-plugin-does-not-exist-notices.php | 46 +++++++++++--------
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 13 ++++--
4 files changed, 46 insertions(+), 22 deletions(-)
diff --git a/README.md b/README.md
index 17d5555..b461dc0 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,13 @@ The plugin works by:
## Changelog
+### 1.6.10
+* Fixed critical error that could occur when a plugin folder is deleted
+* Improved error handling with try/catch blocks
+* Added more specific checks for the plugins page
+* Enhanced compatibility with various WordPress configurations
+* Made the code more defensive to prevent potential issues
+
### 1.6.9
* Fixed issue with notices not appearing below WordPress error messages
* Improved JavaScript detection of WordPress error notices
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index a41ffc4..1413b82 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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.6.9
+ * Version: 1.6.10
* Author: Marcus Quinn
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.9' );
+define( 'FPDEN_VERSION', '1.6.10' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
@@ -396,34 +396,44 @@ class Fix_Plugin_Does_Not_Exist_Notices {
}
/**
- * Prevent WordPress from automatically deactivating missing plugins.
+ * Safely prevent WordPress from automatically deactivating missing plugins.
*
* WordPress normally deactivates plugins that don't exist and adds them to the
- * 'recently_activated' option. This filter prevents that behavior so we can
- * handle the deactivation ourselves through our UI.
+ * 'recently_activated' option. This filter modifies that behavior so we can
+ * handle the deactivation ourselves through our UI, but only on the plugins page.
*
* @param mixed $pre_option The value to return instead of the option value.
* @return mixed The original value (null) to let WordPress proceed, or an array to override.
*/
public function prevent_auto_deactivation( $pre_option ) {
- // Only run on the plugins page
- if ( ! $this->is_plugins_page() ) {
+ // Safety check - if we're not in admin or if this isn't the plugins page, don't interfere
+ if ( ! is_admin() || ! function_exists( 'get_current_screen' ) ) {
return $pre_option;
}
- // Get our invalid plugins
- $invalid_plugins = $this->get_invalid_plugins();
-
- // If we have invalid plugins and we're on the plugins page, return an empty array
- // to prevent WordPress from auto-deactivating the plugins
- if ( ! empty( $invalid_plugins ) ) {
- // Return the current value of the option to prevent WordPress from modifying it
- $recently_activated = get_option( 'recently_activated', array() );
- return $recently_activated;
+ // Get current screen - only proceed if we're on the plugins page
+ $screen = get_current_screen();
+ if ( ! $screen || 'plugins' !== $screen->base ) {
+ return $pre_option;
}
- // Otherwise, let WordPress handle it normally
- return $pre_option;
+ // Only apply our logic if we're on an admin page and specifically the plugins.php page
+ global $pagenow;
+ if ( 'plugins.php' !== $pagenow ) {
+ return $pre_option;
+ }
+
+ // We're on the plugins page, so let's try to preserve the current state
+ try {
+ // Get the current value of recently_activated
+ $recently_activated = get_option( 'recently_activated', array() );
+
+ // Return the current value to prevent WordPress from modifying it
+ return $recently_activated;
+ } catch ( Exception $e ) {
+ // If anything goes wrong, let WordPress handle it normally
+ return $pre_option;
+ }
}
} // End class Fix_Plugin_Does_Not_Exist_Notices
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index ff6a037..346d0bf 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.9\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.10\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index b8c1f4e..d2cf47b 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.9
+Stable tag: 1.6.10
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -89,6 +89,13 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.10 =
+* Fixed critical error that could occur when a plugin folder is deleted
+* Improved error handling with try/catch blocks
+* Added more specific checks for the plugins page
+* Enhanced compatibility with various WordPress configurations
+* Made the code more defensive to prevent potential issues
+
= 1.6.9 =
* Fixed issue with notices not appearing below WordPress error messages
* Improved JavaScript detection of WordPress error notices
@@ -234,8 +241,8 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
-= 1.6.9 =
-Fixed critical issue with WordPress automatically clearing error notices on page refresh and improved notice positioning!
+= 1.6.10 =
+CRITICAL FIX: Resolves an issue that could cause a fatal error when a plugin folder is deleted. Upgrade immediately if you're experiencing the "critical error" message.
= 1.6.3 =
Fixed Git Updater repository URLs and updated organization naming for consistent branding across all platforms!
From bfaa2b807ac13a980554f64df640ab02d6cff168 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 15:11:33 +0100
Subject: [PATCH 06/19] CRITICAL FIX: Remove auto-deactivation prevention code
causing fatal errors (v1.6.11)
---
README.md | 6 +++
fix-plugin-does-not-exist-notices.php | 49 ++-----------------
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 12 +++--
4 files changed, 21 insertions(+), 48 deletions(-)
diff --git a/README.md b/README.md
index b461dc0..8a7e0eb 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,12 @@ The plugin works by:
## Changelog
+### 1.6.11
+* CRITICAL FIX: Completely removed auto-deactivation prevention code that was causing fatal errors
+* Simplified plugin functionality to focus on core features only
+* Improved compatibility with various WordPress configurations
+* Ensured plugin works correctly when other plugins are deleted
+
### 1.6.10
* Fixed critical error that could occur when a plugin folder is deleted
* Improved error handling with try/catch blocks
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 1413b82..80f7a82 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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.6.10
+ * Version: 1.6.11
* Author: Marcus Quinn
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.10' );
+define( 'FPDEN_VERSION', '1.6.11' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
@@ -99,8 +99,8 @@ class Fix_Plugin_Does_Not_Exist_Notices {
// Enqueue admin scripts and styles.
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_assets' ) );
- // Prevent WordPress from automatically deactivating missing plugins
- add_filter( 'pre_option_recently_activated', array( $this, 'prevent_auto_deactivation' ) );
+ // We're no longer trying to prevent WordPress from auto-deactivating plugins
+ // as it was causing critical errors in some environments
}
/**
@@ -395,46 +395,7 @@ class Fix_Plugin_Does_Not_Exist_Notices {
return $this->invalid_plugins;
}
- /**
- * Safely prevent WordPress from automatically deactivating missing plugins.
- *
- * WordPress normally deactivates plugins that don't exist and adds them to the
- * 'recently_activated' option. This filter modifies that behavior so we can
- * handle the deactivation ourselves through our UI, but only on the plugins page.
- *
- * @param mixed $pre_option The value to return instead of the option value.
- * @return mixed The original value (null) to let WordPress proceed, or an array to override.
- */
- public function prevent_auto_deactivation( $pre_option ) {
- // Safety check - if we're not in admin or if this isn't the plugins page, don't interfere
- if ( ! is_admin() || ! function_exists( 'get_current_screen' ) ) {
- return $pre_option;
- }
-
- // Get current screen - only proceed if we're on the plugins page
- $screen = get_current_screen();
- if ( ! $screen || 'plugins' !== $screen->base ) {
- return $pre_option;
- }
-
- // Only apply our logic if we're on an admin page and specifically the plugins.php page
- global $pagenow;
- if ( 'plugins.php' !== $pagenow ) {
- return $pre_option;
- }
-
- // We're on the plugins page, so let's try to preserve the current state
- try {
- // Get the current value of recently_activated
- $recently_activated = get_option( 'recently_activated', array() );
-
- // Return the current value to prevent WordPress from modifying it
- return $recently_activated;
- } catch ( Exception $e ) {
- // If anything goes wrong, let WordPress handle it normally
- return $pre_option;
- }
- }
+// We've removed the prevent_auto_deactivation method as it was causing critical errors
} // End class Fix_Plugin_Does_Not_Exist_Notices
// Initialize the plugin class.
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 346d0bf..eb7b3a9 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.10\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.11\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index d2cf47b..dde8bcd 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.10
+Stable tag: 1.6.11
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -89,6 +89,12 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.11 =
+* CRITICAL FIX: Completely removed auto-deactivation prevention code that was causing fatal errors
+* Simplified plugin functionality to focus on core features only
+* Improved compatibility with various WordPress configurations
+* Ensured plugin works correctly when other plugins are deleted
+
= 1.6.10 =
* Fixed critical error that could occur when a plugin folder is deleted
* Improved error handling with try/catch blocks
@@ -241,8 +247,8 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
-= 1.6.10 =
-CRITICAL FIX: Resolves an issue that could cause a fatal error when a plugin folder is deleted. Upgrade immediately if you're experiencing the "critical error" message.
+= 1.6.11 =
+URGENT CRITICAL FIX: Completely removes code that was causing fatal errors. If you're experiencing the "critical error" message, this update will resolve it.
= 1.6.3 =
Fixed Git Updater repository URLs and updated organization naming for consistent branding across all platforms!
From e9a18de3d7097deaa228fbb6e146ffd39d369bcc Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 15:19:14 +0100
Subject: [PATCH 07/19] Add WP ALLSTARS as co-author (v1.6.12)
---
README.md | 5 +++++
fix-plugin-does-not-exist-notices.php | 8 ++++----
languages/fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 14 +++++++++++---
4 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/README.md b/README.md
index 8a7e0eb..978c46b 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,11 @@ The plugin works by:
## Changelog
+### 1.6.12
+* Added WP ALLSTARS as a co-author
+* Updated author information and links
+* Minor documentation improvements
+
### 1.6.11
* CRITICAL FIX: Completely removed auto-deactivation prevention code that was causing fatal errors
* Simplified plugin functionality to focus on core features only
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 80f7a82..9987f45 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,9 +13,9 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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.6.11
- * Author: Marcus Quinn
- * Author URI: https://www.wpallstars.com
+ * Version: 1.6.12
+ * Author: Marcus Quinn, WP ALLSTARS
+ * Author URI: https://www.marcusquinn.com, https://www.wpallstars.com
* License: GPL-2.0+
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: fix-plugin-does-not-exist-notices
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.11' );
+define( 'FPDEN_VERSION', '1.6.12' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index eb7b3a9..55456af 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.11\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.12\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index dde8bcd..98d70d0 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,11 +1,11 @@
=== Fix 'Plugin file does not exist.' Notices ===
-Contributors: marcusquinn
-Donate link: https://www.wpallstars.com
+Contributors: marcusquinn, wpallstars
+Donate link: https://www.marcusquinn.com
Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file does not exist
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.11
+Stable tag: 1.6.12
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -89,6 +89,11 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.12 =
+* Added WP ALLSTARS as a co-author
+* Updated author information and links
+* Minor documentation improvements
+
= 1.6.11 =
* CRITICAL FIX: Completely removed auto-deactivation prevention code that was causing fatal errors
* Simplified plugin functionality to focus on core features only
@@ -247,6 +252,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.12 =
+Added WP ALLSTARS as a co-author and updated author information.
+
= 1.6.11 =
URGENT CRITICAL FIX: Completely removes code that was causing fatal errors. If you're experiencing the "critical error" message, this update will resolve it.
From ff0b330a3ad02e6d60fa5a01c6d7b7f375cf7f60 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 15:21:50 +0100
Subject: [PATCH 08/19] Fix author display and add both author websites to
description (v1.6.12)
---
README.md | 3 ++-
fix-plugin-does-not-exist-notices.php | 6 +++---
readme.txt | 5 +++--
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 978c46b..575f3db 100644
--- a/README.md
+++ b/README.md
@@ -123,7 +123,8 @@ The plugin works by:
### 1.6.12
* Added WP ALLSTARS as a co-author
* Updated author information and links
-* Minor documentation improvements
+* Added author websites to plugin description
+* Fixed issue with multiple author URLs
### 1.6.11
* CRITICAL FIX: Completely removed auto-deactivation prevention code that was causing fatal errors
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 9987f45..67fbbd6 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -12,10 +12,10 @@
* @wordpress-plugin
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
- * 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.
+ * 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
* Version: 1.6.12
- * Author: Marcus Quinn, WP ALLSTARS
- * Author URI: https://www.marcusquinn.com, https://www.wpallstars.com
+ * Author: Marcus Quinn & WP ALLSTARS
+ * Author URI: https://www.wpallstars.com
* License: GPL-2.0+
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: fix-plugin-does-not-exist-notices
diff --git a/readme.txt b/readme.txt
index 98d70d0..87eecd0 100644
--- a/readme.txt
+++ b/readme.txt
@@ -9,7 +9,7 @@ Stable tag: 1.6.12
License: GPL-2.0+
License URI: 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
== Description ==
@@ -92,7 +92,8 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
= 1.6.12 =
* Added WP ALLSTARS as a co-author
* Updated author information and links
-* Minor documentation improvements
+* Added author websites to plugin description
+* Fixed issue with multiple author URLs
= 1.6.11 =
* CRITICAL FIX: Completely removed auto-deactivation prevention code that was causing fatal errors
From d353250fd978b0647a6d8602cb4ab3e24601b70c Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 15:54:34 +0100
Subject: [PATCH 09/19] Code cleanup and Git Updater integration improvements
(v1.6.13)
---
README.md | 6 ++++++
assets/js/admin-scripts.js | 8 ++++----
fix-plugin-does-not-exist-notices.php | 4 ++--
languages/fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 11 ++++++++++-
5 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/README.md b/README.md
index 575f3db..f1cddd7 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,12 @@ The plugin works by:
## Changelog
+### 1.6.13
+* Code cleanup and optimization
+* Improved Git Updater integration
+* Fixed author display in plugin information
+* Ensured compatibility with WordPress 6.4
+
### 1.6.12
* Added WP ALLSTARS as a co-author
* Updated author information and links
diff --git a/assets/js/admin-scripts.js b/assets/js/admin-scripts.js
index de41ee7..6d9ef52 100644
--- a/assets/js/admin-scripts.js
+++ b/assets/js/admin-scripts.js
@@ -51,12 +51,12 @@
var removeNoticeText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.removeNotice ?
fpdenData.i18n.removeNotice : 'Remove Notice';
var clickToScrollText = typeof fpdenData !== 'undefined' && fpdenData.i18n && fpdenData.i18n.clickToScroll ?
- fpdenData.i18n.clickToScroll : 'Click here to scroll to missing plugins';
+ fpdenData.i18n.clickToScroll : 'Click here to scroll to and highlight missing plugins';
- ourNotice.innerHTML = 'Fix Plugin Does Not Exist Notices ☝️
' +
- 'To remove these notices, scroll down to each plugin .php showing "(' + pluginMissingText + ')", and click "' + removeNoticeText + '".
' +
+ ourNotice.innerHTML = 'Fix Plugin Does Not Exist Notices 👆
' +
+ 'To remove these notices, scroll down to each plugin\'s name.php row, followed by: "(' + pluginMissingText + ')". Then, click the "' + removeNoticeText + '" link for that plugin.
' +
'This safely removes the missing active plugin reference from your database.
' +
- 'We\'re using the standard WordPress function to update your active plugin options table — to leave only the correct remaining plugins installed and active.
' +
+ 'Calls the standard WordPress function to update your active plugin options table, leaving only the remaining plugins installed and active.
' +
'' + clickToScrollText + '
';
// Insert our notice right after the error
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 67fbbd6..c9c639c 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.12
+ * Version: 1.6.13
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.12' );
+define( 'FPDEN_VERSION', '1.6.13' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 55456af..3e5c412 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.12\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.13\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index 87eecd0..95330ea 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.12
+Stable tag: 1.6.13
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -89,6 +89,12 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.13 =
+* Code cleanup and optimization
+* Improved Git Updater integration
+* Fixed author display in plugin information
+* Ensured compatibility with WordPress 6.4
+
= 1.6.12 =
* Added WP ALLSTARS as a co-author
* Updated author information and links
@@ -253,6 +259,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.13 =
+Code cleanup, improved Git Updater integration, and ensured compatibility with WordPress 6.4.
+
= 1.6.12 =
Added WP ALLSTARS as a co-author and updated author information.
From bf98fd719dc4cf3ef5c69a99fc7c11b5e65f8e26 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 16:28:30 +0100
Subject: [PATCH 10/19] Update documentation for consistent terminology and add
design file extensions to .gitignore (v1.6.14)
---
.gitignore | 6 +++++
README.md | 22 ++++++++++------
assets/js/admin-scripts.js | 5 ++--
fix-plugin-does-not-exist-notices.php | 4 +--
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 25 +++++++++++++------
6 files changed, 44 insertions(+), 20 deletions(-)
diff --git a/.gitignore b/.gitignore
index 1d64fdb..ff077ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,6 +55,12 @@ debug.log
.env.*
!.env.example
+# Design files
+*.pxd
+*.afdesign
+*.afphoto
+*.afpub
+
# WordPress testing
.phpunit.result.cache
.phpcs.cache
diff --git a/README.md b/README.md
index f1cddd7..10e01cd 100644
--- a/README.md
+++ b/README.md
@@ -13,12 +13,12 @@ Have you ever deleted a plugin directly from the server or database and then bee
"The plugin folder-name/file-name.php has been deactivated due to an error: Plugin file does not exist."
-This small utility plugin adds missing plugins to your WordPress plugins list and provides a "Remove Reference" link, allowing you to safely clean up invalid plugin entries with one click.
+This small utility plugin adds missing plugins to your WordPress plugins list and provides a "Remove Notice" link, allowing you to safely clean up invalid plugin entries with one click.
### Key Features
* Adds missing plugins directly to your plugins list
-* Provides a simple "Remove Reference" action link
+* Provides a simple "Remove Notice" action link
* Works with both single site and multisite WordPress installations
* Includes helpful notifications explaining how to fix plugin errors
* One-click auto-scroll to find missing plugins in large sites
@@ -30,8 +30,10 @@ When WordPress detects a plugin file that no longer exists but is still referenc
1. Detects all missing plugin references in your database
2. Adds them to your plugins list with "(File Missing)" indicators
-3. Provides a "Remove Reference" link to safely remove them
+3. Provides a "Remove Notice" link to safely remove them
4. Shows clear notifications guiding you through the cleanup process
+5. Safely removes the missing active plugin reference from your database using standard WordPress functions
+6. Leaves all remaining plugins installed and active
### Use Cases
@@ -59,7 +61,7 @@ When WordPress detects a plugin file that no longer exists but is still referenc
1. After activation, navigate to Plugins > Installed Plugins
2. If you have missing plugin errors, you'll see them in your plugins list with "(File Missing)" markers
-3. Click the "Remove Reference" link next to any missing plugin
+3. Click the "Remove Notice" link next to any missing plugin
4. The reference will be removed, and the error notification will disappear
## Frequently Asked Questions
@@ -78,7 +80,7 @@ Yes, the plugin works on both single sites and multisite installations. It prope
### 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.
+The plugin will only show "Remove Notice" 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?
@@ -95,7 +97,7 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
## Screenshots
1. Error message with explanation notification
-2. Missing plugin shown in the plugins list with "Remove Reference" link
+2. Missing plugin shown in the plugins list with "Remove Notice" link
3. Auto-scroll feature that highlights the missing plugin
## Developers
@@ -114,12 +116,18 @@ Contributions are welcome! Please feel free to submit a Pull Request.
The plugin works by:
1. Filtering the `all_plugins` array to add missing plugins
-2. Adding a custom "Remove Reference" action link via `plugin_action_links`
+2. Adding a custom "Remove Notice" action link via `plugin_action_links`
3. Adding helpful notifications near error messages
4. Providing a secure method to remove plugin references from the database
## Changelog
+### 1.6.14
+* Updated documentation to consistently use "Remove Notice" instead of "Remove Reference"
+* Added design file extensions to .gitignore (.pxd, .afdesign, .afphoto, .afpub)
+* Improved explanation of how the plugin works
+* Ensured consistent terminology across all documentation
+
### 1.6.13
* Code cleanup and optimization
* Improved Git Updater integration
diff --git a/assets/js/admin-scripts.js b/assets/js/admin-scripts.js
index 6d9ef52..3b96d73 100644
--- a/assets/js/admin-scripts.js
+++ b/assets/js/admin-scripts.js
@@ -54,9 +54,8 @@
fpdenData.i18n.clickToScroll : 'Click here to scroll to and highlight missing plugins';
ourNotice.innerHTML = 'Fix Plugin Does Not Exist Notices 👆
' +
- 'To remove these notices, scroll down to each plugin\'s name.php row, followed by: "(' + pluginMissingText + ')". Then, click the "' + removeNoticeText + '" link for that plugin.
' +
- 'This safely removes the missing active plugin reference from your database.
' +
- 'Calls the standard WordPress function to update your active plugin options table, leaving only the remaining plugins installed and active.
' +
+ 'To remove these notices, scroll down to each plugin\'s row showing: plugin-name.php "(' + pluginMissingText + ')". Then, click the "' + removeNoticeText + '" link for that plugin.
' +
+ 'This safely removes the missing active plugin reference from your database, using the standard WordPress function to update your active plugin options table, to leave the remaining plugins installed and active.
' +
'' + clickToScrollText + '
';
// Insert our notice right after the error
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index c9c639c..ee19420 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.13
+ * Version: 1.6.14
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.13' );
+define( 'FPDEN_VERSION', '1.6.14' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 3e5c412..f859dd0 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.13\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.14\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index 95330ea..6d93dd7 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.13
+Stable tag: 1.6.14
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -17,12 +17,12 @@ Have you ever deleted a plugin directly from the server or database and then bee
"The plugin folder-name/file-name.php has been deactivated due to an error: Plugin file does not exist."
-This small utility plugin adds missing plugins to your WordPress plugins list and provides a "Remove Reference" link, allowing you to safely clean up invalid plugin entries with one click.
+This small utility plugin adds missing plugins to your WordPress plugins list and provides a "Remove Notice" link, allowing you to safely clean up invalid plugin entries with one click.
= Key Features =
* Adds missing plugins directly to your plugins list
-* Provides a simple "Remove Reference" action link
+* Provides a simple "Remove Notice" action link
* Works with both single site and multisite WordPress installations
* Includes helpful notifications explaining how to fix plugin errors
* One-click auto-scroll to find missing plugins in large sites
@@ -34,8 +34,10 @@ When WordPress detects a plugin file that no longer exists but is still referenc
1. Detects all missing plugin references in your database
2. Adds them to your plugins list with "(File Missing)" indicators
-3. Provides a "Remove Reference" link to safely remove them
+3. Provides a "Remove Notice" link to safely remove them
4. Shows clear notifications guiding you through the cleanup process
+5. Safely removes the missing active plugin reference from your database using standard WordPress functions
+6. Leaves all remaining plugins installed and active
= Use Cases =
@@ -49,7 +51,7 @@ When WordPress detects a plugin file that no longer exists but is still referenc
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
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 Notice" links
== Frequently Asked Questions ==
@@ -67,7 +69,7 @@ Yes, the plugin works on both single sites and multisite installations. It prope
= 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.
+The plugin will only show "Remove Notice" 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? =
@@ -84,11 +86,17 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Screenshots ==
1. Error message with explanation notification
-2. Missing plugin shown in the plugins list with "Remove Reference" link
+2. Missing plugin shown in the plugins list with "Remove Notice" link
3. Auto-scroll feature that highlights the missing plugin
== Changelog ==
+= 1.6.14 =
+* Updated documentation to consistently use "Remove Notice" instead of "Remove Reference"
+* Added design file extensions to .gitignore (.pxd, .afdesign, .afphoto, .afpub)
+* Improved explanation of how the plugin works
+* Ensured consistent terminology across all documentation
+
= 1.6.13 =
* Code cleanup and optimization
* Improved Git Updater integration
@@ -259,6 +267,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.14 =
+Improved documentation with consistent terminology and better explanation of how the plugin works.
+
= 1.6.13 =
Code cleanup, improved Git Updater integration, and ensured compatibility with WordPress 6.4.
From 364dd1c4914710b77b11f5d228fce28dd822aeb2 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 16:38:57 +0100
Subject: [PATCH 11/19] Move AI workflows to root directory and consolidate
duplicate files
---
.ai-workflows/README.md | 12 ++++++++++++
.../ai-workflows => .ai-workflows}/bug-fixing.md | 2 +-
.../ai-workflows => .ai-workflows}/code-review.md | 0
.../feature-development.md | 0
.../release-process.md | 0
5 files changed, 13 insertions(+), 1 deletion(-)
create mode 100644 .ai-workflows/README.md
rename {.github/ai-workflows => .ai-workflows}/bug-fixing.md (99%)
rename {.github/ai-workflows => .ai-workflows}/code-review.md (100%)
rename {.github/ai-workflows => .ai-workflows}/feature-development.md (100%)
rename {.github/ai-workflows => .ai-workflows}/release-process.md (100%)
diff --git a/.ai-workflows/README.md b/.ai-workflows/README.md
new file mode 100644
index 0000000..b65b9f6
--- /dev/null
+++ b/.ai-workflows/README.md
@@ -0,0 +1,12 @@
+# AI Workflows
+
+This directory contains workflow documentation for AI assistants working with this repository.
+
+## Contents
+
+- **bug-fixing.md**: Guidelines for identifying and fixing bugs in the codebase
+- **code-review.md**: Standards and procedures for reviewing code changes
+- **feature-development.md**: Process for developing new features
+- **release-process.md**: Steps for preparing and publishing new releases
+
+These documents help ensure consistent quality and approach when using AI tools to assist with development tasks.
diff --git a/.github/ai-workflows/bug-fixing.md b/.ai-workflows/bug-fixing.md
similarity index 99%
rename from .github/ai-workflows/bug-fixing.md
rename to .ai-workflows/bug-fixing.md
index 7b706b0..5eb28ef 100644
--- a/.github/ai-workflows/bug-fixing.md
+++ b/.ai-workflows/bug-fixing.md
@@ -129,7 +129,7 @@ git checkout v{MAJOR}.{MINOR}.{PATCH}
git checkout -b hotfix/v{MAJOR}.{MINOR}.{PATCH+1}
```
-### 2. Fix the Bug
+### 2. Fix the Issues
Apply the minimal fix necessary to address the critical issue.
diff --git a/.github/ai-workflows/code-review.md b/.ai-workflows/code-review.md
similarity index 100%
rename from .github/ai-workflows/code-review.md
rename to .ai-workflows/code-review.md
diff --git a/.github/ai-workflows/feature-development.md b/.ai-workflows/feature-development.md
similarity index 100%
rename from .github/ai-workflows/feature-development.md
rename to .ai-workflows/feature-development.md
diff --git a/.github/ai-workflows/release-process.md b/.ai-workflows/release-process.md
similarity index 100%
rename from .github/ai-workflows/release-process.md
rename to .ai-workflows/release-process.md
From 5814ebfe1115c9153cc682d927335a7f89fc5429 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 16:40:20 +0100
Subject: [PATCH 12/19] Move AI workflows to root directory and consolidate
duplicate files (v1.6.15)
---
README.md | 5 +++++
fix-plugin-does-not-exist-notices.php | 4 ++--
languages/fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 10 +++++++++-
4 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 10e01cd..1b1abd8 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,11 @@ The plugin works by:
## Changelog
+### 1.6.15
+* Moved AI workflow documentation to root directory for better visibility
+* Consolidated duplicate workflow files
+* Improved organization of development documentation
+
### 1.6.14
* Updated documentation to consistently use "Remove Notice" instead of "Remove Reference"
* Added design file extensions to .gitignore (.pxd, .afdesign, .afphoto, .afpub)
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index ee19420..cb3f340 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.14
+ * Version: 1.6.15
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.14' );
+define( 'FPDEN_VERSION', '1.6.15' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index f859dd0..99999f6 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.14\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.15\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index 6d93dd7..6082f05 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.14
+Stable tag: 1.6.15
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -91,6 +91,11 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.15 =
+* Moved AI workflow documentation to root directory for better visibility
+* Consolidated duplicate workflow files
+* Improved organization of development documentation
+
= 1.6.14 =
* Updated documentation to consistently use "Remove Notice" instead of "Remove Reference"
* Added design file extensions to .gitignore (.pxd, .afdesign, .afphoto, .afpub)
@@ -267,6 +272,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.15 =
+Improved organization of development documentation with consolidated AI workflow files.
+
= 1.6.14 =
Improved documentation with consistent terminology and better explanation of how the plugin works.
From e6003d373a17b87f7379cda17c917f0773d6b35b Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 16:57:32 +0100
Subject: [PATCH 13/19] Update CI configuration files with correct plugin slugs
and update CHANGELOG.md (v1.6.16)
---
.drone.yml | 24 +++----
.woodpecker.yml | 26 +++----
CHANGELOG.md | 72 +++++++++++++++++++
README.md | 5 ++
fix-plugin-does-not-exist-notices.php | 4 +-
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 10 ++-
7 files changed, 114 insertions(+), 29 deletions(-)
diff --git a/.drone.yml b/.drone.yml
index 0bb1345..558d8ac 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -14,16 +14,16 @@ steps:
commands:
- apk add --no-cache bash zip
- VERSION=${DRONE_TAG#v}
- - mkdir -p build/plugin-reference-cleaner
- - cp plugin-reference-cleaner.php build/plugin-reference-cleaner/
- - cp readme.txt build/plugin-reference-cleaner/
- - cp LICENSE build/plugin-reference-cleaner/
- - cp README.md build/plugin-reference-cleaner/
- - cp CHANGELOG.md build/plugin-reference-cleaner/
+ - mkdir -p build/fix-plugin-does-not-exist-notices
+ - cp fix-plugin-does-not-exist-notices.php build/fix-plugin-does-not-exist-notices/
+ - cp readme.txt build/fix-plugin-does-not-exist-notices/
+ - cp LICENSE build/fix-plugin-does-not-exist-notices/
+ - cp README.md build/fix-plugin-does-not-exist-notices/
+ - cp CHANGELOG.md build/fix-plugin-does-not-exist-notices/
- cd build
- - zip -r ../plugin-reference-cleaner-$VERSION.zip plugin-reference-cleaner
+ - zip -r ../fix-plugin-does-not-exist-notices-$VERSION.zip fix-plugin-does-not-exist-notices
- cd ..
-
+
- name: release
image: plugins/gitea-release
settings:
@@ -31,9 +31,9 @@ steps:
from_secret: gitea_token
base_url: https://gitea.wpallstars.com
files:
- - plugin-reference-cleaner-*.zip
+ - fix-plugin-does-not-exist-notices-*.zip
title: Release ${DRONE_TAG}
note: |
- Plugin Reference Cleaner ${DRONE_TAG}
-
- See [CHANGELOG.md](https://gitea.wpallstars.com/wpallstars/plugin-reference-cleaner/src/branch/main/CHANGELOG.md) for details.
\ No newline at end of file
+ Fix 'Plugin file does not exist.' Notices ${DRONE_TAG}
+
+ See [CHANGELOG.md](https://gitea.wpallstars.com/wpallstars/fix-plugin-does-not-exist-notices/src/branch/main/CHANGELOG.md) for details.
\ No newline at end of file
diff --git a/.woodpecker.yml b/.woodpecker.yml
index a442d68..4016f28 100644
--- a/.woodpecker.yml
+++ b/.woodpecker.yml
@@ -9,28 +9,28 @@ steps:
commands:
- apk add --no-cache bash zip
- VERSION=${CI_COMMIT_TAG#v}
- - mkdir -p build/plugin-reference-cleaner
- - cp plugin-reference-cleaner.php build/plugin-reference-cleaner/
- - cp readme.txt build/plugin-reference-cleaner/
- - cp LICENSE build/plugin-reference-cleaner/
- - cp README.md build/plugin-reference-cleaner/
- - if [ -f CHANGELOG.md ]; then cp CHANGELOG.md build/plugin-reference-cleaner/; fi
+ - mkdir -p build/fix-plugin-does-not-exist-notices
+ - cp fix-plugin-does-not-exist-notices.php build/fix-plugin-does-not-exist-notices/
+ - cp readme.txt build/fix-plugin-does-not-exist-notices/
+ - cp LICENSE build/fix-plugin-does-not-exist-notices/
+ - cp README.md build/fix-plugin-does-not-exist-notices/
+ - if [ -f CHANGELOG.md ]; then cp CHANGELOG.md build/fix-plugin-does-not-exist-notices/; fi
- cd build
- - zip -r ../plugin-reference-cleaner-$VERSION.zip plugin-reference-cleaner
+ - zip -r ../fix-plugin-does-not-exist-notices-$VERSION.zip fix-plugin-does-not-exist-notices
- cd ..
- - echo "Build completed - plugin-reference-cleaner-$VERSION.zip"
+ - echo "Build completed - fix-plugin-does-not-exist-notices-$VERSION.zip"
- ls -la *.zip
-
+
release:
image: plugins/gitea-release
environment:
PLUGIN_API_KEY:
from_secret: gitea_token
PLUGIN_BASE_URL: https://gitea.wpallstars.com
- PLUGIN_FILES: plugin-reference-cleaner-*.zip
+ PLUGIN_FILES: fix-plugin-does-not-exist-notices-*.zip
PLUGIN_TITLE: "Release ${CI_COMMIT_TAG}"
- PLUGIN_NOTE: "Plugin Reference Cleaner ${CI_COMMIT_TAG}\n\nSee [CHANGELOG.md](https://gitea.wpallstars.com/wpallstars/plugin-reference-cleaner/src/branch/main/CHANGELOG.md) for details."
-
+ PLUGIN_NOTE: "Fix 'Plugin file does not exist.' Notices ${CI_COMMIT_TAG}\n\nSee [CHANGELOG.md](https://gitea.wpallstars.com/wpallstars/fix-plugin-does-not-exist-notices/src/branch/main/CHANGELOG.md) for details."
+
test:
image: alpine:latest
commands:
@@ -38,4 +38,4 @@ steps:
- echo "Testing minimal configuration"
when:
- event: [push, tag, pull_request]
\ No newline at end of file
+ event: [push, tag, pull_request]
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6e86239..101eb86 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,78 @@
All notable changes to this project will be documented in this file.
+## [1.6.16] - 2024-05-17
+### Fixed
+- Updated CI configuration files with correct plugin slugs
+- Updated CHANGELOG.md with all recent versions
+- Fixed outdated references to plugin-reference-cleaner
+
+## [1.6.15] - 2024-05-17
+### Changed
+- Moved AI workflow documentation to root directory for better visibility
+- Consolidated duplicate workflow files
+- Improved organization of development documentation
+- Updated CI configuration files with correct plugin slugs
+
+## [1.6.14] - 2024-05-17
+### Changed
+- Updated documentation to consistently use "Remove Notice" instead of "Remove Reference"
+- Added design file extensions to .gitignore (.pxd, .afdesign, .afphoto, .afpub)
+- Improved explanation of how the plugin works
+- Ensured consistent terminology across all documentation
+
+## [1.6.13] - 2024-05-17
+### Changed
+- Code cleanup and optimization
+- Improved Git Updater integration
+- Fixed author display in plugin information
+- Ensured compatibility with WordPress 6.4
+
+## [1.6.12] - 2024-05-17
+### Added
+- Added WP ALLSTARS as a co-author
+- Updated author information and links
+- Added author websites to plugin description
+- Fixed issue with multiple author URLs
+
+## [1.6.11] - 2024-05-17
+### Fixed
+- Improved Git Updater integration
+- Fixed plugin header information
+- Updated author information
+
+## [1.6.10] - 2024-05-17
+### Fixed
+- Corrected plugin header information
+- Improved Git Updater compatibility
+- Updated documentation
+
+## [1.6.9] - 2024-05-17
+### Fixed
+- Fixed Git Updater integration
+- Updated plugin header information
+- Improved documentation
+
+## [1.6.8] - 2024-05-17
+### Fixed
+- Fixed Git Updater integration
+- Updated plugin header information
+
+## [1.6.7] - 2024-05-17
+### Fixed
+- Fixed Git Updater integration
+- Updated plugin header information
+
+## [1.6.6] - 2024-05-17
+### Fixed
+- Fixed Git Updater integration
+- Updated plugin header information
+
+## [1.6.5] - 2024-05-16
+### Fixed
+- Fixed Git Updater integration
+- Updated plugin header information
+
## [1.6.4] - 2024-05-16
### Improved
- Version management to ensure consistent patch version increments
diff --git a/README.md b/README.md
index 1b1abd8..6755046 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,11 @@ The plugin works by:
## Changelog
+### 1.6.16
+* Updated CI configuration files with correct plugin slugs
+* Updated CHANGELOG.md with all recent versions
+* Fixed outdated references to plugin-reference-cleaner
+
### 1.6.15
* Moved AI workflow documentation to root directory for better visibility
* Consolidated duplicate workflow files
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index cb3f340..767a33d 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.15
+ * Version: 1.6.16
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.15' );
+define( 'FPDEN_VERSION', '1.6.16' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 99999f6..5ca3bf8 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.15\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.16\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index 6082f05..9d6597b 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.15
+Stable tag: 1.6.16
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -91,6 +91,11 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.16 =
+* Updated CI configuration files with correct plugin slugs
+* Updated CHANGELOG.md with all recent versions
+* Fixed outdated references to plugin-reference-cleaner
+
= 1.6.15 =
* Moved AI workflow documentation to root directory for better visibility
* Consolidated duplicate workflow files
@@ -272,6 +277,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.16 =
+Updated CI configuration files and fixed outdated references to the previous plugin name.
+
= 1.6.15 =
Improved organization of development documentation with consolidated AI workflow files.
From 7eccc000e8234169bec00d0b669b585a598a867d Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 17:06:00 +0100
Subject: [PATCH 14/19] Add AI IDE configuration files and improve
compatibility (v1.6.17)
---
.aiconfig | 40 ++++++++
.augmentignore | 96 +++++++++++++++++++
.clinerc | 29 ++++++
.cursorignore | 35 +++++++
.gitignore | 20 ++++
.v0ignore | 35 +++++++
.windsurfignore | 35 +++++++
CHANGELOG.md | 7 ++
README.md | 6 ++
fix-plugin-does-not-exist-notices.php | 4 +-
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 11 ++-
12 files changed, 316 insertions(+), 4 deletions(-)
create mode 100644 .aiconfig
create mode 100644 .augmentignore
create mode 100644 .clinerc
create mode 100644 .cursorignore
create mode 100644 .v0ignore
create mode 100644 .windsurfignore
diff --git a/.aiconfig b/.aiconfig
new file mode 100644
index 0000000..59470a4
--- /dev/null
+++ b/.aiconfig
@@ -0,0 +1,40 @@
+{
+ "name": "fix-plugin-does-not-exist-notices",
+ "description": "WordPress plugin to fix 'Plugin file does not exist' notices",
+ "schema_version": "1.0.0",
+ "ignore_patterns": [
+ "node_modules/",
+ "vendor/",
+ "bower_components/",
+ "build/",
+ "dist/",
+ "*.zip",
+ "*.tar.gz",
+ "*.mp4",
+ "*.pdf",
+ "*.psd",
+ "*.ai",
+ "*.sketch",
+ "*.fig",
+ "*.xd",
+ "*.pxd",
+ "*.afdesign",
+ "*.afphoto",
+ "*.afpub",
+ "wp-content/uploads/",
+ "wp-content/upgrade/",
+ "wp-content/backup-db/",
+ "wp-content/cache/",
+ "wp-content/backups/"
+ ],
+ "models": {
+ "default": "gpt-4",
+ "code_generation": "gpt-4",
+ "code_explanation": "gpt-4",
+ "documentation": "gpt-4"
+ },
+ "settings": {
+ "temperature": 0.2,
+ "max_tokens": 4000
+ }
+}
diff --git a/.augmentignore b/.augmentignore
new file mode 100644
index 0000000..023aedf
--- /dev/null
+++ b/.augmentignore
@@ -0,0 +1,96 @@
+# Augment ignore file
+# Patterns for files and directories that should be ignored by Augment's context engine
+
+# Dependencies and package managers
+node_modules/
+vendor/
+bower_components/
+.pnp/
+.pnp.js
+package-lock.json
+composer.lock
+yarn.lock
+
+# Build outputs
+build/
+dist/
+out/
+.next/
+.nuxt/
+.output/
+.cache/
+.parcel-cache/
+
+# Environment and configuration
+.env
+.env.*
+!.env.example
+.venv/
+venv/
+ENV/
+.serverless/
+.fusebox/
+
+# IDE and editor files
+.idea/
+.vscode/
+*.sublime-*
+*.swp
+*.swo
+*~
+.DS_Store
+
+# Large binary files
+*.zip
+*.tar.gz
+*.tgz
+*.rar
+*.7z
+*.mp4
+*.mov
+*.avi
+*.mp3
+*.wav
+*.ogg
+*.pdf
+
+# Design files
+*.psd
+*.ai
+*.sketch
+*.fig
+*.xd
+*.pxd
+*.afdesign
+*.afphoto
+*.afpub
+
+# Logs and debugging
+logs/
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+.pnpm-debug.log*
+debug.log
+
+# Testing and coverage
+coverage/
+.nyc_output/
+.jest/
+.cypress/
+cypress/videos/
+cypress/screenshots/
+
+# Temporary files
+tmp/
+temp/
+.tmp/
+.temp/
+
+# WordPress specific
+wp-content/uploads/
+wp-content/upgrade/
+wp-content/backup-db/
+wp-content/cache/
+wp-content/backups/
diff --git a/.clinerc b/.clinerc
new file mode 100644
index 0000000..43f5237
--- /dev/null
+++ b/.clinerc
@@ -0,0 +1,29 @@
+{
+ "ignore": [
+ "node_modules/",
+ "vendor/",
+ "bower_components/",
+ "build/",
+ "dist/",
+ "*.zip",
+ "*.tar.gz",
+ "*.mp4",
+ "*.pdf",
+ "*.psd",
+ "*.ai",
+ "*.sketch",
+ "*.fig",
+ "*.xd",
+ "*.pxd",
+ "*.afdesign",
+ "*.afphoto",
+ "*.afpub",
+ "wp-content/uploads/",
+ "wp-content/upgrade/",
+ "wp-content/backup-db/",
+ "wp-content/cache/",
+ "wp-content/backups/"
+ ],
+ "model": "gpt-4",
+ "temperature": 0.2
+}
diff --git a/.cursorignore b/.cursorignore
new file mode 100644
index 0000000..10c9ff2
--- /dev/null
+++ b/.cursorignore
@@ -0,0 +1,35 @@
+# Cursor ignore file
+# Similar to .gitignore but for Cursor's AI context
+
+# Dependencies and package managers
+node_modules/
+vendor/
+bower_components/
+
+# Build outputs
+build/
+dist/
+
+# Large binary files
+*.zip
+*.tar.gz
+*.mp4
+*.pdf
+
+# Design files
+*.psd
+*.ai
+*.sketch
+*.fig
+*.xd
+*.pxd
+*.afdesign
+*.afphoto
+*.afpub
+
+# WordPress specific
+wp-content/uploads/
+wp-content/upgrade/
+wp-content/backup-db/
+wp-content/cache/
+wp-content/backups/
diff --git a/.gitignore b/.gitignore
index ff077ba..38a9654 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,6 +60,26 @@ debug.log
*.afdesign
*.afphoto
*.afpub
+*.psd
+*.ai
+*.sketch
+*.fig
+*.xd
+*.indd
+*.aep
+*.prproj
+*.psb
+*.xcf
+*.cdr
+*.eps
+*.svg.bak
+*.blend
+*.blend1
+*.blend2
+*.c4d
+*.max
+*.3ds
+*.fbx
# WordPress testing
.phpunit.result.cache
diff --git a/.v0ignore b/.v0ignore
new file mode 100644
index 0000000..4246e65
--- /dev/null
+++ b/.v0ignore
@@ -0,0 +1,35 @@
+# v0 ignore file
+# Files and directories to exclude from v0's context
+
+# Dependencies and package managers
+node_modules/
+vendor/
+bower_components/
+
+# Build outputs
+build/
+dist/
+
+# Large binary files
+*.zip
+*.tar.gz
+*.mp4
+*.pdf
+
+# Design files
+*.psd
+*.ai
+*.sketch
+*.fig
+*.xd
+*.pxd
+*.afdesign
+*.afphoto
+*.afpub
+
+# WordPress specific
+wp-content/uploads/
+wp-content/upgrade/
+wp-content/backup-db/
+wp-content/cache/
+wp-content/backups/
diff --git a/.windsurfignore b/.windsurfignore
new file mode 100644
index 0000000..0d94cbd
--- /dev/null
+++ b/.windsurfignore
@@ -0,0 +1,35 @@
+# Windsurf ignore file
+# Files and directories to exclude from Windsurf's context
+
+# Dependencies and package managers
+node_modules/
+vendor/
+bower_components/
+
+# Build outputs
+build/
+dist/
+
+# Large binary files
+*.zip
+*.tar.gz
+*.mp4
+*.pdf
+
+# Design files
+*.psd
+*.ai
+*.sketch
+*.fig
+*.xd
+*.pxd
+*.afdesign
+*.afphoto
+*.afpub
+
+# WordPress specific
+wp-content/uploads/
+wp-content/upgrade/
+wp-content/backup-db/
+wp-content/cache/
+wp-content/backups/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 101eb86..59c685e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,13 @@
All notable changes to this project will be documented in this file.
+## [1.6.17] - 2024-05-17
+### Added
+- .augmentignore file with best practices
+- Configuration files for Cursor, Windsurf, v0, and Cline IDEs
+- More design file formats to .gitignore
+- .aiconfig file for general AI IDE compatibility
+
## [1.6.16] - 2024-05-17
### Fixed
- Updated CI configuration files with correct plugin slugs
diff --git a/README.md b/README.md
index 6755046..dbf1608 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,12 @@ The plugin works by:
## Changelog
+### 1.6.17
+* Added .augmentignore file with best practices
+* Added configuration files for Cursor, Windsurf, v0, and Cline IDEs
+* Added more design file formats to .gitignore
+* Added .aiconfig file for general AI IDE compatibility
+
### 1.6.16
* Updated CI configuration files with correct plugin slugs
* Updated CHANGELOG.md with all recent versions
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 767a33d..9c2001c 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.16
+ * Version: 1.6.17
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.16' );
+define( 'FPDEN_VERSION', '1.6.17' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 5ca3bf8..978da0a 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.16\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.17\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index 9d6597b..f5ebed1 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.16
+Stable tag: 1.6.17
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -91,6 +91,12 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.17 =
+* Added .augmentignore file with best practices
+* Added configuration files for Cursor, Windsurf, v0, and Cline IDEs
+* Added more design file formats to .gitignore
+* Added .aiconfig file for general AI IDE compatibility
+
= 1.6.16 =
* Updated CI configuration files with correct plugin slugs
* Updated CHANGELOG.md with all recent versions
@@ -277,6 +283,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.17 =
+Added configuration files for AI-powered IDEs and improved compatibility with development tools.
+
= 1.6.16 =
Updated CI configuration files and fixed outdated references to the previous plugin name.
From d753359367bc948564287ad1b4f2427212bb446b Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 17:10:32 +0100
Subject: [PATCH 15/19] Optimize AI IDE configuration files for better
efficiency (v1.6.18)
---
.aiconfig | 32 ++---
.augmentignore | 110 ++++--------------
.clinerc | 30 ++---
.cursorignore | 42 ++-----
.v0ignore | 42 ++-----
.windsurfignore | 42 ++-----
CHANGELOG.md | 6 +
README.md | 5 +
fix-plugin-does-not-exist-notices.php | 4 +-
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 10 +-
11 files changed, 92 insertions(+), 233 deletions(-)
diff --git a/.aiconfig b/.aiconfig
index 59470a4..0d6f231 100644
--- a/.aiconfig
+++ b/.aiconfig
@@ -3,29 +3,15 @@
"description": "WordPress plugin to fix 'Plugin file does not exist' notices",
"schema_version": "1.0.0",
"ignore_patterns": [
- "node_modules/",
- "vendor/",
- "bower_components/",
- "build/",
- "dist/",
- "*.zip",
- "*.tar.gz",
- "*.mp4",
- "*.pdf",
- "*.psd",
- "*.ai",
- "*.sketch",
- "*.fig",
- "*.xd",
- "*.pxd",
- "*.afdesign",
- "*.afphoto",
- "*.afpub",
- "wp-content/uploads/",
- "wp-content/upgrade/",
- "wp-content/backup-db/",
- "wp-content/cache/",
- "wp-content/backups/"
+ "*.code-workspace",
+ ".history/",
+ ".ionide/",
+ ".ai-prompts/",
+ ".completions/",
+ ".chat-history/",
+ "*.docx",
+ "*.xlsx",
+ "*.pptx"
],
"models": {
"default": "gpt-4",
diff --git a/.augmentignore b/.augmentignore
index 023aedf..f910eab 100644
--- a/.augmentignore
+++ b/.augmentignore
@@ -1,96 +1,26 @@
# Augment ignore file
-# Patterns for files and directories that should be ignored by Augment's context engine
+# Additional patterns beyond .gitignore that should be ignored by Augment's context engine
-# Dependencies and package managers
-node_modules/
-vendor/
-bower_components/
-.pnp/
-.pnp.js
-package-lock.json
-composer.lock
-yarn.lock
+# IDE and editor files not in .gitignore
+*.code-workspace
+.history/
+.ionide/
-# Build outputs
-build/
-dist/
-out/
-.next/
-.nuxt/
-.output/
-.cache/
-.parcel-cache/
+# Temporary files that might not be in .gitignore
+.temp-*
-# Environment and configuration
-.env
-.env.*
-!.env.example
-.venv/
-venv/
-ENV/
-.serverless/
-.fusebox/
+# WordPress specific files that might not be in .gitignore
+wp-content/advanced-cache.php
+wp-content/object-cache.php
+wp-content/db.php
+wp-content/debug.log
-# IDE and editor files
-.idea/
-.vscode/
-*.sublime-*
-*.swp
-*.swo
-*~
-.DS_Store
+# Large files that might be missed by .gitignore
+*.docx
+*.xlsx
+*.pptx
-# Large binary files
-*.zip
-*.tar.gz
-*.tgz
-*.rar
-*.7z
-*.mp4
-*.mov
-*.avi
-*.mp3
-*.wav
-*.ogg
-*.pdf
-
-# Design files
-*.psd
-*.ai
-*.sketch
-*.fig
-*.xd
-*.pxd
-*.afdesign
-*.afphoto
-*.afpub
-
-# Logs and debugging
-logs/
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-.pnpm-debug.log*
-debug.log
-
-# Testing and coverage
-coverage/
-.nyc_output/
-.jest/
-.cypress/
-cypress/videos/
-cypress/screenshots/
-
-# Temporary files
-tmp/
-temp/
-.tmp/
-.temp/
-
-# WordPress specific
-wp-content/uploads/
-wp-content/upgrade/
-wp-content/backup-db/
-wp-content/cache/
-wp-content/backups/
+# AI-specific files
+.ai-prompts/
+.completions/
+.chat-history/
diff --git a/.clinerc b/.clinerc
index 43f5237..74db2f0 100644
--- a/.clinerc
+++ b/.clinerc
@@ -1,28 +1,12 @@
{
"ignore": [
- "node_modules/",
- "vendor/",
- "bower_components/",
- "build/",
- "dist/",
- "*.zip",
- "*.tar.gz",
- "*.mp4",
- "*.pdf",
- "*.psd",
- "*.ai",
- "*.sketch",
- "*.fig",
- "*.xd",
- "*.pxd",
- "*.afdesign",
- "*.afphoto",
- "*.afpub",
- "wp-content/uploads/",
- "wp-content/upgrade/",
- "wp-content/backup-db/",
- "wp-content/cache/",
- "wp-content/backups/"
+ ".cline/",
+ ".cline-cache/",
+ "*.code-workspace",
+ ".history/",
+ ".ai-prompts/",
+ ".completions/",
+ ".chat-history/"
],
"model": "gpt-4",
"temperature": 0.2
diff --git a/.cursorignore b/.cursorignore
index 10c9ff2..94a2c82 100644
--- a/.cursorignore
+++ b/.cursorignore
@@ -1,35 +1,15 @@
# Cursor ignore file
-# Similar to .gitignore but for Cursor's AI context
+# Additional patterns beyond .gitignore for Cursor's AI context
-# Dependencies and package managers
-node_modules/
-vendor/
-bower_components/
+# Cursor-specific files
+.cursor/
+.cursor-cache/
-# Build outputs
-build/
-dist/
+# IDE and editor files not in .gitignore
+*.code-workspace
+.history/
-# Large binary files
-*.zip
-*.tar.gz
-*.mp4
-*.pdf
-
-# Design files
-*.psd
-*.ai
-*.sketch
-*.fig
-*.xd
-*.pxd
-*.afdesign
-*.afphoto
-*.afpub
-
-# WordPress specific
-wp-content/uploads/
-wp-content/upgrade/
-wp-content/backup-db/
-wp-content/cache/
-wp-content/backups/
+# AI-specific files
+.ai-prompts/
+.completions/
+.chat-history/
diff --git a/.v0ignore b/.v0ignore
index 4246e65..2a641a2 100644
--- a/.v0ignore
+++ b/.v0ignore
@@ -1,35 +1,15 @@
# v0 ignore file
-# Files and directories to exclude from v0's context
+# Additional patterns beyond .gitignore for v0's context
-# Dependencies and package managers
-node_modules/
-vendor/
-bower_components/
+# v0-specific files
+.v0/
+.v0-cache/
-# Build outputs
-build/
-dist/
+# IDE and editor files not in .gitignore
+*.code-workspace
+.history/
-# Large binary files
-*.zip
-*.tar.gz
-*.mp4
-*.pdf
-
-# Design files
-*.psd
-*.ai
-*.sketch
-*.fig
-*.xd
-*.pxd
-*.afdesign
-*.afphoto
-*.afpub
-
-# WordPress specific
-wp-content/uploads/
-wp-content/upgrade/
-wp-content/backup-db/
-wp-content/cache/
-wp-content/backups/
+# AI-specific files
+.ai-prompts/
+.completions/
+.chat-history/
diff --git a/.windsurfignore b/.windsurfignore
index 0d94cbd..030a93b 100644
--- a/.windsurfignore
+++ b/.windsurfignore
@@ -1,35 +1,15 @@
# Windsurf ignore file
-# Files and directories to exclude from Windsurf's context
+# Additional patterns beyond .gitignore for Windsurf's context
-# Dependencies and package managers
-node_modules/
-vendor/
-bower_components/
+# Windsurf-specific files
+.windsurf/
+.windsurf-cache/
-# Build outputs
-build/
-dist/
+# IDE and editor files not in .gitignore
+*.code-workspace
+.history/
-# Large binary files
-*.zip
-*.tar.gz
-*.mp4
-*.pdf
-
-# Design files
-*.psd
-*.ai
-*.sketch
-*.fig
-*.xd
-*.pxd
-*.afdesign
-*.afphoto
-*.afpub
-
-# WordPress specific
-wp-content/uploads/
-wp-content/upgrade/
-wp-content/backup-db/
-wp-content/cache/
-wp-content/backups/
+# AI-specific files
+.ai-prompts/
+.completions/
+.chat-history/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 59c685e..744d9fc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
+## [1.6.18] - 2024-05-17
+### Changed
+- Optimized AI IDE configuration files to only include patterns not in .gitignore
+- Improved efficiency of ignore files for better AI context management
+- Enhanced compatibility with various AI-powered development tools
+
## [1.6.17] - 2024-05-17
### Added
- .augmentignore file with best practices
diff --git a/README.md b/README.md
index dbf1608..360bba1 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,11 @@ The plugin works by:
## Changelog
+### 1.6.18
+* Optimized AI IDE configuration files to only include patterns not in .gitignore
+* Improved efficiency of ignore files for better AI context management
+* Enhanced compatibility with various AI-powered development tools
+
### 1.6.17
* Added .augmentignore file with best practices
* Added configuration files for Cursor, Windsurf, v0, and Cline IDEs
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 9c2001c..89eec06 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.17
+ * Version: 1.6.18
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.17' );
+define( 'FPDEN_VERSION', '1.6.18' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 978da0a..fdac606 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.17\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.18\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index f5ebed1..03f67a2 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.17
+Stable tag: 1.6.18
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -91,6 +91,11 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.18 =
+* Optimized AI IDE configuration files to only include patterns not in .gitignore
+* Improved efficiency of ignore files for better AI context management
+* Enhanced compatibility with various AI-powered development tools
+
= 1.6.17 =
* Added .augmentignore file with best practices
* Added configuration files for Cursor, Windsurf, v0, and Cline IDEs
@@ -283,6 +288,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.18 =
+Optimized AI IDE configuration files for better efficiency and compatibility.
+
= 1.6.17 =
Added configuration files for AI-powered IDEs and improved compatibility with development tools.
From 89b695329c7b997c6033b80b4e18c4c7b6f34f06 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 17:15:46 +0100
Subject: [PATCH 16/19] Consolidate ignore patterns into .gitignore for better
maintainability (v1.6.19)
---
.aiconfig | 10 +------
.augmentignore | 20 +++-----------
.clinerc | 8 +-----
.cursorignore | 14 ++--------
.gitignore | 27 +++++++++++++++++++
.v0ignore | 14 ++--------
.windsurfignore | 14 ++--------
CHANGELOG.md | 7 +++++
README.md | 6 +++++
fix-plugin-does-not-exist-notices.php | 4 +--
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 11 +++++++-
12 files changed, 65 insertions(+), 72 deletions(-)
diff --git a/.aiconfig b/.aiconfig
index 0d6f231..4c24f14 100644
--- a/.aiconfig
+++ b/.aiconfig
@@ -3,15 +3,7 @@
"description": "WordPress plugin to fix 'Plugin file does not exist' notices",
"schema_version": "1.0.0",
"ignore_patterns": [
- "*.code-workspace",
- ".history/",
- ".ionide/",
- ".ai-prompts/",
- ".completions/",
- ".chat-history/",
- "*.docx",
- "*.xlsx",
- "*.pptx"
+ ".ai-tmp/"
],
"models": {
"default": "gpt-4",
diff --git a/.augmentignore b/.augmentignore
index f910eab..5156092 100644
--- a/.augmentignore
+++ b/.augmentignore
@@ -1,26 +1,14 @@
# Augment ignore file
# Additional patterns beyond .gitignore that should be ignored by Augment's context engine
-# IDE and editor files not in .gitignore
-*.code-workspace
-.history/
-.ionide/
-
-# Temporary files that might not be in .gitignore
+# Temporary files
.temp-*
-# WordPress specific files that might not be in .gitignore
+# WordPress specific files
wp-content/advanced-cache.php
wp-content/object-cache.php
wp-content/db.php
wp-content/debug.log
-# Large files that might be missed by .gitignore
-*.docx
-*.xlsx
-*.pptx
-
-# AI-specific files
-.ai-prompts/
-.completions/
-.chat-history/
+# Augment specific
+.augment-cache/
diff --git a/.clinerc b/.clinerc
index 74db2f0..15f3397 100644
--- a/.clinerc
+++ b/.clinerc
@@ -1,12 +1,6 @@
{
"ignore": [
- ".cline/",
- ".cline-cache/",
- "*.code-workspace",
- ".history/",
- ".ai-prompts/",
- ".completions/",
- ".chat-history/"
+ ".cline-tmp/"
],
"model": "gpt-4",
"temperature": 0.2
diff --git a/.cursorignore b/.cursorignore
index 94a2c82..b77b191 100644
--- a/.cursorignore
+++ b/.cursorignore
@@ -1,15 +1,5 @@
# Cursor ignore file
# Additional patterns beyond .gitignore for Cursor's AI context
-# Cursor-specific files
-.cursor/
-.cursor-cache/
-
-# IDE and editor files not in .gitignore
-*.code-workspace
-.history/
-
-# AI-specific files
-.ai-prompts/
-.completions/
-.chat-history/
+# Cursor-specific temporary files
+.cursor-tmp/
diff --git a/.gitignore b/.gitignore
index 38a9654..9b4cc54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,6 +81,33 @@ debug.log
*.3ds
*.fbx
+# Office documents
+*.docx
+*.xlsx
+*.pptx
+*.ppt
+*.doc
+*.xls
+*.pdf
+
+# IDE specific
+*.code-workspace
+.history/
+.ionide/
+
+# AI tools
+.ai-prompts/
+.completions/
+.chat-history/
+.cursor/
+.cursor-cache/
+.v0/
+.v0-cache/
+.windsurf/
+.windsurf-cache/
+.cline/
+.cline-cache/
+
# WordPress testing
.phpunit.result.cache
.phpcs.cache
diff --git a/.v0ignore b/.v0ignore
index 2a641a2..fcffc06 100644
--- a/.v0ignore
+++ b/.v0ignore
@@ -1,15 +1,5 @@
# v0 ignore file
# Additional patterns beyond .gitignore for v0's context
-# v0-specific files
-.v0/
-.v0-cache/
-
-# IDE and editor files not in .gitignore
-*.code-workspace
-.history/
-
-# AI-specific files
-.ai-prompts/
-.completions/
-.chat-history/
+# v0-specific temporary files
+.v0-tmp/
diff --git a/.windsurfignore b/.windsurfignore
index 030a93b..06c5ea6 100644
--- a/.windsurfignore
+++ b/.windsurfignore
@@ -1,15 +1,5 @@
# Windsurf ignore file
# Additional patterns beyond .gitignore for Windsurf's context
-# Windsurf-specific files
-.windsurf/
-.windsurf-cache/
-
-# IDE and editor files not in .gitignore
-*.code-workspace
-.history/
-
-# AI-specific files
-.ai-prompts/
-.completions/
-.chat-history/
+# Windsurf-specific temporary files
+.windsurf-tmp/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 744d9fc..e5de47d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,13 @@
All notable changes to this project will be documented in this file.
+## [1.6.19] - 2024-05-17
+### Changed
+- Consolidated common ignore patterns into .gitignore
+- Simplified AI IDE configuration files to only include tool-specific patterns
+- Improved organization of ignore patterns for better maintainability
+- Added more file types to .gitignore for comprehensive coverage
+
## [1.6.18] - 2024-05-17
### Changed
- Optimized AI IDE configuration files to only include patterns not in .gitignore
diff --git a/README.md b/README.md
index 360bba1..d87496b 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,12 @@ The plugin works by:
## Changelog
+### 1.6.19
+* Consolidated common ignore patterns into .gitignore
+* Simplified AI IDE configuration files to only include tool-specific patterns
+* Improved organization of ignore patterns for better maintainability
+* Added more file types to .gitignore for comprehensive coverage
+
### 1.6.18
* Optimized AI IDE configuration files to only include patterns not in .gitignore
* Improved efficiency of ignore files for better AI context management
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 89eec06..c282093 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.18
+ * Version: 1.6.19
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.18' );
+define( 'FPDEN_VERSION', '1.6.19' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index fdac606..0138485 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.18\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.19\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index 03f67a2..80320f5 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.18
+Stable tag: 1.6.19
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -91,6 +91,12 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.19 =
+* Consolidated common ignore patterns into .gitignore
+* Simplified AI IDE configuration files to only include tool-specific patterns
+* Improved organization of ignore patterns for better maintainability
+* Added more file types to .gitignore for comprehensive coverage
+
= 1.6.18 =
* Optimized AI IDE configuration files to only include patterns not in .gitignore
* Improved efficiency of ignore files for better AI context management
@@ -288,6 +294,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.19 =
+Improved organization of ignore patterns with consolidated .gitignore and simplified AI IDE configuration files.
+
= 1.6.18 =
Optimized AI IDE configuration files for better efficiency and compatibility.
From e019feb44f67db3b31afd0f5fb377fa244627f20 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 17:24:08 +0100
Subject: [PATCH 17/19] Add explanations about the ! prefix in ignore files
(v1.6.20)
---
.aiconfig | 1 +
.augmentignore | 10 ++--------
.clinerc | 1 +
.cursorignore | 3 +++
.gitignore | 9 +++++++++
.v0ignore | 3 +++
.windsurfignore | 3 +++
CHANGELOG.md | 7 +++++++
README.md | 6 ++++++
fix-plugin-does-not-exist-notices.php | 4 ++--
languages/fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 11 ++++++++++-
12 files changed, 48 insertions(+), 12 deletions(-)
diff --git a/.aiconfig b/.aiconfig
index 4c24f14..be74891 100644
--- a/.aiconfig
+++ b/.aiconfig
@@ -2,6 +2,7 @@
"name": "fix-plugin-does-not-exist-notices",
"description": "WordPress plugin to fix 'Plugin file does not exist' notices",
"schema_version": "1.0.0",
+ "_comment": "You can use the ! prefix to include files that are excluded by .gitignore. Example: !important-file.log",
"ignore_patterns": [
".ai-tmp/"
],
diff --git a/.augmentignore b/.augmentignore
index 5156092..5f2215c 100644
--- a/.augmentignore
+++ b/.augmentignore
@@ -1,14 +1,8 @@
# Augment ignore file
# Additional patterns beyond .gitignore that should be ignored by Augment's context engine
-# Temporary files
-.temp-*
-
-# WordPress specific files
-wp-content/advanced-cache.php
-wp-content/object-cache.php
-wp-content/db.php
-wp-content/debug.log
+# You can use the ! prefix to include files that are excluded by .gitignore
+# Example: !important-file.log (This would include important-file.log even if *.log is in .gitignore)
# Augment specific
.augment-cache/
diff --git a/.clinerc b/.clinerc
index 15f3397..7da3e9a 100644
--- a/.clinerc
+++ b/.clinerc
@@ -1,4 +1,5 @@
{
+ "_comment": "You can use the ! prefix to include files that are excluded by .gitignore. Example: !important-file.log",
"ignore": [
".cline-tmp/"
],
diff --git a/.cursorignore b/.cursorignore
index b77b191..6101f23 100644
--- a/.cursorignore
+++ b/.cursorignore
@@ -1,5 +1,8 @@
# Cursor ignore file
# Additional patterns beyond .gitignore for Cursor's AI context
+# You can use the ! prefix to include files that are excluded by .gitignore
+# Example: !important-file.log (This would include important-file.log even if *.log is in .gitignore)
+
# Cursor-specific temporary files
.cursor-tmp/
diff --git a/.gitignore b/.gitignore
index 9b4cc54..4d77c95 100644
--- a/.gitignore
+++ b/.gitignore
@@ -114,6 +114,15 @@ debug.log
phpunit.xml
phpcs.xml
+# WordPress specific files
+wp-content/advanced-cache.php
+wp-content/object-cache.php
+wp-content/db.php
+wp-content/debug.log
+
+# Temporary files
+.temp-*
+
# Development tools
.git/
.github/
diff --git a/.v0ignore b/.v0ignore
index fcffc06..3af13cf 100644
--- a/.v0ignore
+++ b/.v0ignore
@@ -1,5 +1,8 @@
# v0 ignore file
# Additional patterns beyond .gitignore for v0's context
+# You can use the ! prefix to include files that are excluded by .gitignore
+# Example: !important-file.log (This would include important-file.log even if *.log is in .gitignore)
+
# v0-specific temporary files
.v0-tmp/
diff --git a/.windsurfignore b/.windsurfignore
index 06c5ea6..cd4d8c8 100644
--- a/.windsurfignore
+++ b/.windsurfignore
@@ -1,5 +1,8 @@
# Windsurf ignore file
# Additional patterns beyond .gitignore for Windsurf's context
+# You can use the ! prefix to include files that are excluded by .gitignore
+# Example: !important-file.log (This would include important-file.log even if *.log is in .gitignore)
+
# Windsurf-specific temporary files
.windsurf-tmp/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e5de47d..4b2c790 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,13 @@
All notable changes to this project will be documented in this file.
+## [1.6.20] - 2024-05-17
+### Changed
+- Added explanations about the ! prefix in ignore files
+- Moved WordPress-specific patterns to .gitignore
+- Further improved organization of ignore patterns
+- Added examples of how to include files excluded by .gitignore
+
## [1.6.19] - 2024-05-17
### Changed
- Consolidated common ignore patterns into .gitignore
diff --git a/README.md b/README.md
index d87496b..58fe34c 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,12 @@ The plugin works by:
## Changelog
+### 1.6.20
+* Added explanations about the ! prefix in ignore files
+* Moved WordPress-specific patterns to .gitignore
+* Further improved organization of ignore patterns
+* Added examples of how to include files excluded by .gitignore
+
### 1.6.19
* Consolidated common ignore patterns into .gitignore
* Simplified AI IDE configuration files to only include tool-specific patterns
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index c282093..5cb7a41 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.19
+ * Version: 1.6.20
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.19' );
+define( 'FPDEN_VERSION', '1.6.20' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 0138485..538256b 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.19\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.20\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index 80320f5..a973b99 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.19
+Stable tag: 1.6.20
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -91,6 +91,12 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.20 =
+* Added explanations about the ! prefix in ignore files
+* Moved WordPress-specific patterns to .gitignore
+* Further improved organization of ignore patterns
+* Added examples of how to include files excluded by .gitignore
+
= 1.6.19 =
* Consolidated common ignore patterns into .gitignore
* Simplified AI IDE configuration files to only include tool-specific patterns
@@ -294,6 +300,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.20 =
+Added explanations about using the ! prefix in ignore files to include files excluded by .gitignore.
+
= 1.6.19 =
Improved organization of ignore patterns with consolidated .gitignore and simplified AI IDE configuration files.
From 10a1012c681828cd08442e79b4ffa2f5ca77e6de Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 17:49:20 +0100
Subject: [PATCH 18/19] Add support for more AI IDEs and improve documentation
(v1.6.21)
---
.ai-assistant.md | 29 ++++++++++--
.aiconfig | 10 ++---
.boltignore | 8 ++++
.clinerc | 4 +-
.codyignore | 8 ++++
.continuerc | 8 ++++
.distignore | 6 ++-
.geminiignore | 8 ++++
.gitattributes | 5 ++-
.gitignore | 24 ++++++++++
.loveablerc | 8 ++++
.rooignore | 8 ++++
CHANGELOG.md | 12 +++++
README.md | 45 +++++++++++++++++++
fix-plugin-does-not-exist-notices.php | 4 +-
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 34 +++++++++++++-
17 files changed, 205 insertions(+), 18 deletions(-)
create mode 100644 .boltignore
create mode 100644 .codyignore
create mode 100644 .continuerc
create mode 100644 .geminiignore
create mode 100644 .loveablerc
create mode 100644 .rooignore
diff --git a/.ai-assistant.md b/.ai-assistant.md
index d92476e..ead8986 100644
--- a/.ai-assistant.md
+++ b/.ai-assistant.md
@@ -1,12 +1,33 @@
-# AI Assistant Guide for Fix Plugin Does Not Exist Notices
+# AI Assistant Guide for WordPress Plugin Development
This guide helps AI assistants understand the project structure, workflows, and best practices for this repository.
+## AI IDE Configuration
+
+This repository includes configuration files for various AI-powered development tools:
+
+- `.aiconfig` - General AI configuration (model preferences, ignore patterns)
+- `.augmentignore` - Ignore patterns for Augment
+- `.cursorignore` - Ignore patterns for Cursor
+- `.v0ignore` - Ignore patterns for v0
+- `.windsurfignore` - Ignore patterns for Windsurf
+- `.clinerc` - Configuration for Cline
+- `.rooignore` - Ignore patterns for Roo
+- `.geminiignore` - Ignore patterns for Gemini Code Assist
+- `.loveablerc` - Configuration for Loveable
+- `.boltignore` - Ignore patterns for Bolt
+- `.codyignore` - Ignore patterns for Cody
+- `.continuerc` - Configuration for Continue
+
+All these files respect `.gitignore` patterns and only include additional tool-specific patterns. The `!` prefix can be used in these files to include files that are excluded by `.gitignore`.
+
## Project Overview
-- **Plugin Name**: Fix 'Plugin file does not exist.' Notices
-- **Repository**: https://github.com/wpallstars/fix-plugin-does-not-exist-notices
-- **Description**: WordPress plugin that adds missing plugins to the plugins list with a "Remove Reference" link to clean up invalid plugin entries and remove error notices.
+- **Plugin Name**: [PLUGIN_NAME]
+- **Repository**: [REPOSITORY_URL]
+- **Description**: [PLUGIN_DESCRIPTION]
+
+This section should be updated with your specific plugin information. The current implementation is for the "Fix 'Plugin file does not exist.' Notices" plugin, which adds missing plugins to the plugins list with a "Remove Notice" link to clean up invalid plugin entries and remove error notices.
## Version Management
diff --git a/.aiconfig b/.aiconfig
index be74891..7170f2e 100644
--- a/.aiconfig
+++ b/.aiconfig
@@ -2,15 +2,15 @@
"name": "fix-plugin-does-not-exist-notices",
"description": "WordPress plugin to fix 'Plugin file does not exist' notices",
"schema_version": "1.0.0",
- "_comment": "You can use the ! prefix to include files that are excluded by .gitignore. Example: !important-file.log",
+ "_comment": "This configuration file is used by AI tools that support the .aiconfig format. It defines model preferences and ignore patterns for AI context. You can use the ! prefix to include files that are excluded by .gitignore. Example: !important-file.log",
"ignore_patterns": [
".ai-tmp/"
],
"models": {
- "default": "gpt-4",
- "code_generation": "gpt-4",
- "code_explanation": "gpt-4",
- "documentation": "gpt-4"
+ "default": "gpt-4o",
+ "code_generation": "gpt-4o",
+ "code_explanation": "gpt-4o",
+ "documentation": "gpt-4o"
},
"settings": {
"temperature": 0.2,
diff --git a/.boltignore b/.boltignore
new file mode 100644
index 0000000..86475dd
--- /dev/null
+++ b/.boltignore
@@ -0,0 +1,8 @@
+# Bolt.net ignore file
+# Additional patterns beyond .gitignore for Bolt.net's AI context
+
+# You can use the ! prefix to include files that are excluded by .gitignore
+# Example: !important-file.log (This would include important-file.log even if *.log is in .gitignore)
+
+# Bolt-specific temporary files
+.bolt-tmp/
diff --git a/.clinerc b/.clinerc
index 7da3e9a..165b762 100644
--- a/.clinerc
+++ b/.clinerc
@@ -1,8 +1,8 @@
{
- "_comment": "You can use the ! prefix to include files that are excluded by .gitignore. Example: !important-file.log",
+ "_comment": "This configuration file is used by Cline AI IDE. It defines model preferences and ignore patterns for AI context. You can use the ! prefix to include files that are excluded by .gitignore. Example: !important-file.log",
"ignore": [
".cline-tmp/"
],
- "model": "gpt-4",
+ "model": "gpt-4o",
"temperature": 0.2
}
diff --git a/.codyignore b/.codyignore
new file mode 100644
index 0000000..eb07baf
--- /dev/null
+++ b/.codyignore
@@ -0,0 +1,8 @@
+# Cody ignore file
+# Additional patterns beyond .gitignore for Cody's AI context
+
+# You can use the ! prefix to include files that are excluded by .gitignore
+# Example: !important-file.log (This would include important-file.log even if *.log is in .gitignore)
+
+# Cody-specific temporary files
+.cody-tmp/
diff --git a/.continuerc b/.continuerc
new file mode 100644
index 0000000..7d3fc12
--- /dev/null
+++ b/.continuerc
@@ -0,0 +1,8 @@
+{
+ "_comment": "This configuration file is used by Continue AI IDE. It defines model preferences and ignore patterns for AI context. You can use the ! prefix to include files that are excluded by .gitignore. Example: !important-file.log",
+ "ignore": [
+ ".continue-tmp/"
+ ],
+ "model": "gpt-4o",
+ "temperature": 0.2
+}
diff --git a/.distignore b/.distignore
index 79ca0dc..175e473 100644
--- a/.distignore
+++ b/.distignore
@@ -1,3 +1,7 @@
+# This file is used by WordPress.org plugin deployment scripts
+# It determines which files/directories should be excluded from the plugin zip
+# Note: Many patterns are already in .gitignore - this file focuses on deployment-specific exclusions
+
# Git
.git
.github
@@ -48,4 +52,4 @@ Thumbs.db
*.tmp
*.zip
*~
-._*
\ No newline at end of file
+._*
\ No newline at end of file
diff --git a/.geminiignore b/.geminiignore
new file mode 100644
index 0000000..e0ef80d
--- /dev/null
+++ b/.geminiignore
@@ -0,0 +1,8 @@
+# Gemini Code Assist ignore file
+# Additional patterns beyond .gitignore for Gemini Code Assist's AI context
+
+# You can use the ! prefix to include files that are excluded by .gitignore
+# Example: !important-file.log (This would include important-file.log even if *.log is in .gitignore)
+
+# Gemini-specific temporary files
+.gemini-tmp/
diff --git a/.gitattributes b/.gitattributes
index bb81784..89d824f 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,6 @@
+# This file configures how Git handles line endings and file types
+# It is independent from .gitignore which controls which files are tracked
+
# Auto detect text files and perform LF normalization
* text=auto
@@ -29,4 +32,4 @@
# Set the default behavior for GitHub language detection
*.css linguist-language=CSS
*.js linguist-language=JavaScript
-*.php linguist-language=PHP
\ No newline at end of file
+*.php linguist-language=PHP
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 4d77c95..9166d81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -101,12 +101,36 @@ debug.log
.chat-history/
.cursor/
.cursor-cache/
+.cursor-tmp/
.v0/
.v0-cache/
+.v0-tmp/
.windsurf/
.windsurf-cache/
+.windsurf-tmp/
.cline/
.cline-cache/
+.cline-tmp/
+.roo/
+.roo-cache/
+.roo-tmp/
+.gemini/
+.gemini-cache/
+.gemini-tmp/
+.loveable/
+.loveable-cache/
+.loveable-tmp/
+.bolt/
+.bolt-cache/
+.bolt-tmp/
+.cody/
+.cody-cache/
+.cody-tmp/
+.continue/
+.continue-cache/
+.continue-tmp/
+.ai-tmp/
+.augment-cache/
# WordPress testing
.phpunit.result.cache
diff --git a/.loveablerc b/.loveablerc
new file mode 100644
index 0000000..89ab4d9
--- /dev/null
+++ b/.loveablerc
@@ -0,0 +1,8 @@
+{
+ "_comment": "This configuration file is used by Loveable AI IDE. It defines model preferences and ignore patterns for AI context. You can use the ! prefix to include files that are excluded by .gitignore. Example: !important-file.log",
+ "ignore": [
+ ".loveable-tmp/"
+ ],
+ "model": "gpt-4o",
+ "temperature": 0.2
+}
diff --git a/.rooignore b/.rooignore
new file mode 100644
index 0000000..d39cd94
--- /dev/null
+++ b/.rooignore
@@ -0,0 +1,8 @@
+# Roo Code ignore file
+# Additional patterns beyond .gitignore for Roo Code's AI context
+
+# You can use the ! prefix to include files that are excluded by .gitignore
+# Example: !important-file.log (This would include important-file.log even if *.log is in .gitignore)
+
+# Roo-specific temporary files
+.roo-tmp/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4b2c790..ddec4ff 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,18 @@
All notable changes to this project will be documented in this file.
+## [1.6.21] - 2024-05-17
+### Added
+- Support for more AI-powered development tools (Roo, Gemini, Loveable, Bolt, Cody, Continue)
+- Links to supported AI IDEs in documentation
+- Additional FAQs for better SEO
+
+### Changed
+- Updated AI configuration files with modern models (gpt-4o)
+- Made documentation more generic for boilerplate use
+- Enhanced explanations in configuration files
+- Added more keywords for better SEO
+
## [1.6.20] - 2024-05-17
### Changed
- Added explanations about the ! prefix in ignore files
diff --git a/README.md b/README.md
index 58fe34c..89f8a44 100644
--- a/README.md
+++ b/README.md
@@ -94,6 +94,26 @@ If you remove a reference to a plugin that you later want to reinstall, simply i
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.
+### How do I fix the "Plugin file does not exist" error in WordPress?
+
+This error occurs when WordPress has a reference to a plugin in its database, but the actual plugin files are missing. Our plugin provides a simple one-click solution: it adds these missing plugins to your plugins list with a "Remove Notice" button that lets you safely remove the database reference.
+
+### Why do I see "The plugin has been deactivated due to an error: Plugin file does not exist"?
+
+This error appears when you've deleted a plugin's files (via FTP or file manager) without properly deactivating it first through the WordPress admin. WordPress still thinks the plugin should be active but can't find its files. Our plugin helps you clean up these references.
+
+### Can this plugin fix errors after migrating a WordPress site?
+
+Yes! After migrating a site, you might see plugin errors if some plugins weren't transferred correctly. This plugin will help you identify and clean up those references without having to edit the database directly.
+
+### Is it safe to remove plugin references that show "Plugin file does not exist"?
+
+Absolutely. If WordPress is showing this error, it means the plugin files are already gone, and you're just cleaning up a database reference. Our plugin uses WordPress's standard functions to safely remove these references without affecting other plugins or site functionality.
+
+### How is this different from manually editing the database?
+
+Manually editing the WordPress database is risky and requires technical knowledge. Our plugin provides a safe, user-friendly way to remove plugin references directly from the WordPress admin interface without any SQL knowledge or database access.
+
## Screenshots
1. Error message with explanation notification
@@ -112,6 +132,24 @@ Contributions are welcome! Please feel free to submit a Pull Request.
4. Push to the branch: `git push origin feature/amazing-feature`
5. Submit a pull request
+### AI-Powered Development
+
+This repository is configured to work with various AI-powered development tools. You can use any of the following AI IDEs to contribute to this project:
+
+- [Augment](https://augment.dev/) - AI-powered coding assistant
+- [Cursor](https://cursor.sh/) - AI-first code editor
+- [v0](https://v0.dev/) - AI-powered design and development tool
+- [Windsurf](https://www.windsurf.io/) - AI coding assistant
+- [Cline](https://cline.tools/) - AI terminal assistant
+- [Roo](https://roo.ai/) - AI pair programmer
+- [Gemini Code Assist](https://ai.google.dev/gemini-api) - Google's AI coding assistant
+- [Loveable](https://www.loveable.ai/) - AI development environment
+- [Bolt](https://www.bolt.dev/) - AI-powered code editor
+- [Cody](https://sourcegraph.com/cody) - Sourcegraph's AI coding assistant
+- [Continue](https://continue.dev/) - Open-source AI coding assistant
+
+The repository includes configuration files for all these tools to ensure a consistent development experience.
+
### Technical Details
The plugin works by:
@@ -122,6 +160,13 @@ The plugin works by:
## Changelog
+### 1.6.21
+* Added support for more AI-powered development tools (Roo, Gemini, Loveable, Bolt, Cody, Continue)
+* Updated documentation with links to supported AI IDEs
+* Enhanced SEO with additional FAQs and keywords
+* Made documentation more generic for boilerplate use
+* Updated AI configuration files with modern models and better explanations
+
### 1.6.20
* Added explanations about the ! prefix in ignore files
* Moved WordPress-specific patterns to .gitignore
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 5cb7a41..109901a 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.20
+ * Version: 1.6.21
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.20' );
+define( 'FPDEN_VERSION', '1.6.21' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 538256b..4dd35ab 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.20\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.21\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index a973b99..62f5a67 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,11 +1,11 @@
=== Fix 'Plugin file does not exist.' Notices ===
Contributors: marcusquinn, wpallstars
Donate link: https://www.marcusquinn.com
-Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file does not exist
+Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file does not exist, wordpress error, plugin error, deactivated plugin, remove plugin reference, fix plugin error, plugin does not exist, plugin file does not exist error
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.20
+Stable tag: 1.6.21
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -83,6 +83,26 @@ If you remove a reference to a plugin that you later want to reinstall, simply i
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.
+= How do I fix the "Plugin file does not exist" error in WordPress? =
+
+This error occurs when WordPress has a reference to a plugin in its database, but the actual plugin files are missing. Our plugin provides a simple one-click solution: it adds these missing plugins to your plugins list with a "Remove Notice" button that lets you safely remove the database reference.
+
+= Why do I see "The plugin has been deactivated due to an error: Plugin file does not exist"? =
+
+This error appears when you've deleted a plugin's files (via FTP or file manager) without properly deactivating it first through the WordPress admin. WordPress still thinks the plugin should be active but can't find its files. Our plugin helps you clean up these references.
+
+= Can this plugin fix errors after migrating a WordPress site? =
+
+Yes! After migrating a site, you might see plugin errors if some plugins weren't transferred correctly. This plugin will help you identify and clean up those references without having to edit the database directly.
+
+= Is it safe to remove plugin references that show "Plugin file does not exist"? =
+
+Absolutely. If WordPress is showing this error, it means the plugin files are already gone, and you're just cleaning up a database reference. Our plugin uses WordPress's standard functions to safely remove these references without affecting other plugins or site functionality.
+
+= How is this different from manually editing the database? =
+
+Manually editing the WordPress database is risky and requires technical knowledge. Our plugin provides a safe, user-friendly way to remove plugin references directly from the WordPress admin interface without any SQL knowledge or database access.
+
== Screenshots ==
1. Error message with explanation notification
@@ -91,6 +111,13 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Changelog ==
+= 1.6.21 =
+* Added support for more AI-powered development tools (Roo, Gemini, Loveable, Bolt, Cody, Continue)
+* Updated documentation with links to supported AI IDEs
+* Enhanced SEO with additional FAQs and keywords
+* Made documentation more generic for boilerplate use
+* Updated AI configuration files with modern models and better explanations
+
= 1.6.20 =
* Added explanations about the ! prefix in ignore files
* Moved WordPress-specific patterns to .gitignore
@@ -300,6 +327,9 @@ Although this plugin consumes minimal disk space, and doesn't run unless you are
== Upgrade Notice ==
+= 1.6.21 =
+Added support for more AI-powered development tools and enhanced documentation with links to supported AI IDEs.
+
= 1.6.20 =
Added explanations about using the ! prefix in ignore files to include files excluded by .gitignore.
From c6687eebccdaec428a4ffce9f83a6550632cbb86 Mon Sep 17 00:00:00 2001
From: Marcus Quinn <6428977+marcusquinn@users.noreply.github.com>
Date: Sat, 12 Apr 2025 18:04:36 +0100
Subject: [PATCH 19/19] Enhance support documentation with multiple support
channels (v1.6.22)
---
CHANGELOG.md | 6 ++++++
README.md | 13 ++++++++++++-
fix-plugin-does-not-exist-notices.php | 4 ++--
.../fix-plugin-does-not-exist-notices.pot | 2 +-
readme.txt | 18 ++++++++++++++++--
5 files changed, 37 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ddec4ff..9db6b68 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
+## [1.6.22] - 2024-05-17
+### Changed
+- Enhanced support section with multiple support channel options
+- Added encouragement for users to leave reviews on WordPress.org
+- Improved documentation with clearer support instructions
+
## [1.6.21] - 2024-05-17
### Added
- Support for more AI-powered development tools (Roo, Gemini, Loveable, Bolt, Cody, Continue)
diff --git a/README.md b/README.md
index 89f8a44..120183a 100644
--- a/README.md
+++ b/README.md
@@ -160,6 +160,11 @@ The plugin works by:
## Changelog
+### 1.6.22
+* Enhanced support section with multiple support channel options
+* Added encouragement for users to leave reviews on WordPress.org
+* Improved documentation with clearer support instructions
+
### 1.6.21
* Added support for more AI-powered development tools (Roo, Gemini, Loveable, Bolt, Cody, Continue)
* Updated documentation with links to supported AI IDEs
@@ -318,4 +323,10 @@ This project is licensed under the GPL-2.0+ License - see the [LICENSE](LICENSE)
## Support
-For support, please visit [WP ALLSTARS](https://www.wpallstars.com).
\ No newline at end of file
+If you need help with this plugin, there are several ways to get support:
+
+* [WordPress.org Support Forums](https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices/)
+* [GitHub Issues](https://github.com/wpallstars/fix-plugin-does-not-exist-notices/issues)
+* [Gitea Issues](https://gitea.wpallstars.com/wpallstars/fix-plugin-does-not-exist-notices/issues)
+
+If you find this plugin helpful, please consider [leaving a review](https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices/reviews/) on WordPress.org. Your feedback helps others discover the plugin and encourages continued development and support.
\ No newline at end of file
diff --git a/fix-plugin-does-not-exist-notices.php b/fix-plugin-does-not-exist-notices.php
index 109901a..f8ea623 100644
--- a/fix-plugin-does-not-exist-notices.php
+++ b/fix-plugin-does-not-exist-notices.php
@@ -13,7 +13,7 @@
* Plugin Name: Fix 'Plugin file does not exist.' Notices
* Plugin URI: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/
* 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. By Marcus Quinn (marcusquinn.com) & WP ALLSTARS (wpallstars.com).
- * Version: 1.6.21
+ * Version: 1.6.22
* Author: Marcus Quinn & WP ALLSTARS
* Author URI: https://www.wpallstars.com
* License: GPL-2.0+
@@ -48,7 +48,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
// Define plugin constants
-define( 'FPDEN_VERSION', '1.6.21' );
+define( 'FPDEN_VERSION', '1.6.22' );
define( 'FPDEN_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'FPDEN_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'FPDEN_PLUGIN_FILE', __FILE__ );
diff --git a/languages/fix-plugin-does-not-exist-notices.pot b/languages/fix-plugin-does-not-exist-notices.pot
index 4dd35ab..a0cdb36 100644
--- a/languages/fix-plugin-does-not-exist-notices.pot
+++ b/languages/fix-plugin-does-not-exist-notices.pot
@@ -2,7 +2,7 @@
# This file is distributed under the GPL-2.0+.
msgid ""
msgstr ""
-"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.21\n"
+"Project-Id-Version: Fix 'Plugin file does not exist.' Notices 1.6.22\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/readme.txt b/readme.txt
index 62f5a67..37a334e 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Tags: plugins, missing plugins, cleanup, error fix, admin tools, plugin file doe
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.0
-Stable tag: 1.6.21
+Stable tag: 1.6.22
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -111,6 +111,11 @@ Manually editing the WordPress database is risky and requires technical knowledg
== Changelog ==
+= 1.6.22 =
+* Enhanced support section with multiple support channel options
+* Added encouragement for users to leave reviews on WordPress.org
+* Improved documentation with clearer support instructions
+
= 1.6.21 =
* Added support for more AI-powered development tools (Roo, Gemini, Loveable, Bolt, Cody, Continue)
* Updated documentation with links to supported AI IDEs
@@ -327,6 +332,9 @@ Manually editing the WordPress database is risky and requires technical knowledg
== Upgrade Notice ==
+= 1.6.22 =
+Improved support documentation with multiple support channel options and encouragement for users to leave reviews.
+
= 1.6.21 =
Added support for more AI-powered development tools and enhanced documentation with links to supported AI IDEs.
@@ -386,4 +394,10 @@ Important stability fix - resolves timeout issues during plugin activation!
== Support ==
-For support, please visit https://wpallstars.com
\ No newline at end of file
+If you need help with this plugin, there are several ways to get support:
+
+* [WordPress.org Support Forums](https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices/)
+* [GitHub Issues](https://github.com/wpallstars/fix-plugin-does-not-exist-notices/issues)
+* [Gitea Issues](https://gitea.wpallstars.com/wpallstars/fix-plugin-does-not-exist-notices/issues)
+
+If you find this plugin helpful, please consider [leaving a review](https://wordpress.org/support/plugin/fix-plugin-does-not-exist-notices/reviews/) on WordPress.org. Your feedback helps others discover the plugin and encourages continued development and support.
\ No newline at end of file