=== MITS Profiler ===
Contributors: wpaluchmits
Tags: performance, profiler, debug, hooks, database
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 1.3.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Lightweight WordPress performance profiler. No HTTP loopback requests — works behind Cloudflare and any proxy.

== Description ==

MITS Profiler adds a diagnostic bar to any page by appending `?mits_prof=1` to the URL. It captures timing data from the moment PHP starts and presents it in a dark-themed panel at the bottom of the page — visible only to logged-in administrators.

**Tabs included:**

* **Timeline** — absolute and relative timing between WordPress lifecycle hooks (plugins_loaded → init → wp_head → wp_footer)
* **Hooks** — top 50 slowest action/filter hooks with total time and call count
* **Options** — most-queried WordPress options + full autoload audit with sizes
* **Plugins** — loaded PHP file sizes per plugin (proxy for load time)
* **Assets** — all enqueued scripts and styles, external ones highlighted
* **HTTP** — outgoing wp_remote_* requests with response time and status
* **SQL** — all database queries with slow-query highlighting (requires SAVEQUERIES)
* **PHP** — PHP version, OPcache status and hit rate, memory and execution limits

**Key features:**

* Zero HTTP loopback — works behind Cloudflare, reverse proxies and strict firewall rules
* No external dependencies or requests
* Admin-only: the panel and all data are never shown to guests
* Export to JSON or CSV for offline analysis
* Works on front-end pages, WooCommerce pages, and WP Admin

**SQL query logging** requires adding the following to `wp-config.php`:

`define('SAVEQUERIES', true);`

== Installation ==

1. Upload the `mits-profiler` folder to `/wp-content/plugins/`
2. Activate the plugin in **Plugins → Installed Plugins**
3. Go to **MITS Profiler** in the admin menu to open the control panel
4. Click **Profiluj w nowej karcie** or manually append `?mits_prof=1` to any URL

== Frequently Asked Questions ==

= Does this plugin slow down my site for visitors? =

No. The profiler only activates when `?mits_prof=1` is present in the URL, and even then it only renders its output for logged-in administrators. Regular visitors are completely unaffected.

= Does it work behind Cloudflare? =

Yes. Unlike profilers that rely on HTTP loopback requests (which Cloudflare blocks), MITS Profiler measures time inline within the same PHP process — no outgoing requests needed.

= How do I see database queries? =

Add `define('SAVEQUERIES', true);` to your `wp-config.php` before the line `/* That's all, stop editing! */`. Remember to remove it when done, as it adds overhead on every page load.

= The panel does not appear =

Make sure you are logged in as an administrator and that the URL contains `?mits_prof=1` (or `&mits_prof=1` if the URL already has a query string).

== Screenshots ==

1. Plugin header — admin panel overview with site stats and quick-start launcher.
2. Admin panel — page count, OPcache hit rate and SAVEQUERIES status.
3. Profiler bar — Timeline tab showing hook timing from profiler_init to render.

== Changelog ==

= 1.3.0 =
* All CSS/JS now enqueued via wp_add_inline_style() and wp_add_inline_script() — no direct <style>/<script> output
* Admin page assets enqueued through admin_enqueue_scripts hook
* Static profiler bar functions extracted from render() to a registered script handle
* Added wpaluchmits to Contributors
* All echoed variables escaped or cast to int/float; $row() closure wraps every cell in wp_kses()

= 1.2.0 =
* Added full MITS wordmark logo in admin panel header
* Admin notices from other plugins are now hidden on the profiler page
* Fixed $_SERVER sanitization (wp_unslash + sanitize_text_field)
* Added phpcs:ignore annotations for intentional direct DB queries

= 1.1.0 =
* Added SQL tab with slow-query highlighting (requires SAVEQUERIES)
* Added PHP environment tab with OPcache stats
* Added JSON and CSV export buttons
* Added HTTP outgoing request tracking via wp_remote_*

= 1.0.0 =
* Initial release: Timeline, Hooks, Options, Plugins, Assets tabs
