Analiza Live
Real-time visitor analytics plugin for WordPress & WooCommerce
by Silviu Adumitroaie · github.com/silviuadumitroaieflx/live-visitor-analytics-wp
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/silviuadumitroaieflx/live-visitor-analytics-wp/archive/refs/heads/master.zipLive Visitor Analytics for WordPress
Real-time customer behavior analytics plugin for WordPress and WooCommerce (plugin slug: analiza-live). Built as my bachelor's thesis project (Transilvania University of Brașov, 2026).
Tracks visitors live on the site — no external analytics service, all data stays in the WordPress database.
Features
- Live dashboard — who is on the site right now, which page, which product category, desktop vs. mobile
- Choropleth map (Leaflet) — visitors by county, geolocated via ip-api.com
- Conversion funnel — from browsing to product pages
- 24h/7d history — per-minute snapshots of visitor counts and top categories, saved by WP-Cron
- 6 CSV exports — live visitors, regions, history, and more
- Settings page — configurable category detection rules (URL prefix, allow-list, custom rules), with the real WooCommerce product category used on product pages
- GDPR-friendly by design — see below
- Fully internationalized — text domain
analiza-live, Romanian source strings with an English translation bundled inlanguages/ - Self-contained — Chart.js, Leaflet and the Romania counties GeoJSON are bundled locally and loaded via
wp_enqueue_*, only on the plugin's own admin page; no CDN dependencies - Clean uninstall —
uninstall.phpdrops the plugin's tables and removes every option, transient and cron entry it created
How it works
- A lightweight tracking script is injected in the site footer. It reports every 3 seconds via
navigator.sendBeacon(survives background-tab throttling; falls back to XHR), plus onvisibilitychangewhen a tab becomes active again. - Each browser session generates a random session ID (
crypto.randomUUID, kept insessionStorage), so multiple visitors behind the same NAT/router are counted separately. - The server stores only a salted SHA-256 hash of the session ID — no IP addresses, no cookies, no personal data at rest. The IP is used transiently for geolocation only, and geo lookups are cached for 24h via transients.
- Events live in a custom table with a 7-day retention window; a WP-Cron job aggregates per-minute snapshots into a history table.
- The only external services used at runtime are the CARTO basemap tiles (map background), ip-api.com and ipify (server-side geolocation). Everything else ships with the plugin.
Installation
- Download the release ZIP (or copy the
analiza-livefolder towp-content/plugins/). - In the WordPress admin, go to Plugins → Add New → Upload Plugin and upload the ZIP.
- Activate Analiza Live and open its admin page for the live dashboard, map, funnel and settings.
Requires WordPress 6.0+ and PHP 8.0+. WooCommerce is optional — the plugin detects it and degrades gracefully. Tested with WordPress 6.x, WooCommerce, PHP 8.2, MySQL 8.0.
Known limitations / roadmap
- Events are upserted (one row per active visitor) rather than journaled append-only, so per-visitor navigation paths are not reconstructable — the funnel works on aggregated categories. An append-only event log is the natural next step.
- Geolocation relies on the free ip-api.com tier (HTTP, rate-limited) — fine for a demo/small shop, would need a paid/local GeoIP database in production.
sessionStoragemeans a returning visitor counts as a new session — intentional (no consent banner needed), but it rules out returning-visitor metrics.
License
GPL-2.0-or-later
Releases
1 release.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.