=== Z UpTime by Zubbin – Uptime & Site Health Monitoring ===
Contributors: zubbin
Tags: uptime, uptime monitoring, site health, monitoring, security
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 8.0
Stable tag: 2.2.8
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

External monitors email you after your site is already down. Z UpTime watches from inside WordPress to catch failures before they take you offline.

== Description ==

**Most uptime tools only ping your homepage from the outside.** By the time they notice a problem, your visitors have already hit a white screen and left. Z UpTime is different: it runs *inside* WordPress, so it sees the things an external ping never can — a plugin update that triggered a fatal error, WP-Cron that silently stopped running, a database that stopped responding, or the REST API going dark.

Z UpTime is the official WordPress connector for the **Zubbin** monitoring platform. Install it, pair it with your free Zubbin account, and your site continuously reports its real health so you (and your whole fleet, if you run more than one site) get alerted the moment something breaks — often *before* it becomes downtime.

**Free to install. Free plan available.** External uptime checks and core health reporting are free forever. Paid Zubbin plans add faster check intervals, more sites, longer history, and richer WordPress-specific alerts.

= Why "from the inside" matters =

An outside pinger can only tell you *that* your homepage returned an error. Z UpTime tells you **what actually happened**, because it's running where the problem is:

* **Fatal error / white-screen capture** — records the file, line, and message of the last PHP fatal, so a bad plugin update doesn't leave you guessing.
* **WP-Cron health** — flags when scheduled tasks stop firing (a silent killer of backups, emails, and orders).
* **Database reachability** — a real `SELECT 1` from inside WordPress, not a guess from the HTTP status code.
* **REST API loopback** — confirms `/wp-json/` is actually responding, not just that the front page loads.

= What it does =

* Periodic **heartbeat** so Zubbin knows your site is up (scheduled via WP-Cron).
* **Health snapshot** on every heartbeat: last fatal error, last cron tick, database check, REST check, and response time.
* **Inventory reporting**: WordPress version, PHP version, active theme, and installed plugins — including **which ones have updates available**, so you can spot out-of-date, vulnerable components across every site.
* **Self-pairing onboarding** and a clear connection/status screen inside wp-admin.
* **Fleet-friendly**: manage one site or a hundred from a single Zubbin dashboard — built for agencies and site maintainers.

Monitoring, alerting, dashboards, incident history, and billing live in your Zubbin account (by default at https://app.zubbin.com). This plugin is the lightweight reporting node that makes that possible.

== External services ==

This plugin connects to **Zubbin**, an external service operated by Zubbin, to provide monitoring. This connection is required for the plugin to function. By default it talks to `https://app.zubbin.com`; you can point it at a different Zubbin server in the plugin settings.

What is sent, and when:

* **On pairing / registration:** site URL, site name, administrator email, WordPress version, PHP version, plugin version, and environment type.
* **On each heartbeat (scheduled via WP-Cron):** an up/down status, response time, and a health/inventory snapshot — WordPress/PHP versions, active theme, installed plugins and their versions/available updates, database/REST/cron health, and whether a recent fatal error occurred.

No site content, post data, passwords, or visitor personal data is collected or transmitted.

* Terms of Service: https://app.zubbin.com/terms
* Privacy Policy: https://app.zubbin.com/privacy

== Installation ==

1. Install and activate the plugin from the WordPress plugin directory (or upload the ZIP).
2. Open **Z UpTime** in the wp-admin menu.
3. Leave the central server as the default (`https://app.zubbin.com`), or paste the registration token from your free Zubbin account to bind this site to it.
4. Click **Connect**. (The site also self-registers on the next scheduled heartbeat if you skip the token.)

That's it — your first health snapshot is reported within a few minutes, and monitoring/alerts appear in your Zubbin dashboard.

== Frequently Asked Questions ==

= Do I need a Zubbin account? =
Yes, and the free plan is enough to get started. The plugin is the reporting node; your account is where monitoring, alerting, and dashboards live. You can sign up at https://app.zubbin.com.

= Is it really free? =
Installing the plugin and the core external-uptime + health reporting are free. Paid Zubbin plans unlock faster check intervals, more monitored sites, longer history, and advanced WordPress-specific alerting.

= How is this different from UptimeRobot, Pingdom, or a plain HTTP monitor? =
Those check your site from the outside and can only see the HTTP response of a single URL. Z UpTime runs inside WordPress, so it also reports fatal errors, stalled WP-Cron, database failures, REST outages, and out-of-date plugins — problems an external ping can't detect until they've already caused downtime. Use it alongside external checks, not instead of them.

= I manage a lot of client sites. Is this useful for agencies? =
Yes. Install the node on each site and manage the whole fleet from one Zubbin dashboard — uptime, health, and pending plugin updates across every site in one place.

= What data leaves my site? =
See the "External services" section above — status, versions, theme/plugin inventory, and health signals only. No content, credentials, or visitor data.

= How do I stop it from sending data? =
Deactivate the plugin. Uninstalling also removes its stored settings and local log table.

= Does the plugin slow my site down? =
No. Reporting runs on WP-Cron in the background, not on visitor page loads.

== Screenshots ==

1. Connection & status screen inside wp-admin.
2. Health snapshot: fatal errors, cron, database, and REST checks at a glance.
3. Plugin/theme inventory with available updates flagged.
4. Fleet view of all your sites in the Zubbin dashboard.

== Changelog ==

= 2.2.8 =
* New: an embeddable **"Monitored by Zubbin" status badge** — show visitors your site is monitored and its live
  uptime. Add it with the `[zubbin_badge]` shortcode, the "Zubbin Status Badge" block, or the auto-footer option.
  The badge image is served by your Zubbin account and updates automatically.

= 2.2.7 =
* New: an optional, one-time review request in wp-admin after your site has been monitored for a couple of weeks.
  It's polite and fully dismissible ("No thanks" / "Maybe later" hide it), only shown to administrators, and never
  nags again once actioned.

= 2.2.6 =
* Improved: the plugin listing now leads with inside-the-site health monitoring (fatal capture, WP-Cron, database,
  REST) — the problems external uptime pings can't see. No functional changes to the plugin itself.
* Docs: added a comparison FAQ (vs. external-only monitors) and an agency/fleet FAQ.

= 2.2.5 =
* New: positioning and docs now lead with inside-the-site health monitoring (fatal capture, cron, DB, REST).
* Fixed: the API base always tracks the configured central server URL (changing the server takes effect immediately).
* Fixed: admin screens (including Sync) no longer overflow horizontally on small screens.
* Added: reports available WordPress/plugin/theme updates; self-registers via cron when unpaired.
* Docs: added external-services disclosure and refreshed the readme.

= 2.0.13 =
* Started dashboard v2 redesign.
* Improved plugin admin UX foundation.

== Upgrade Notice ==

= 2.2.8 =
Adds an embeddable status badge ([zubbin_badge] shortcode + block). Includes the 2.2.7 review-request prompt.

= 2.2.7 =
Adds an optional, one-time, dismissible review request in wp-admin. No changes to monitoring behaviour.

= 2.2.6 =
Listing/readme refresh — clearer explanation of the inside-the-site health monitoring. No functional changes.

= 2.2.5 =
Recommended: fixes server-URL switching and admin layout, adds update reporting, and discloses the external service used.
