Presence API
One of the maintainers
Real time presence for WordPress. Performance work on polling and SQL aggregation, network wide presence over REST and WP-CLI, plus authorization, accessibility and test coverage.
Repository (opens in a new tab) My pull requests on GitHub (opens in a new tab)
Pull requests 35
-
perf: decide redundant presence writes inside the upsert (opens in a new tab)
Merged #542 · +101 / -61
-
feat: filter wp_get_presence() by client_id prefix in SQL (opens in a new tab)
Merged #530 · +89 / -13
-
ci: fail the Plugin Check job when Plugin Check reports an error (opens in a new tab)
Merged #465 · +13 / -1
-
fix: distinguish a non-aggregating network from a quiet one (opens in a new tab)
Merged #448 · +328 / -11
-
fix: add data-post-id to server-rendered Active Posts rows (opens in a new tab)
Merged #435 · +19 / -1
-
test: cover the Network Admin Users list Online view and column (opens in a new tab)
Merged #407 · +167 / -0
-
test: cover the Network Admin Sites list Online column (opens in a new tab)
Merged #402 · +269 / -0
-
fix: gate cross-tab relay on Web Locks availability (opens in a new tab)
Merged #401 · +201 / -1
-
test: add a multisite environment for Network Admin e2e coverage (opens in a new tab)
Merged #397 · +179 / -19
-
fix: outlast core's unfocused heartbeat interval in the presence TTL (opens in a new tab)
Merged #379 · +59 / -19
-
refactor: share the avatar stack's CSS and JS across every surface (opens in a new tab)
Merged #373 · +244 / -54
-
feat: expose network presence via REST and WP-CLI (opens in a new tab)
Merged #365 · +875 / -6
-
perf: gate network presence aggregation on wp_is_large_network() (opens in a new tab)
Merged #357 · +146 / -2
-
fix: carry each site's own scheme in the network summary row (opens in a new tab)
Merged #355 · +68 / -2
-
fix: clear a user's presence when their account or site membership ends (opens in a new tab)
Merged #339 · +97 / -1
-
perf: back off heartbeat polling interval for idle rooms (opens in a new tab)
Merged #307 · +278 / -1
-
perf: coalesce presence polling across tabs of the same user (opens in a new tab)
Merged #300 · +1302 / -185
-
perf: skip Who's Online payload when room state is unchanged (opens in a new tab)
Merged #288 · +258 / -10
-
perf: aggregate wp_get_presence_summary() in SQL (opens in a new tab)
Merged #277 · +74 / -19
-
test: simulate declining the cleanup confirmation prompt (opens in a new tab)
Merged #276 · +33 / -4
-
fix: preserve focus across heartbeat re-renders in dashboard widgets (opens in a new tab)
Merged #271 · +144 / -3
-
fix: check table availability in the CLI command and debug viewer (opens in a new tab)
Merged #261 · +14 / -7
-
test: cover the WP-CLI presence command (opens in a new tab)
Merged #256 · +422 / -0
-
test: cover post list and user list admin integrations (opens in a new tab)
Merged #251 · +315 / -0
-
test: cover empty-result and deleted-user branches in functions.php (opens in a new tab)
Merged #234 · +32 / -0
-
docs: document the existing Presence API extension points (opens in a new tab)
Merged #175 · +56 / -11
-
feat: add display_name and avatar_url to presence response (opens in a new tab)
Merged #159 · +90 / -5
-
fix: add missing alt text to Who's Online widget avatar (opens in a new tab)
Merged #147 · +28 / -1
-
refactor: replace hardcoded admin/online room string with helper (opens in a new tab)
Merged #176 · +20 / -17
-
feat: move inline heartbeat JS to a standalone enqueued script (opens in a new tab)
Merged #169 · +144 / -112
-
build: declare PHPUnit and Polyfills as composer dependencies (opens in a new tab)
Merged #150 · +14 / -11
-
fix: enforce per-room authorization checks for presence rooms (opens in a new tab)
Merged #158 · +123 / -18
-
REST API: Remove value sanitization from arbitrary data parameter (opens in a new tab)
Merged #145 · +23 / -11