DebugPress: Debugger in a Popup

Plugin Description

DebugPress is an easy-to-use plugin implementing popup for debugging and profiling currently loaded WordPress powered website page with support for intercepting AJAX requests. The main debugger window is displayed as a popup, activated through the button with the Bug integrated into WordPress Toolbar, or floating on the page.

The plugin currently has a total of 22 tabs in the popup debugger window, showing all kinds of information relevant to the current page, WordPress setup, background AJAX calls, and much more.

The plugin doesn’t modify or replace any WordPress files or functions.

= Home and GitHub =

= Quick Overview Video =
https://www.youtube.com/watch?v=-eFnBRLhy-s

= Pretty Print for objects =
To display the content of objects or arrays, plugin has pretty print functionality through use of simpler PrettyPrint library, or more robust third-party library Kint. You can choose one or the other from the plugin Settings, Advanced tab.

= Debugger Panels =
Currently, the plugin has the following panels:

  • Basic
  • Request (optional)
  • Query (for frontend only)
  • Content (optional)
  • Roles (optional)
  • Constants (optional)
  • Hooks (optional)
  • PHP (optional)
  • Server (optional)
  • Enqueue (optional)
  • SQL Queries (if SQL queries logging is enabled)
  • User (optional, if user is logged in only)
  • HTTP (optional, if HTTP API calls are captured)
  • bbPress (optional, on bbPress forum pages only)
  • Plugins (optional, if plugins store data)
  • Errors (for all captured PHP errors)
  • Doing It Wrong (for captured WordPress Doing It Wrong warnings)
  • Deprecated (for captured PHP deprecated warnings)
  • AJAX (for captured AJAX calls while page is active)
  • Store (for any user stored objects during the page loading)
  • Tools (internal and external tools links)
  • Debug Log (load content on demand from WordPress ‘debug.log’)
  • Layout (control the size, position and activation of the popup)

= SQL Queries =
This panel lists all the queries WordPress has run. It allows you to order the queries by execution order or length of execution, and all queries can be filtered by the query type, database table it targets or the WordPress function that called it. Every query displays the execution time, order, caller functions stack and fully formatted SQL query that is easy to read. For some Dev4Press created plugins (and that list will grow), DebugPress can detect the source of the query and allow you to filter by the plugin calling the query.

= PHP and WordPress Errors =
Plugin has 3 panels dedicated to showing PHP and WordPress errors and warnings. The Plugin captures this information during the page load, and it shows full debug trace as returned by the PHP debug tracing function.

= AJAX =
The plugin tracks every AJAX call coming through WordPress admin-ajax.php handler, and with every response, it returns HTTP headers with AJAX request basic execution information. Right now, plugin is not returning a list of logged errors or SQL queries, because both can produce huge output that goes over the HTTP header limits. Plan is to introduce these in the future plugin versions.

= Info Panels =
In the administration Tools menu, plugin adds DebugPress Info page showing several panels

  • PHP Info: full formatted results from phpinfo() function
  • OPCache Info: full settings and statistics for the OPCache PHP extension
  • MySQL Variables: full MySQL settings retrieved from the database

= Plugin Settings =
The plugin has various options controlling the plugin activation, button integration position, user roles that can see the debugger window, options to attempt overriding WordPress debug flags and options controlling the visibility of optional debugger panels.

= Log into Database =
Debugger popup is visible for the request running in the browser. But there are many requests that are happening in the background (AJAX calls, REST API calls…), and for them, you can’t see errors, call information and other stuff in the debugger. Because of that, DebugPress supports logging of various events into database with the use of ‘coreActivity’ plugin, and it is highly recommended to install and use coreActivity.

Log various debug events into a database with the free plugin: coreActivity Plugin, supporting over 120 events and 10 popular WordPress plugins. DebugPress related events will be logged and available for later analysis, and this includes errors, AJAX calls, and HTTP API calls.

= Documentation and Support =
To get help with the plugin, you can use WordPress.org support forums, or you can use Dev4Press.com support forums.

Installation

= General Requirements =

  • PHP: 7.3 or newer
  • Tested with the latest PHP, version 8.3

= WordPress Requirements =

  • WordPress: 5.5 or newer
  • Tested with the latest WordPress, version 6.5

= Basic Installation =

  • Upload folder debugpress to the /wp-content/plugins/ directory
  • Activate the plugin through the ‘Plugins’ menu in WordPress
  • Plugin settings are available under WordPress ‘Settings’ panel

Frequently Asked Questions

= How I can install this plugin? =
If you are not sure about WordPress plugins installation, here is the quick information: Plugin Installation.

= How can I enable WordPress Debug Mode? =
To enable WordPress debug mode via wp-config.php, check out the article here: WordPress Setup.

= How can I open Debugger popup? =
If you have enabled debugger (for admin side and/or frontend), Debugger is activated via Bug button placed in the WordPress Toolbar or as a float button (depending on the settings). Since version 3.0, you can activate the button via keyboard shortcut, default combination is ctrl+shift+u, but it can be changed in the plugin settings.

= Can I change the size and position of the popup? =
Yes. Once the popup is open, you will find the Layout icon next to the button to close the popup. On the layout panel, you can change the location for the popup, size, modal status and auto activation on page load.

= Where can I configure the plugin? =
Open the WordPress ‘Settings’ menu, there you will find ‘DebugPress’ panel.

Changelog

= 3.9 (2024.05.14) =

  • Edit: few more updates and improvements
  • Edit: replacement of some native with WordPress functions
  • Edit: various small updates and tweaks
  • Edit: Kint Pretty Print Library 5.1.1
  • Fix: various PHP notices related to PHP 8.1 and newer

= 3.8 (2024.04.24) =

  • Edit: few minor tweaks and changes
  • Edit: updates to the plugin readme file
  • Edit: small changes related to the PHP 8.3 compatibility
  • Fix: various PHP notices related to PHP 8.1 and newer

= 3.7 (2024.01.23) =

  • Edit: changes related to WordPress and PHP code standards
  • Edit: updated Query object for page query conditionals
  • Edit: updated Dev4Press Library Query detection versions
  • Fix: few compare statements written as assignment

= 3.6 (2023.12.15) =

  • Edit: Increase Kint Library depth levels to 12
  • Edit: Kint Pretty Print Library 5.1.0
  • Fix: Small issue with getting the OPCache version when not allowed by the ser