Skip to content

Enrich native plugin list with health data#86

Open
apermo wants to merge 8 commits intoZodiac1978:developfrom
apermo:feature/plugin-list-enrichment
Open

Enrich native plugin list with health data#86
apermo wants to merge 8 commits intoZodiac1978:developfrom
apermo:feature/plugin-list-enrichment

Conversation

@apermo
Copy link
Copy Markdown
Contributor

@apermo apermo commented Apr 13, 2026

Summary

  • Adds Repository, Last Update, and Tested up to columns to the native Plugins list table
  • Shows inline warning rows for closed, stale (>2 years), or untested plugins
    • Red bar (notice-error) for closed plugins
    • Orange bar (notice-warning) for stale or untested plugins
  • Populates transient cache inline on the Plugins page — columns work immediately, no report page visit needed
  • Adds a Refresh report data link to the plugin list views (nonce-protected cache clear)
  • Fixes SVN check URL (same as Security hardening: escaping, CSRF, SVN URL #81) so closed plugins are correctly detected
  • Includes multisite network admin support

Fixes #85

Test in WordPress Playground

Open in WordPress Playground — 4 plugins, quick test

Open stress test with 42 plugins — 42 plugins (lightweight, install-only), realistic load test

Pre-installed test plugins: Apermo Admin Bar (outdated), giWeather (closed/removed), plus 37 lightweight wp.org plugins (not activated)

Test plan

  • Open the Plugins page — columns should show data immediately
  • Verify giWeather shows red "Closed" status and red inline warning
  • Verify Apermo Admin Bar shows time-based color coding and orange stale warning
  • Verify Plugin Report itself shows green "wordpress.org" in Repository column
  • Click "Refresh report data" and verify cache is cleared and repopulated
  • Try the 42-plugin stress test and verify it loads (slowly but completely)

@apermo
Copy link
Copy Markdown
Contributor Author

apermo commented Apr 13, 2026

Note: Once #88 (public API) lands, the get_site_transient calls in render_plugin_list_column() and render_plugin_row_warning() on this branch should be replaced with $this->get_report( $slug ). Same for populate_cache_on_plugins_page() — it could use the instance method instead of calling assemble_plugin_report() directly.

apermo added 8 commits April 14, 2026 15:40
Add Repository, Last Update, and Tested up to
columns to the native Plugins page. Show inline
warnings for closed, stale (>2 years), or untested
plugins. Data is read from existing transient cache
populated by the report page.
Call assemble_plugin_report() for all plugins on
the native Plugins page so columns have data on
first visit. Add a "Refresh report data" link to
the plugin list views with nonce-protected cache
clear.
Use notice-error (red) for closed plugins and
notice-warning (orange) for stale/untested. Add
dashicons (dismiss, warning, info) for visual
distinction between severity levels.
The orange notice-warning bar is clear enough
without the redundant dashicons-warning icon.
The notice bar colors (red/orange) are sufficient
visual indicators. Dashicon spans were redundant.
Place the cache-clear link next to the "Add Plugin"
button as a page-title-action instead of in the
views filter list. Reuse existing translated string
"Clear cached plugin data and reload".
Replace jQuery-based inline script with a vanilla
JS IIFE output via admin_print_footer_scripts.
No jQuery dependency needed.
Add property declarations for pr_clear_cache_url
and pr_clear_cache_label to satisfy PHPStan.
@apermo apermo force-pushed the feature/plugin-list-enrichment branch from b285009 to f83ff2c Compare April 14, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enrich native plugin list table with repository health data

1 participant