diff --git a/classes/admin/class-page.php b/classes/admin/class-page.php index c44586f1c..a514cb3a8 100644 --- a/classes/admin/class-page.php +++ b/classes/admin/class-page.php @@ -28,6 +28,7 @@ private function register_hooks() { \add_action( 'admin_menu', [ $this, 'add_page' ] ); \add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_assets' ] ); \add_action( 'wp_ajax_progress_planner_save_cpt_settings', [ $this, 'save_cpt_settings' ] ); + \add_action( 'wp_dashboard_setup', [ $this, 'add_dashboard_widgets' ] ); } /** @@ -192,4 +193,19 @@ public function save_cpt_settings() { ] ); } + + /** + * Add dashboard widgets. + * + * @return void + */ + public function add_dashboard_widgets() { + foreach ( $this->get_widgets() as $widget ) { + \wp_add_dashboard_widget( + $widget->get_id(), + $widget->get_title(), + [ $widget, 'render' ] + ); + } + } } diff --git a/classes/class-widget.php b/classes/class-widget.php index 951980fdf..35bf76546 100644 --- a/classes/class-widget.php +++ b/classes/class-widget.php @@ -37,6 +37,15 @@ public function get_id() { return $this->id; } + /** + * Get the widget title. + * + * @return string + */ + public function get_title() { + return ''; + } + /** * Get the widget range. * diff --git a/classes/widgets/class-activity-scores.php b/classes/widgets/class-activity-scores.php index 44754c80d..7a86e792d 100644 --- a/classes/widgets/class-activity-scores.php +++ b/classes/widgets/class-activity-scores.php @@ -23,6 +23,15 @@ final class Activity_Scores extends Widget { */ protected $id = 'activity-scores'; + /** + * The title. + * + * @return string + */ + public function get_title() { + return \esc_html__( 'Your website activity score', 'progress-planner' ); + } + /** * The color callback. * diff --git a/classes/widgets/class-badge-streak.php b/classes/widgets/class-badge-streak.php index 53aee6c64..cb39b554c 100644 --- a/classes/widgets/class-badge-streak.php +++ b/classes/widgets/class-badge-streak.php @@ -21,6 +21,15 @@ final class Badge_Streak extends Widget { */ protected $id = 'badge-streak'; + /** + * The title. + * + * @return string + */ + public function get_title() { + return \esc_html__( 'Your streak badges', 'progress-planner' ); + } + /** * Get the badge. * diff --git a/classes/widgets/class-challenge.php b/classes/widgets/class-challenge.php index c435f768f..e1e239de0 100644 --- a/classes/widgets/class-challenge.php +++ b/classes/widgets/class-challenge.php @@ -19,6 +19,15 @@ final class Challenge extends \Progress_Planner\Widget { */ protected $id = 'challenge'; + /** + * The title. + * + * @return string + */ + public function get_title() { + return \esc_html__( 'Your challenge', 'progress-planner' ); + } + /** * Get the feed from the blog. * diff --git a/classes/widgets/class-latest-badge.php b/classes/widgets/class-latest-badge.php index b8d5586a4..bfa299cfb 100644 --- a/classes/widgets/class-latest-badge.php +++ b/classes/widgets/class-latest-badge.php @@ -28,6 +28,15 @@ final class Latest_Badge extends Widget { */ public $endpoint; + /** + * The title. + * + * @return string + */ + public function get_title() { + return \esc_html__( 'Latest new badge!', 'progress-planner' ); + } + /** * Constructor. */ diff --git a/classes/widgets/class-published-content.php b/classes/widgets/class-published-content.php index ff3060dbc..70a207132 100644 --- a/classes/widgets/class-published-content.php +++ b/classes/widgets/class-published-content.php @@ -21,6 +21,15 @@ final class Published_Content extends Widget { */ protected $id = 'published-content'; + /** + * The title. + * + * @return string + */ + public function get_title() { + return \esc_html__( 'Published content', 'progress-planner' ); + } + /** * Get stats for posts, by post-type. * diff --git a/classes/widgets/class-suggested-tasks.php b/classes/widgets/class-suggested-tasks.php index 424a34d7d..3ec072b0a 100644 --- a/classes/widgets/class-suggested-tasks.php +++ b/classes/widgets/class-suggested-tasks.php @@ -23,6 +23,15 @@ final class Suggested_Tasks extends Widget { */ protected $id = 'suggested-tasks'; + /** + * The title. + * + * @return string + */ + public function get_title() { + return \esc_html__( 'Suggested tasks', 'progress-planner' ); + } + /** * Get the score. * diff --git a/classes/widgets/class-todo.php b/classes/widgets/class-todo.php index ab8d702be..b5c1ff111 100644 --- a/classes/widgets/class-todo.php +++ b/classes/widgets/class-todo.php @@ -21,6 +21,15 @@ final class ToDo extends Widget { */ protected $id = 'todo'; + /** + * The title. + * + * @return string + */ + public function get_title() { + return \esc_html__( 'ToDo list', 'progress-planner' ); + } + /** * Print the widget content. * diff --git a/classes/widgets/class-whats-new.php b/classes/widgets/class-whats-new.php index 509fbc7fc..1176b541e 100644 --- a/classes/widgets/class-whats-new.php +++ b/classes/widgets/class-whats-new.php @@ -29,6 +29,15 @@ final class Whats_New extends Widget { */ protected $id = 'whats-new'; + /** + * The title. + * + * @return string + */ + public function get_title() { + return \esc_html__( 'What\'s new', 'progress-planner' ); + } + /** * Get the feed from the blog. *