{"id":240299,"date":"2025-07-08T03:23:57","date_gmt":"2025-07-08T03:23:57","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/debug-troubleshooter\/"},"modified":"2026-03-19T07:56:35","modified_gmt":"2026-03-19T07:56:35","slug":"debugger-troubleshooter","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/debugger-troubleshooter\/","author":14584016,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.4.0","stable_tag":"1.4.0","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Debugger & Troubleshooter","header_author":"Jhimross","header_description":"A WordPress plugin for debugging and troubleshooting, allowing simulated plugin deactivation and theme switching without affecting the live site.","assets_banners_color":"c5ccda","last_updated":"2026-03-19 07:56:35","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/jhimross28","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/debugger-troubleshooter","header_author_uri":"https:\/\/profiles.wordpress.org\/jhimross","rating":5,"author_block_rating":0,"active_installs":50,"downloads":1015,"num_ratings":1,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"jhimross","date":"2025-07-08 06:37:32"},"1.1.0":{"tag":"1.1.0","author":"jhimross","date":"2025-07-09 06:45:03"},"1.2.1":{"tag":"1.2.1","author":"jhimross","date":"2025-07-10 18:45:30"},"1.3.0":{"tag":"1.3.0","author":"jhimross","date":"2025-11-21 14:15:05"},"1.3.1":{"tag":"1.3.1","author":"jhimross","date":"2025-11-21 14:57:05"},"1.3.2":{"tag":"1.3.2","author":"jhimross","date":"2026-02-11 15:40:27"},"1.4.0":{"tag":"1.4.0","author":"jhimross","date":"2026-03-19 07:56:35"}},"upgrade_notice":{"1.4.0":"<p>CRITICAL SECURITY UPDATE. All users must update immediately to patch a severe privilege escalation vulnerability where unauthenticated users could impersonate administrators.<\/p>","1.3.2":"<p>This release fixes a UI conflict where the confirmation modal appeared automatically upon page load due to CSS class interference from other plugins.<\/p>","1.3.1":"<p>This release fixes a critical bug affecting the plugin&#039;s layout and functionality, and improves code standards.<\/p>","1.3.0":"<p>Introduces the User Role Simulator feature, allowing you to safely view the site as other users or roles for testing permissions.<\/p>","1.2.1":"<p>This is a recommended security and maintenance update. It addresses all issues reported by the Plugin Check plugin, including proper data escaping and use of the <code>WP_Filesystem<\/code> API.<\/p>","1.2.0":"<p>This version adds a major new feature: &quot;Live Debugging.&quot; You can now enable WP_DEBUG and view the debug.log file directly from the plugin&#039;s admin page without editing any files.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3323985,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3323985,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3459578,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.2.1","1.3.0","1.3.1","1.3.2","1.4.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3324135,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3324135,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3324135,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3325893,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3400515,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"The main Debugger &amp; Troubleshooter dashboard showing all feature sections.","2":"An expanded view of the Site Information card, showing detailed lists of themes and plugins.","3":"An example of the admin notice when Troubleshooting Mode is active.","4":"The Live Debugging section with the log viewer.","5":"The User Role Simulator feature to switch to other user."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[94,2275,35032,34745],"plugin_category":[59],"plugin_contributors":[244653],"plugin_business_model":[],"class_list":["post-240299","plugin","type-plugin","status-publish","hentry","plugin_tags-debug","plugin_tags-developer","plugin_tags-php-info","plugin_tags-troubleshoot","plugin_category-utilities-and-tools","plugin_contributors-jhimross","plugin_committers-jhimross"],"banners":{"banner":"https:\/\/ps.w.org\/debugger-troubleshooter\/assets\/banner-772x250.png?rev=3459578","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/debugger-troubleshooter\/assets\/icon-128x128.png?rev=3323985","icon_2x":"https:\/\/ps.w.org\/debugger-troubleshooter\/assets\/icon-256x256.png?rev=3323985","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/debugger-troubleshooter\/assets\/screenshot-1.png?rev=3324135","caption":"The main Debugger &amp; Troubleshooter dashboard showing all feature sections."},{"src":"https:\/\/ps.w.org\/debugger-troubleshooter\/assets\/screenshot-2.png?rev=3324135","caption":"An expanded view of the Site Information card, showing detailed lists of themes and plugins."},{"src":"https:\/\/ps.w.org\/debugger-troubleshooter\/assets\/screenshot-3.png?rev=3324135","caption":"An example of the admin notice when Troubleshooting Mode is active."},{"src":"https:\/\/ps.w.org\/debugger-troubleshooter\/assets\/screenshot-4.png?rev=3325893","caption":"The Live Debugging section with the log viewer."},{"src":"https:\/\/ps.w.org\/debugger-troubleshooter\/assets\/screenshot-5.png?rev=3400515","caption":"The User Role Simulator feature to switch to other user."}],"raw_content":"<!--section=description-->\n<p>The \"Debugger &amp; Troubleshooter\" plugin provides essential tools for WordPress site administrators to diagnose and resolve issues efficiently. It offers a dedicated section in the WordPress dashboard that displays comprehensive site health information and powerful debugging toggles.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Troubleshooting Mode:<\/strong> Activate a unique, <strong>session-based<\/strong> \"Troubleshooting Mode\" for your current browser session. This means any changes you make are temporary and only visible to you. This mode allows you to:\n\n<ul>\n<li><strong>Simulate Plugin Deactivation:<\/strong> Selectively \"deactivate\" plugins. The plugin's assets and code will be disabled for your session only.<\/li>\n<li><strong>Simulate Theme Switching:<\/strong> Preview any installed theme, while the public-facing site continues to use the active theme.<\/li>\n<\/ul><\/li>\n<li><strong>User Role Simulator:<\/strong> View your site as any other user or role (e.g., Subscriber, Editor) to test permissions and content visibility. This is session-based and includes a safe \"Exit\" button in the Admin Bar.<\/li>\n<li><strong>Live Debugging:<\/strong> Safely enable <code>WP_DEBUG<\/code> with a single click from the admin dashboard. Errors are logged to <code>debug.log<\/code> without being displayed on the site, and you can view the log file directly in the plugin's interface.<\/li>\n<li><strong>Comprehensive Site Information:<\/strong> Get a quick, organized overview of your WordPress environment in collapsible cards. This includes detailed PHP, Database, and Server information, a full list of all themes and plugins with their status, and important WordPress constants.<\/li>\n<li><strong>Copy to Clipboard:<\/strong> A one-click button allows you to copy all the site information, making it incredibly easy to share with support forums or developers.<\/li>\n<li><strong>Safe Debugging &amp; Cache Bypassing:<\/strong> All troubleshooting actions are session-based. The plugin automatically attempts to bypass caching when Troubleshooting Mode is active, ensuring your changes are reflected instantly.<\/li>\n<li><strong>User-Friendly Interface:<\/strong> An intuitive dashboard interface makes it easy to access all features.<\/li>\n<li><strong>Admin Notices:<\/strong> Clear notices alert you when Troubleshooting Mode is active.<\/li>\n<\/ul>\n\n<p>This plugin is an invaluable tool for developers, site administrators, and anyone who needs to debug WordPress issues without risking site downtime or affecting user experience.<\/p>\n\n<h3>Usage<\/h3>\n\n<p>Once the plugin is installed and activated, navigate to <strong>Tools &gt; Debugger &amp; Troubleshooter<\/strong> in your WordPress dashboard.<\/p>\n\n<h3>1. Site Information<\/h3>\n\n<p>The top section provides a comprehensive overview of your WordPress environment, organized into collapsible cards that are closed by default. Click on any card title to expand it and view the details.<\/p>\n\n<h3>2. Troubleshooting Mode<\/h3>\n\n<p>This session-based feature allows you to simulate theme switches and plugin deactivations without affecting your live website for other visitors.<\/p>\n\n<h3>3. User Role Simulator<\/h3>\n\n<p>Safely view your site as another user or role (e.g., \"Subscriber\" or \"Editor\") without knowing their password. This is perfect for testing capabilities and content restrictions.<\/p>\n\n<h3>4. Live Debugging<\/h3>\n\n<p>This section allows you to safely manage WordPress's debugging features.<\/p>\n\n<ul>\n<li><strong>Enable Live Debug:<\/strong> Click this button to programmatically enable <code>WP_DEBUG<\/code> and <code>WP_DEBUG_LOG<\/code>, while keeping <code>WP_DEBUG_DISPLAY<\/code> off. This logs errors to <code>wp-content\/debug.log<\/code> without showing them to visitors.<\/li>\n<li><strong>Debug Log Viewer:<\/strong> A text area displays the contents of your <code>debug.log<\/code> file, allowing you to see errors as they are generated.<\/li>\n<li><strong>Clear Log:<\/strong> Safely clear the <code>debug.log<\/code> file with a click.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li><strong>Download<\/strong> the plugin ZIP file.<\/li>\n<li><strong>Upload<\/strong> the plugin to your WordPress site:\n\n<ul>\n<li>Navigate to <strong>Plugins &gt; Add New<\/strong> in your WordPress dashboard.<\/li>\n<li>Click the \"Upload Plugin\" button.<\/li>\n<li>Choose the downloaded ZIP file and click \"Install Now\".<\/li>\n<\/ul><\/li>\n<li><strong>Activate<\/strong> the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Once activated, go to <strong>Tools &gt; Debugger &amp; Troubleshooter<\/strong> to access the plugin's features.<\/li>\n<\/ol>\n\n<p><strong>Manual Installation (if needed):<\/strong><\/p>\n\n<ol>\n<li><strong>Extract<\/strong> the <code>debug-troubleshooter.zip<\/code> file.<\/li>\n<li><strong>Upload<\/strong> the <code>debug-troubleshooter<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory via FTP or your hosting's file manager.<\/li>\n<li><strong>Activate<\/strong> the plugin through the 'Plugins' menu in WordPress.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"q%3A%20how%20does%20troubleshooting%20mode%20work%20without%20affecting%20my%20live%20site%3F\"><h3>Q: How does Troubleshooting Mode work without affecting my live site?<\/h3><\/dt>\n<dd><p>A: Troubleshooting Mode uses a browser cookie specific to your session. When enabled, the plugin filters WordPress functions that determine active plugins and themes, redirecting them to your simulated settings. This happens only for your browser.<\/p><\/dd>\n<dt id=\"q%3A%20will%20this%20work%20if%20i%20have%20a%20caching%20plugin%20active%3F\"><h3>Q: Will this work if I have a caching plugin active?<\/h3><\/dt>\n<dd><p>A: Yes. When Troubleshooting Mode is active, the plugin defines the <code>DONOTCACHEPAGE<\/code> constant, which instructs most caching plugins and hosting environments to bypass the cache for your session.<\/p><\/dd>\n<dt id=\"q%3A%20how%20does%20live%20debugging%20work%20without%20editing%20wp-config.php%3F\"><h3>Q: How does Live Debugging work without editing wp-config.php?<\/h3><\/dt>\n<dd><p>A: The plugin uses the <code>plugins_loaded<\/code> hook to define the <code>WP_DEBUG<\/code> constants programmatically. This happens very early in the WordPress loading sequence, effectively enabling debug mode for all requests while the feature is turned on.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.0 - 2026-03-19<\/h4>\n\n<ul>\n<li><strong>Security Fix (Critical):<\/strong> Resolved a privilege escalation vulnerability where unauthenticated users could bypass authentication via the User Simulation feature.<\/li>\n<li><strong>Security Fix (High):<\/strong> Patched an authorization bypass in the Troubleshooting Mode configuration. State is now securely validated against database records using cryptographic tokens.<\/li>\n<li><strong>Security Fix (Medium):<\/strong> Added strict nonces to the \"Exit Simulation\" admin bar action to prevent Cross-Site Request Forgery (CSRF). <\/li>\n<li><strong>Fix:<\/strong> 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.<\/li>\n<li><strong>Fix:<\/strong> Disconnected WP_Filesystem API usage from AJAX context actions down to native PHP handlers to prevent silent AJAX failures on servers requiring FTP credentials.<\/li>\n<li><strong>Fix:<\/strong> Adjusted the \"Exit Simulation\" JavaScript rendering hook to ensure the \"Exit Simulation\" admin bar button functions properly on the front-end.<\/li>\n<\/ul>\n\n<h4>1.3.2 - 2026-02-11<\/h4>\n\n<ul>\n<li><strong>Fix:<\/strong> Resolved a UI conflict where the confirmation modal appeared automatically upon page load due to CSS class interference from other plugins.<\/li>\n<li><strong>Fix:<\/strong> Improved modal layering (z-index) to ensure the Success\/Error alert modal correctly appears above the confirmation modal.<\/li>\n<li><strong>Fix:<\/strong> 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.<\/li>\n<li><strong>Enhancement:<\/strong> Hardened the .hidden CSS utility with !important to prevent external themes or plugins from forcing hidden elements to display.<\/li>\n<\/ul>\n\n<h4>1.3.1 - 2025-11-21<\/h4>\n\n<ul>\n<li><strong>Fix:<\/strong> Resolved a critical issue where admin scripts were not loading due to a hook name mismatch.<\/li>\n<li><strong>Fix:<\/strong> Addressed WordPress coding standard issues (deprecated functions, security hardening).<\/li>\n<\/ul>\n\n<h4>1.3.0 - 2025-11-21<\/h4>\n\n<ul>\n<li><strong>Feature:<\/strong> Added \"User Role Simulator\" to view the site as any user or role for the current session.<\/li>\n<li><strong>Enhancement:<\/strong> Added an Admin Bar \"Exit Simulation\" button for safe return to the administrator account.<\/li>\n<li><strong>Fix:<\/strong> Improved layout stability for the troubleshooting dashboard.<\/li>\n<\/ul>\n\n<h4>1.2.1 - 2025-07-11<\/h4>\n\n<ul>\n<li><strong>Fix:<\/strong> Addressed all security and code standard issues reported by the Plugin Check plugin, including escaping all output and using the <code>WP_Filesystem<\/code> API for file operations.<\/li>\n<li><strong>Fix:<\/strong> Replaced the native browser <code>confirm()<\/code> dialog with a custom modal for a better user experience and to prevent potential browser compatibility issues.<\/li>\n<\/ul>\n\n<h4>1.2.0 - 2025-07-11<\/h4>\n\n<ul>\n<li><strong>Feature:<\/strong> Added \"Live Debugging\" section to safely enable\/disable <code>WP_DEBUG<\/code> and <code>WP_DEBUG_LOG<\/code> from the UI without editing <code>wp-config.php<\/code>.<\/li>\n<li><strong>Feature:<\/strong> Added a <code>debug.log<\/code> file viewer and a \"Clear Log\" button to the Live Debugging section.<\/li>\n<\/ul>\n\n<h4>1.1.1 - 2025-07-10<\/h4>\n\n<ul>\n<li><strong>Fix:<\/strong> Implemented cache-bypassing measures for Troubleshooting Mode. The plugin now defines the <code>DONOTCACHEPAGE<\/code> constant and sends no-cache headers to ensure compatibility with most caching plugins and server-side caches.<\/li>\n<\/ul>\n\n<h4>1.1.0 - 2025-07-09<\/h4>\n\n<ul>\n<li><strong>Feature:<\/strong> Site Information cards (WordPress, PHP, Database, Server, Constants) are now collapsible and closed by default for a cleaner interface.<\/li>\n<li><strong>Feature:<\/strong> Added a \"Copy to Clipboard\" button to easily copy all site information for support requests or documentation.<\/li>\n<li><strong>Enhancement:<\/strong> 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.<\/li>\n<li><strong>Enhancement:<\/strong> 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.<\/li>\n<li><strong>Enhancement:<\/strong> Expanded the displayed information for PHP, Server, and WordPress constants.<\/li>\n<li><strong>Fix:<\/strong> Resolved a bug that prevented the collapsible sections from functioning correctly.<\/li>\n<\/ul>\n\n<h4>1.0.0 \u2013 2025-06-25<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A WordPress plugin for debugging &amp; troubleshooting. Safely simulate plugin deactivation, theme switching, and WP_DEBUG.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/240299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=240299"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jhimross"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=240299"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=240299"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=240299"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=240299"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=240299"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=240299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}