diff --git a/classes/admin/class-enqueue.php b/classes/admin/class-enqueue.php index 895908994..55495fb04 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 435e5f061..732548dd8 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. *