Skip to content

Releases: andrewbakercloudscale/wordpress-free-analytics

v2.9.186

08 Apr 20:18

Choose a tag to compare

What's changed

  • Referrer drill modal: raised top-pages limit from 10 → 25 per referrer host
  • Stat cards: percentage changes now cap at >999% instead of showing values like 44,424%
  • Modals: added visible scrollbar so overflow content is discoverable

v2.9.175 — Referrer drill-down modal

05 Apr 22:52

Choose a tag to compare

What's new

Referrer drill-down

Click Details next to any referrer in the Referrers panel to open a modal showing the top pages that referrer sent traffic to.

  • Orange-themed modal with bar-chart rows and links to published posts
  • Closes via ×, clicking the backdrop, or pressing Escape
  • Correctly uses rolling 24h window when in Last 24h mode (not calendar midnight-to-midnight)

Bug fix

  • Fixed a silent JS TypeError introduced in v2.9.168 (removed stat-lifetime-posts element but left two stale JS references). This caused all panels to stay stuck on "Loading…" — never reached the fetch call.

Infrastructure

  • deploy-wordpress.sh now uses kill -SIGHUP 1 to force PHP-FPM opcache reload on every deploy

v2.9.162

29 Mar 17:26

Choose a tag to compare

What's changed

  • Fix PHP Warning: Undefined array key widget_id in search.php (lines 88 & 92) — use null-coalescing fallback for contexts where \$args['widget_id'] is absent
  • Add Playwright E2E tests for 404 Olympics game page (tab rendering, tab switching, input handling, d-pad controls)

v2.9.161

26 Mar 11:26

Choose a tag to compare

What's changed

404 tracking fix

  • Hooked cspv_track_404 at priority 0 so it fires before cloudscale-plugin-crash-recovery (which exits at priority 1)
  • Removed manage_options guard — admin-triggered 404s are now logged

Pages per Session card

  • Removed Median row; card now shows Average and Max only

Playwright test suite

  • Added run-ui-tests.sh + tests/ with a 404 log regression test

v2.9.115 — Hot Pages card & mobile layout fixes

21 Mar 13:40

Choose a tag to compare

What's new

🔥 Hot Pages card

New 4th summary card showing pages that received ≥ 2 views in the selected period — genuinely engaged pages, not one-off hits. Shows % change vs the previous equivalent period with current vs prior counts.

📱 Mobile layout fixes

  • Stats cards now display as a clean 2×2 grid on mobile
  • Tab bar wraps onto multiple rows (all tabs accessible, no overflow)
  • Most Viewed and Referrers panels now correctly fill full width
  • Viewport meta tag injected on the plugin admin page for correct media query behaviour

🎨 View counter colour

Auto-display view counter on posts now defaults to red (was blue).

🛡 Safe deploys

All 7 plugin deploy scripts updated with:

  • Atomic swap (no empty-directory crash window)
  • Post-deploy site health check
  • Automatic rollback if site returns non-200

v2.9.95 — Panel Shadows, Map Scroll Fix, 404 Clear Button

15 Mar 22:47

Choose a tag to compare

What's New

UI

  • Panel drop shadows — all stats page panels now have a clear defined shadow; 404 Error Log and Site Health sections wrapped in panels to match
  • Leaflet map scroll fix — two-finger trackpad scrolling no longer hijacked by the map; scroll-to-zoom activates on click and releases on mouse-leave

Bug Fixes

  • 404 Clear Log button — was silently doing nothing; fixed by enqueueing the inline script at priority 20 so the script handle exists before attachment
  • View counter on search results — counter badge now appears after each post excerpt on search result pages, with a section break between results

Maintenance

  • Version bump to 2.9.95 forces CSS cache bust so panel shadows appear immediately without manual browser refresh
  • Removed Ignore Jetpack mode — cspv_get_view_count() always reads from wp_postmeta (fast O(1) summary lookup)
  • IP validation applied consistently to both geo and visitor tracking paths in the REST API

v2.9.94 — Wildcard Search, 404 Tracking, Security Hardening

15 Mar 20:49

Choose a tag to compare

What's New

Wildcard Search (replaces Relevanssi)

  • New Lightweight Analytics: Search widget — add it via Appearance > Widgets
  • Uses SQL LIKE '%term%' so short terms like "AI" match correctly
  • Tiered ranking: exact-case word match in title → exact-case anywhere in title → case-insensitive title → body-only matches
  • Relevanssi is automatically disabled on frontend queries
  • Results capped at 50, ordered newest-first
  • Thumbnails forced to thumbnail size on search result pages

404 Error Log

  • New 🚫 404 Error Log section in the stats dashboard (above Site Health)
  • Tracks destination URL and referrer source for every 404 hit
  • Shows hit count, last seen, and first seen in WordPress local time
  • Clear Log button to purge the table
  • Table created automatically on admin load — no deactivation/reactivation needed

Security Hardening

  • Fixed XSS in dashboard widget and Top Posts widget innerHTML builds
  • Removed db_error from public REST API response (leaked schema details)
  • Added filter_var(FILTER_VALIDATE_IP) validation for geo lookup fallback IP
  • Fixed nonce-before-capability ordering in three stats page AJAX handlers
  • Added wp_unslash() to all $_POST/$_SERVER superglobal accesses
  • Added esc_attr()/esc_html() to all CSS colour value outputs
  • Added wp_kses_post() to debug panel button HTML

Other Fixes

  • database.php: added IF NOT EXISTS to geo and visitors table CREATE statements (prevented errors on repeated activation)
  • readme.txt: added Third Party Services section disclosing DB-IP geolocation database download
  • Plugin entry point renamed from cloudscale-page-views.php to lightweight-wordpress-free-analytics.php
  • Contributors: field added to plugin header
  • Build script: fixed review model ID, switched to focused security-only blocking prompt with BUILD_STATUS verdict line

v2.9.0

28 Feb 23:10

Choose a tag to compare

Initial open source release of CloudScale Page Views.