From 891c7ffd14e5e2e159cb5d31026fd194f4dff2d7 Mon Sep 17 00:00:00 2001 From: Filip Ilic Date: Wed, 18 Feb 2026 12:12:18 +0100 Subject: [PATCH] Show 3 suggested tasks on WP Dashboard, 5 elsewhere Add get_per_page() helper to Suggested_Tasks widget that returns PER_PAGE_DASHBOARD (3) on the WP Dashboard screen and PER_PAGE_DEFAULT (5) on all other screens. Co-Authored-By: Claude Opus 4.6 --- classes/admin/class-enqueue.php | 4 ++-- .../admin/widgets/class-suggested-tasks.php | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/classes/admin/class-enqueue.php b/classes/admin/class-enqueue.php index 8959089943..55495fb043 100644 --- a/classes/admin/class-enqueue.php +++ b/classes/admin/class-enqueue.php @@ -227,7 +227,7 @@ public function localize_script( $handle, $localize_data = [] ) { // Check if user wants to see all recommendations. $show_all_recommendations = isset( $_GET['prpl_show_all_recommendations'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended - $tasks_per_page = $show_all_recommendations ? -1 : \Progress_Planner\Admin\Widgets\Suggested_Tasks::PER_PAGE_DEFAULT; + $tasks_per_page = $show_all_recommendations ? -1 : \Progress_Planner\Admin\Widgets\Suggested_Tasks::get_per_page(); // Get tasks from task providers (limited to 5 by default, or unlimited if showing all). $tasks = \progress_planner()->get_suggested_tasks()->get_tasks_in_rest_format( @@ -269,7 +269,7 @@ public function localize_script( $handle, $localize_data = [] ) { ], 'delayCelebration' => $delay_celebration, 'tasksPerPage' => $tasks_per_page, - 'perPageDefault' => \Progress_Planner\Admin\Widgets\Suggested_Tasks::PER_PAGE_DEFAULT, + 'perPageDefault' => \Progress_Planner\Admin\Widgets\Suggested_Tasks::get_per_page(), ], ]; break; diff --git a/classes/admin/widgets/class-suggested-tasks.php b/classes/admin/widgets/class-suggested-tasks.php index 435e5f0616..732548dd8a 100644 --- a/classes/admin/widgets/class-suggested-tasks.php +++ b/classes/admin/widgets/class-suggested-tasks.php @@ -19,6 +19,26 @@ final class Suggested_Tasks extends Widget { */ public const PER_PAGE_DEFAULT = 5; + /** + * Number of tasks to show per page on the WP Dashboard. + * + * @var int + */ + public const PER_PAGE_DASHBOARD = 3; + + /** + * Get the number of tasks to show per page based on the current screen. + * + * @return int + */ + public static function get_per_page() { + $screen = \get_current_screen(); + if ( $screen && 'dashboard' === $screen->id ) { + return self::PER_PAGE_DASHBOARD; + } + return self::PER_PAGE_DEFAULT; + } + /** * The widget ID. *