=== OMS QuietAdmin ===
Contributors: stewn
Tags: client dashboard, agency, admin, care report, maintenance
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.2
Stable tag: 0.9.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A role-scoped client workspace with site status, quick actions, support and care reports—while administrators retain the full WordPress view.

== Description ==

OMS QuietAdmin turns the WordPress backend of your clients into a calm interface. Instead of only hiding things, it answers the question the client really has: "Is my website safe – and do I need to do anything?"

Unlike a general-purpose admin-notice suppressor, OMS QuietAdmin is a complete, role-scoped agency-to-client workspace. It combines a verifiable maintenance status, care history, guided quick actions, support requests, a dedicated client role and an agency preview. Notice filtering is only one optional part of that workflow. It applies only to the dedicated client view or an administrator's temporary Ghost Mode preview; administrators retain the normal WordPress dashboard and all notices.

= For the client =

* **Status light:** a card with a traffic light based on real checks (SSL, PHP version, pending updates, backup age, failed maintenance tasks, plugins or themes paused after a fatal error) and the time of the last check. As long as no check has run, the card is neutral. Signals that cannot be determined are not counted as OK.
* **Care message:** a short maintenance note, optionally with the agency name.
* **Quick actions:** tiles such as "Write a new blog post", "Upload gallery / images" or "Change contact details".
* **I need help:** one button with a built-in form (AJAX, honeypot, rate limit), a mailto link or an external helpdesk URL.
* **Our service for you:** a widget with the key figures of the last month.
* **No panic messages:** update bubbles, plugin nags, promotional notices and Site Health warnings are suppressed. Success and error messages stay visible.
* **Privacy-friendly login protection:** repeated failed logins are temporarily blocked. Only short-lived keyed hashes are kept for throttling; raw IP addresses and attempted user names are not stored.

= For the agency =

* **Ghost Mode:** switch between the full admin view and the client view with an admin bar switch or `Alt+Q`, without logging out.
* **Menu whitelist:** choose which areas and submenus the client sees. This controls what is shown; it is a usability feature, not an access control.
* **Care reports:** figures for updates, backups, spam, recorded failed logins and support requests as a dashboard widget and an admin page.
* **Custom role:** "Client (OMS QuietAdmin)" with an allowlist of capabilities (no plugin, theme, user or options management).
* **REST endpoints:** `/quietadmin/v1/status`, `/report` and `/check`.

= OMS QuietAdmin Pro (premium version) =

OMS QuietAdmin Pro is the premium version of this plugin for agencies that manage many client sites. It contains everything in the free plugin and adds:

* **White label:** your logo, colors, login page and agency name throughout
* **Magic Login:** work in a client account without a password, time-limited and logged
* **Care report by email**, automatically every month
* **Custom quick actions**
* **External monitoring status** via REST
* **Settings export and import** to roll out one setup to every client site

Everything described above works without Pro. The free plugin contains no locked features. When you install and activate OMS QuietAdmin Pro, the free version is deactivated automatically and is not needed any more.

= Privacy =

OMS QuietAdmin keeps a care log in its own database table (maintenance events, counters, support requests) and stores the time of each client's last login as user meta. Failed login attempts are only counted. Login throttling uses keyed hashes of the submitted account name and IP address that expire after 15 minutes; raw IP addresses and attempted user names are not stored by default. Log entries are deleted automatically after 180 days (filter `quietadmin_log_retention_days`). The plugin suggests text for your privacy policy and integrates with the WordPress personal data exporter and eraser. Support messages are sent by email and are not stored on the website. 

= Extension points (selection) =

* `quietadmin_quick_actions` – register custom quick actions
* `quietadmin_menu_whitelist` – change the menu whitelist
* `quietadmin_is_client_mode` – switch the client view on or off
* `quietadmin_report_metrics` / `quietadmin_report_highlights` – add report figures
* `quietadmin_status_level` – let external monitoring set the status
* `quietadmin_status_checks` – add your own check signals
* `quietadmin_backup_completed` (action) – report a completed backup from any backup tool
* `quietadmin_failure` (action) – report a failed maintenance task, e.g. `do_action( 'quietadmin_failure', 'backup_failed', 'Backup failed' )`
* `quietadmin_keep_notice` – decide whether an admin notice stays visible
* `quietadmin_support_mail` – adjust the support email before sending
* `quietadmin_log_retention_days` – change how long the care log is kept
* `quietadmin_settings_tabs`, `quietadmin_default_options`, `quietadmin_sanitize_options` – extend the settings page

== Installation ==

1. Upload the `oms-quietadmin` folder to `/wp-content/plugins/` or install the ZIP via *Plugins → Add New → Upload Plugin*.
2. Activate the plugin.
3. Under **Settings → OMS QuietAdmin** enter the agency name, choose the visible menu items and set the support channel.
4. Create a user with the role **Client (OMS QuietAdmin)**.
5. Check the result with Ghost Mode (`Alt+Q`) or in a private window.

== Screenshots ==

1. The calm client dashboard with an honest status light, quick actions, maintenance summary and direct support.
2. The structured agency settings for branding, dashboard, menu, notice handling, support and care reports.
3. The care report summarizing updates, backups, security, support requests and published content.

== Frequently Asked Questions ==

= Does the client really not see updates any more? =
In the client backend: yes. Menu counters, update nags and plugin notices are removed or hidden. The updates themselves keep running as usual and stay visible in the normal admin view.

= Is the menu whitelist a security feature? =
No. It hides menu items to keep the interface calm. What a client can do is determined by the capabilities of the role. Do not grant capabilities you do not want the client to have.

= Does this work with WooCommerce, Yoast and others? =
Yes. The notice filter removes update nags and promotional or health notices of other plugins; success and error messages stay visible. The menu whitelist shows every menu you tick, including WooCommerce.

= Where does the status come from? =
From real checks that run daily via WP-Cron and on demand: SSL, PHP version, pending updates, age of the last backup event, failed maintenance tasks and paused plugins or themes. Backups are only known if your backup tool is detected or reports completed backups with `do_action( 'quietadmin_backup_completed' )`; otherwise that signal is shown as unknown.

= Do I need OMS QuietAdmin Pro? =
No. Pro is a paid version that adds white label, Magic Login, monthly email reports, custom quick actions, external monitoring status and settings export/import for agencies. It replaces the free plugin; you do not need both.

= What happens on uninstall? =
Nothing, unless you enable the option "Remove all settings and logs when the plugin is deleted". Then options, role, capabilities, user meta, transients and the log table are removed.

== Changelog ==

= 0.9.5 =
* Compatibility: dynamic notice-suppression CSS now uses the WordPress enqueue API.
* Changed: settings and care reports now live under the standard WordPress Settings menu.
* Changed: bundled translation catalogs were removed from the WordPress.org package; translations are provided through translate.wordpress.org.
* Improved: the role-scoped client-workspace purpose and administrator safeguards are documented more clearly.

= 0.9.4 =
* Changed: the public plugin name is now OMS QuietAdmin and the WordPress.org slug and text domain are `oms-quietadmin`.
* Compatibility: internal hooks, options, database data and the `/quietadmin/v1/` REST namespace remain unchanged.

= 0.9.3 =
* Improved: the settings screen now starts with a responsive OMS QuietAdmin brand header.
* Fix: incomplete update-cache data can no longer produce a green status.
* Fix: update tracking ignores installations and translations, avoids automatic-update double counts, and counts every component in bulk updates.
* Fix: the latest-update notice now uses successful core, plugin or theme updates only.
* Fix: restored frontend Ghost Mode assets, fixed-window support throttling, mbstring fallback and contact-page lookup from 0.9.2.
* Improved: PHP 8.2 is required and PHP 8.4 is the recommended status threshold.

= 0.9.2 =
* New: privacy-friendly login throttling blocks repeated failed attempts without storing raw IP addresses or attempted user names.
* Security: Magic Login now requires a separate HttpOnly, one-time return proof before an administrator session can be restored.
* Improved: activating the premium package reliably deactivates the WordPress.org Free build first.

= 0.9.1 =
* New: "Get Pro" and "Documentation" links in the plugin list.
* Improved: calmer settings page (card layout, pill tabs, clearer form fields) with a sidebar: Free vs. Pro comparison, getting started, status and Pro box.
* Fix: no fatal error when Free and Pro are active at the same time (notice instead).
* Fix: Plugin Check findings; the free version no longer bundles third-party SDK code.

= 0.9.0 =
* New: first public release candidate.
* New: agency features (white label, Magic Login, email reports, custom quick actions, external monitoring, settings export/import) are part of the premium version OMS QuietAdmin Pro. Free settings are kept.
* New: extension hooks for add-ons (`quietadmin_settings_tabs`, `quietadmin_default_options`, `quietadmin_sanitize_options`, `quietadmin_capabilities_map` and others).
* Improved: setup guidance on the settings page; privacy policy text.
* Improved: all code comments and strings are English; complete German translation (`de_DE`) included.

= 0.1.2 =
* Fixes for status signals, notice filtering, Ghost Mode redirects, log volume and uninstall; privacy exporter and eraser added.

= 0.1.1 =
* Fixes for the return-to-account session marker, real status checks, notice filtering and uninstall.

== Upgrade Notice ==

= 0.9.0 =
White label, Magic Login, email reports and other agency features are now part of the paid OMS QuietAdmin Pro version.
