Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
a161a64
Add Fediverse Wrapped statistics feature (WIP)
pfefferle Dec 15, 2025
5f05e27
Merge branch 'trunk' into try/fediverse-wrapped-statistics
pfefferle Dec 15, 2025
2a43028
Merge branch 'trunk' into try/fediverse-wrapped-statistics
pfefferle Dec 16, 2025
c8c9fd1
Merge branch 'trunk' into try/fediverse-wrapped-statistics
pfefferle Dec 17, 2025
c3a6831
Remove Fediverse Wrapped shareable card feature
pfefferle Dec 17, 2025
4400353
Convert statistics dashboard widget to React with TypeScript.
pfefferle Dec 17, 2025
a0d775d
Improve statistics dashboard with dynamic data and WordPress colors
pfefferle Dec 17, 2025
b374e75
Merge branch 'trunk' into try/fediverse-wrapped-statistics
pfefferle Dec 17, 2025
65191d7
Merge branch 'trunk' into try/fediverse-wrapped-statistics
pfefferle Dec 17, 2025
4a7b589
Merge branch 'trunk' into try/fediverse-wrapped-statistics
pfefferle Dec 18, 2025
dd5d2aa
Address PR feedback: move cron schedules and get actors via JS
pfefferle Dec 18, 2025
7a02d90
Merge branch 'trunk' into try/fediverse-wrapped-statistics
pfefferle Jan 27, 2026
c33faf3
Update statistics scheduler to compile current year stats in December
pfefferle Jan 27, 2026
4e10603
Restyle dashboard stats widget to match WordPress core dashboard
pfefferle Jan 27, 2026
86f2c70
Improve dashboard stats styling
pfefferle Jan 27, 2026
628d98b
Use h3 for section headlines and move chart title outside grey box
pfefferle Jan 27, 2026
18beb7d
Use h3 for stats period heading
pfefferle Jan 27, 2026
fccda96
Align dashboard widget styles with WordPress core patterns
pfefferle Jan 27, 2026
63dc263
Match WordPress dashboard CSS patterns exactly
pfefferle Jan 27, 2026
8b1424b
Move chart margins to container element
pfefferle Jan 27, 2026
f875b1f
Add space between stat value and label
pfefferle Jan 27, 2026
1d292d3
Add grey background to chart container
pfefferle Jan 27, 2026
e06e5ce
Remove unnecessary negative margins from sections
pfefferle Jan 27, 2026
792ff17
Add space between label and change number
pfefferle Jan 27, 2026
745f012
Link stats to their respective admin pages
pfefferle Jan 27, 2026
f98455c
Remove actor selector, show both follower counts
pfefferle Jan 27, 2026
feae6e3
Use simpler follower labels: Followers and Followers (Blog)
pfefferle Jan 27, 2026
28a0dc9
Use At a Glance widget HTML structure and CSS patterns
pfefferle Jan 27, 2026
8b71328
Fix icon appearing on stat-change span
pfefferle Jan 27, 2026
08414e1
Change to rolling monthly data and month-over-month comparison
pfefferle Jan 27, 2026
161d652
Show follower change instead of absolute count
pfefferle Jan 27, 2026
4264a4a
Show followers with absolute count and change in parentheses
pfefferle Jan 27, 2026
3d7e698
Show new followers per month with separate user/blog counts
pfefferle Jan 27, 2026
29d0378
Always query live data for current month statistics
pfefferle Jan 27, 2026
76248a1
Add collect and compile actions to local stats CLI command
pfefferle Jan 27, 2026
163a5db
Remove unused Statistics methods
pfefferle Jan 27, 2026
d7e49b4
Move CLI-specific stats functions to local CLI class
pfefferle Jan 27, 2026
026b0e2
Fix statistics to include all supported post types
pfefferle Jan 27, 2026
0afc836
Fix statistics collection and dashboard widget issues
pfefferle Jan 27, 2026
2364156
Address PR review feedback for Fediverse Wrapped
pfefferle Jan 27, 2026
febdfc7
Fix translators comment placement in Mailer
pfefferle Jan 27, 2026
b3493b6
Refactor get_active_user_ids to use Actors::get_all_ids
pfefferle Jan 27, 2026
b12712e
Add federated comments directly in get_comment_types_for_stats
pfefferle Jan 27, 2026
e7172cb
Remove unused Statistics::init method
pfefferle Jan 27, 2026
7d82ea7
Consolidate all dashboard widgets into dedicated Dashboard class
pfefferle Jan 27, 2026
a599516
Remove orphaned Statistics::init call
pfefferle Jan 27, 2026
3a0d109
Fix annual wrapped email template name
pfefferle Jan 28, 2026
9eb291b
Refactor Mailer::send() to accept subject as parameter
pfefferle Jan 28, 2026
20369f4
Merge branch 'trunk' into try/fediverse-wrapped-statistics
pfefferle Feb 10, 2026
08952db
Merge branch 'trunk' into try/fediverse-wrapped-statistics
pfefferle Feb 11, 2026
fe2cccd
Add Stats_Command to production CLI
pfefferle Feb 11, 2026
1f4017d
Move Statistics_Controller to admin REST namespace
pfefferle Feb 11, 2026
c6465a6
Fix code review issues in statistics feature
pfefferle Feb 11, 2026
6b5e54f
Improve annual report email: generic Mailer::send(), user opt-out, CL…
pfefferle Feb 11, 2026
bfdf805
Fix performance, security, and rendering issues in statistics feature
pfefferle Feb 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions activitypub.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ function rest_init() {
( new Rest\Actors_Controller() )->register_routes();
( new Rest\Actors_Inbox_Controller() )->register_routes();
( new Rest\Admin\Actions_Controller() )->register_routes();
( new Rest\Admin\Statistics_Controller() )->register_routes();
( new Rest\Application_Controller() )->register_routes();
( new Rest\Collections_Controller() )->register_routes();
( new Rest\Comments_Controller() )->register_routes();
Expand Down Expand Up @@ -140,6 +141,7 @@ function plugin_admin_init() {
\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Health_Check', 'init' ) );
\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings', 'init' ) );
\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings_Fields', 'init' ) );
\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Dashboard', 'init' ) );
\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\User_Settings_Fields', 'init' ) );
\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Welcome_Fields', 'init' ) );

Expand Down
10 changes: 10 additions & 0 deletions build/dashboard-stats/block.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions build/dashboard-stats/index.asset.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions build/dashboard-stats/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions build/dashboard-stats/style-index-rtl.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions build/dashboard-stats/style-index.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions includes/class-activitypub.php
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,18 @@ public static function register_user_meta() {
);
\add_filter( 'get_user_option_activitypub_mailer_new_mention', array( self::class, 'user_options_default' ) );

\register_meta(
'user',
$blog_prefix . 'activitypub_mailer_annual_report',
array(
'type' => 'integer',
'description' => 'Send the annual Fediverse Year in Review email.',
'single' => true,
'sanitize_callback' => 'absint',
)
);
\add_filter( 'get_user_option_activitypub_mailer_annual_report', array( self::class, 'user_options_default' ) );

\register_meta(
'user',
'activitypub_show_welcome_tab',
Expand Down
9 changes: 9 additions & 0 deletions includes/class-cli.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class Cli {
* - wp activitypub self-destruct [--status] [--yes]
* - wp activitypub move <from> <to>
* - wp activitypub follow <remote_user>
* - wp activitypub stats <collect|compile>
*/
public static function register() {
// Register parent command with version subcommand.
Expand Down Expand Up @@ -96,5 +97,13 @@ public static function register() {
'shortdesc' => 'Follow a remote ActivityPub user.',
)
);

\WP_CLI::add_command(
'activitypub stats',
'\Activitypub\Cli\Stats_Command',
array(
'shortdesc' => 'Manage ActivityPub statistics (collect or compile).',
)
);
}
}
Loading