A powerful, session-based WordPress plugin for safe debugging and comprehensive troubleshooting.
Contributors: jhimross Tags: debug, troubleshoot, php info, developer, compatibility, conflict Requires at least: 5.0 Requires PHP: 7.4 Tested up to: 7.0 Stable tag: 1.5.0 License: GPL-2.0+ License URI: http://www.gnu.org/licenses/gpl-2.0.txt Donate link: https://paypal.me/jhimross28
The "Debugger & Troubleshooter" plugin provides essential, non-disruptive tools for diagnosing and resolving issues on your WordPress site.
- Troubleshooting Mode (Session-Based):
- Activate a unique mode only visible to your current browser session.
- Simulate Plugin Deactivation: Selectively "deactivate" plugins. Their assets and code are disabled for you, while the live site remains unchanged for everyone else.
- Simulate Theme Switching: Preview any installed theme safely, while the public-facing site continues to use the active theme.
- User Role Simulator: View your site as any other user or role (e.g., Subscriber, Editor) to test permissions and content visibility without knowing their password. Includes a safe "Exit" button in the Admin Bar.
- Live Debugging:
- Safely enable
WP_DEBUGandWP_DEBUG_LOGfrom the admin dashboard with a single click—no editingwp-config.php. - Errors are logged to
debug.logwithout being displayed on the public site (WP_DEBUG_DISPLAYis kept off). - View and clear the
debug.logfile directly in the plugin's interface.
- Safely enable
- Comprehensive Site Information: Get an organized, collapsible overview of your entire WordPress environment:
- Detailed PHP, Database, and Server information.
- Full list of all themes and plugins with their status.
- Important WordPress constants.
- Copy to Clipboard: One-click button to copy all site info for easy sharing with support.
- PHP Compatibility Checker: Scan all installed plugins for deprecated functions and syntax that may break when upgrading PHP. Results are displayed in a responsive card layout with clear warnings and incompatibility counts.
- Conflict Checker: Systematically identify plugin conflicts through a binary search process. Narrow down suspect plugins by answering whether each group resolves the issue, without disrupting live visitors.
- Cache Bypassing: Automatically attempts to bypass caching (by defining
DONOTCACHEPAGE) when Troubleshooting Mode is active, ensuring your changes are reflected instantly.
- In your WordPress dashboard, navigate to Plugins > Add New.
- Click the "Upload Plugin" button.
- Choose the downloaded plugin ZIP file and click "Install Now".
- Activate the plugin through the 'Plugins' menu.
- Access the features at Tools > Debugger & Troubleshooter.
- Extract the plugin ZIP file.
- Upload the
debug-troubleshooterfolder to the/wp-content/plugins/directory via FTP or your hosting's file manager. - Activate the plugin through the 'Plugins' menu in WordPress.
Navigate to Tools > Debugger & Troubleshooter in your WordPress dashboard to access all features.
This section provides an organized overview of your environment in collapsible cards (closed by default). Click a card title (e.g., PHP Information, Database) to expand the details.
Use this session-based section to safely Simulate Theme Switching and Simulate Plugin Deactivation without affecting your live website for other visitors.
Click the button to switch your view to that of a different user role (like "Subscriber" or "Editor"). This is perfect for testing content restrictions and permissions. A prominent "Exit Simulation" button will appear in your Admin Bar to safely return to your administrator account.
Scan all installed plugins for deprecated PHP functions and syntax incompatible with your target PHP version. Select a target version (e.g., 8.0, 8.2, 8.4) and click "Start Scan" to receive a per-plugin compatibility report with clear warnings and incompatibility counts.
If you are experiencing an issue on your site (admin or front-end), use the Conflict Checker to identify the culprit plugin. The plugin systematically deactivates groups of plugins using your session-based Troubleshooting Mode, asking you whether the issue persists after each step. Once the culprit is found, you can deactivate it with one click.
Safely manage WordPress's debugging constants from the UI.
- Enable Live Debug: Programmatically enables
WP_DEBUGandWP_DEBUG_LOG, logging errors towp-content/debug.logwithout displaying them on the site. - Debug Log Viewer: A text area displays the contents of your
debug.logfile, allowing real-time error viewing. - Clear Log: Safely clear the
debug.logfile with a single click.
Q: How does Troubleshooting Mode work without affecting my live site? A: Troubleshooting Mode uses a browser cookie specific to your session. The plugin uses WordPress filters to redirect core functions (which determine active plugins and themes) to your simulated settings. This process is isolated to your browser.
Q: Will this work if I have a caching plugin active?
A: Yes. When Troubleshooting Mode is active, the plugin defines the DONOTCACHEPAGE constant, which instructs most caching plugins and hosting environments to bypass the cache for your session.
Q: How does Live Debugging work without editing wp-config.php?
A: The plugin leverages the plugins_loaded hook to define the necessary WP_DEBUG constants programmatically very early in the WordPress loading sequence, effectively enabling debug mode for all requests while the feature is turned on.
Q: How does the PHP Compatibility Checker work?
A: The checker scans each plugin's PHP files for deprecated functions (like create_function, mysql_*), incompatible syntax (curly brace access), and other patterns known to break in newer PHP versions. It reports which plugins are compatible, have warnings, or are incompatible with your selected target version.
Q: How does the Conflict Checker differ from Troubleshooting Mode? A: Troubleshooting Mode manually toggles plugins and themes for testing. The Conflict Checker automates the process using a binary search algorithm — it splits plugins into groups and asks you whether the issue is present after each test, quickly narrowing down the exact culprit.
-
The main Debug & Troubleshooter dashboard showing Site Information.

-
The Troubleshooting Mode section with theme and plugin selection.

-
An example of the admin notice when Troubleshooting Mode is active.

-
The Live Debugging section with the log viewer.
- The User Role Simulator.
-
Conflict Checker. <img width="1918" height="975" alt="screenshot-6" src="

-
The PHP Compatibility Checker . <img width="1918" height="975" alt="screenshot-6" src="

- Feature: Added Plugin Compatibility Checker to scan and report PHP version compatibility across all installed plugins.
- Feature: Added Conflict Checker (replaces Plugin Detective) to systematically identify plugin conflicts through binary search.
- Fix: Added HTML escaping to all dynamically injected compatibility result content.
- Fix: Removed unused
$rolesvariable from User Simulation section.
- Enhancement: Tested up to WordPress 7.0.
- Feature: Added "SMTP / Mail Debugger" to test and verify site mail configuration.
- Feature: Captures detailed
WP_Errordata and PHP environment diagnostics upon mail delivery failure. - Enhancement: Improved AJAX feedback loops and visual status indicators in the dashboard.
- Fix: Resolved minor UI layout issues in the Site Information cards.
- Security Fix (Critical): Resolved a privilege escalation vulnerability where unauthenticated users could bypass authentication via the User Simulation feature.
- Security Fix (High): Patched an authorization bypass in the Troubleshooting Mode configuration. State is now securely validated against database records using cryptographic tokens.
- Security Fix (Medium): Added strict nonces to the "Exit Simulation" admin bar action to prevent Cross-Site Request Forgery (CSRF).
- Fix: Completely overhauled the "Troubleshooting Mode" plugin logic. The plugin now correctly intercepts early plugin loading via an automatically dropping MU (Must-Use) plugin template, resolving the issue where plugins were not adequately disabled during simulations.
- Fix: Disconnected WP_Filesystem API usage from AJAX context actions down to native PHP handlers to prevent silent AJAX failures on servers requiring FTP credentials.
- Fix: Adjusted the "Exit Simulation" JavaScript rendering hook to ensure the "Exit Simulation" admin bar button functions properly on the front-end.
- Fix: Resolved a UI conflict where the confirmation modal appeared automatically upon page load due to CSS class interference from other plugins.
- Fix: Improved modal layering (z-index) to ensure the Success/Error alert modal correctly appears above the confirmation modal.
- Fix: Updated the "Confirm" action in the Debug Log viewer to automatically close the confirmation dialog before showing the result, preventing the UI from becoming unclickable.
- Enhancement: Hardened the .hidden CSS utility with !important to prevent external themes or plugins from forcing hidden elements to display.
- Fix: Resolved a critical issue where admin scripts were not loading due to a hook name mismatch.
- Fix: Addressed WordPress coding standard issues (deprecated functions, security hardening).
- Feature: Added "User Role Simulator" to view the site as any user or role for the current session.
- Enhancement: Added an Admin Bar "Exit Simulation" button for safe return to the administrator account.
- Fix: Improved layout stability for the troubleshooting dashboard.
- Fix: Addressed all security and code standard issues reported by the Plugin Check plugin, including escaping all output and using the
WP_FilesystemAPI for file operations. - Fix: Replaced the native browser
confirm()dialog with a custom modal for a better user experience and to prevent potential browser compatibility issues.
- Feature: Added "Live Debugging" section to safely enable/disable
WP_DEBUGandWP_DEBUG_LOGfrom the UI without editingwp-config.php. - Feature: Added a
debug.logfile viewer and a "Clear Log" button to the Live Debugging section.
- Fix: Implemented cache-bypassing measures for Troubleshooting Mode. The plugin now defines the
DONOTCACHEPAGEconstant and sends no-cache headers to ensure compatibility with most caching plugins and server-side caches.
- Feature: Site Information cards (WordPress, PHP, Database, Server, Constants) are now collapsible and closed by default for a cleaner interface.
- Feature: Added a "Copy to Clipboard" button to easily copy all site information for support requests or documentation.
- Enhancement: The "WordPress Information" card now displays a detailed list of all installed themes and plugins, along with their respective active, inactive, or network-active status.
- Enhancement: The theme and plugin lists within the "WordPress Information" card are now compact, showing counts by default with a "Show All" toggle to view the complete list.
- Enhancement: Expanded the displayed information for PHP, Server, and WordPress constants.
- Fix: Resolved a bug that prevented the collapsible sections from functioning correctly.
- Initial release.