=== UptimeStore Store Monitor for WooCommerce ===
Contributors: uptimestore
Tags: woocommerce, monitoring, uptime, checkout, alerts
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Catches the WooCommerce failures an uptime checker misses: a trashed checkout page, payment gateways switched off, orders quietly stopping.

== Description ==

A generic uptime monitor tells you your site returned HTTP 200. It does not tell you that a plugin update switched off your only payment gateway three hours ago, and that you have taken no orders since.

UptimeStore watches the things that actually stop a WooCommerce store selling:

* **Payment gateways.** Alerts when no gateway is enabled, which means the store cannot take money at all.
* **Checkout, cart and shop pages.** Alerts when one is trashed, drafted or deleted. The storefront still looks fine, but customers cannot pay.
* **Order flow.** Reports order counts so UptimeStore can alert when orders stop against your store's own baseline.
* **Plugin and theme changes.** Records what changed and when, so a break can be lined up against the update that caused it.
* **WP-Cron.** Alerts when scheduled tasks stall, which silently stops order emails and stock sync.
* **Fatal errors.** Alerts when WordPress drops into recovery mode after a plugin or theme crash.
* **Pending updates.** Reports plugins sitting on known-vulnerable versions.

Alerts arrive by email and Slack from your UptimeStore account.

= Uses the UptimeStore service =

This plugin reports to the UptimeStore service at [uptimestore.io](https://www.uptimestore.io). Clicking Connect creates your UptimeStore account for this store. Pricing and terms are on the site.

== External services ==

This plugin connects to UptimeStore (https://www.uptimestore.io), an external
monitoring service, and does nothing until a site administrator clicks
**Connect store**.

All requests go to the UptimeStore API at https://api.pagerly.io/uptimestore.
That host belongs to the same company, Sassly Technologies Private Limited, and
serves the UptimeStore API; no data is sent anywhere else.

What is sent, and when:

* **When you click Connect store:** your site address, admin email address, site name and timezone, your WordPress, PHP and WooCommerce versions, and your active plugins and theme with their versions. This creates your UptimeStore account for the store.
* **Every five minutes while connected:** store health (whether the cart, checkout and shop pages are published, how many payment methods are enabled, order counts, WP-Cron and recovery mode state), plus the plugin and theme list when it changes.
* **When plugins, themes or WooCommerce settings change:** what changed, when, and the display name of the admin who changed it. Setting values are never sent.
* **When you click Disconnect or deactivate the plugin:** a notice so UptimeStore stops expecting reports.

No customer data, order contents or shopper personal data is ever sent.

UptimeStore also sends requests to your site: a signed request to the plugin's health endpoint, and a plain request to your homepage every few minutes to check it is up.

The service is provided by Sassly Technologies Private Limited. [Terms of Service](https://www.uptimestore.io/terms), [Privacy Policy](https://www.uptimestore.io/privacy).

== Installation ==

1. Install and activate the plugin.
2. Go to **WooCommerce > UptimeStore**.
3. Click **Connect store**. There is no account to create and no key to copy.
4. Click **Open UptimeStore dashboard** to add alert emails, Slack channels, a phone number and third-party services to watch.

Monitoring starts immediately. The screen shows exactly what UptimeStore can see, so you can confirm it is working without waiting for an outage.

== Frequently Asked Questions ==

= Does this slow down my store? =

No. The plugin does no work on storefront page loads. It reports on a five minute schedule via WP-Cron, and change events are sent out of band so saving a setting in wp-admin never waits on a network call.

= What data leaves my site? =

Store health (page status, enabled gateway count, order counts, cron state), your WordPress, PHP and WooCommerce versions, your active plugins and theme with their versions, and a record of plugin, theme and settings changes with the display name of the user who made them.

No customer data, no order contents, no personal data of your shoppers, and no plugin settings values ever leave the site. Settings values are excluded deliberately because they commonly contain payment gateway API credentials.

= Can anyone else read this data from my site? =

No. The plugin adds a REST endpoint so UptimeStore can request current health, and every request to it must carry a valid HMAC-SHA256 signature made with your site's own token. Unsigned, missigned, stale and replayed requests are all refused.

= What happens if I deactivate it? =

Reporting stops and the schedule is removed. The connection is kept so reactivating resumes monitoring without re-entering a key. Deleting the plugin removes everything it stored.

= Does it work with High Performance Order Storage? =

Yes. Order counts are read through the WooCommerce data store, so both HPOS and legacy post storage work without configuration.

== Screenshots ==

1. WooCommerce > UptimeStore on a connected store, showing a problem it found: no payment method is enabled.
2. Connecting a store: one click, with no account to create and no key to copy.
3. The UptimeStore dashboard for a WooCommerce store: the open problem, what to check, order flow and the plugin change that landed just before.

== Changelog ==

= 1.0.0 =
* First release: store health probes, order flow reporting, change events, heartbeat, and the signed health endpoint.

== Upgrade Notice ==

= 1.0.0 =
First release.
