Maintenance Report by Potoki Paul
Maintenance Report by Potoki Paul
by Potoki Paul · github.com/potokipaul/wordpress-maintenance-report-plugin · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/potokipaul/wordpress-maintenance-report-plugin/archive/refs/heads/main.zipReadme
=== Maintenance Report by Potoki Paul === Contributors: potokipaul Author: Potoki Paul Author URI: https://potokipaul.com/ Plugin URI: https://potokipaul.com/ Tags: maintenance, report, security, updates, uptime, monthly report, client report Requires at least: 5.6 Tested up to: 6.5 Requires PHP: 7.2 Stable tag: 1.1.1 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html
Beautiful automated monthly website maintenance reports with charts, branding, scheduled email delivery and PDF export.
== Description ==
Maintenance Report Pro generates a polished monthly maintenance report for your WordPress site and (optionally) emails it to you and/or your client at the end of every month.
Each report includes:
- WordPress core version + available update status
- Plugin updates — installed, active, up-to-date and a list of pending updates (current → new version)
- Theme updates — active theme + pending updates
- Content activity — posts, pages, any custom post types, media uploads and comments created during the month
- Security & protection — brute-force attempts blocked, failed logins, security fixes, malware removed, backups
- Maintenance log — manually recorded fixes, optimizations, notes (plus auto-captured security events)
- Site health score — a computed 0–100 grade with action items
- Charts — inline SVG charts (render in email & PDF) plus interactive Chart.js charts in the dashboard
== Features ==
- Scheduled automatic email delivery (last day of month or a fixed day)
- On-demand "View / Download PDF" (browser print-to-PDF) and "Email now" buttons
- Full branding: logo, company name, client name, primary/accent colors, custom footer
- Automatic brute-force / failed-login monitoring (configurable)
- Manual maintenance log with type, severity, date and description
- Browse reports for any of the last 12 months
== Installation ==
- Upload the
maintenance-reportfolder to/wp-content/plugins/(or upload the ZIP via Plugins → Add New → Upload). - Activate the plugin through the 'Plugins' menu in WordPress.
- Go to Maint. Report → Settings to set your branding, recipients and schedule.
- Use Maint. Report → Maintenance Log to record security fixes, backups, etc.
- Use Maint. Report → Dashboard to preview, download as PDF, or email a report on demand.
== Frequently Asked Questions ==
= The scheduled email didn't arrive = WordPress cron only runs when your site receives traffic. For reliable timing, set up a real server cron hitting wp-cron.php, and make sure your site can send email (an SMTP plugin is strongly recommended).
= Can I send to my client directly? = Yes — add multiple comma-separated addresses in Settings → Recipient email(s).
= Does brute-force detection replace a security plugin? = No. It provides lightweight failed-login/brute-force logging for reporting purposes. Keep a dedicated security plugin/firewall for active protection.
== Changelog ==
= 1.1.1 =
- Fixed: failed-login tracking could silently stay off on sites where the settings option predated the "track logins" setting (missing key was never falling back to its default of enabled). Failed logins — wrong username or wrong password — are now counted correctly regardless of how the settings option was originally saved.
- Fixed: KPI cards in the emailed report (Plugins updated, Themes updated, Posts/Pages added, Uptime, Failed logins) could render at different widths and heights depending on label length, since the table cells had no fixed size. Cards are now equal width and height.
- Security: brute-force detection no longer trusts client-supplied CF-Connecting-IP / X-Forwarded-For headers unconditionally — these could be spoofed on a direct request to defeat per-IP failed-login counting entirely. CF-Connecting-IP is now only trusted when the connection is verified to actually originate from a Cloudflare edge IP; X-Forwarded-For is no longer trusted at all.
= 1.1.0 =
- Added website uptime monitoring via a 5-minute heartbeat (with automatic monthly reset and a manual "Reset heartbeat" control).
- Added WordPress core / plugin / theme update history (records "upgraded from X to Y" with dates).
- Fixed failed-login tracking so every blocked attempt (wrong username or password) is counted.
- Made email charts client-safe: replaced inline SVG donut/bar charts with HTML/table-based versions so they render correctly in Gmail, Outlook, etc.
- Security & Failed Logins section now hides any metric that has no value.
- Dashboard is now full-width and fully responsive.
- Removed a duplicate "Visit plugin site" link on the Plugins screen.
= 1.0.0 =
- Initial release.