1010
1111namespace TUTOR ;
1212
13+ use Tutor \Helpers \UrlHelper ;
14+
1315if ( ! defined ( 'ABSPATH ' ) ) {
1416 exit ;
1517}
2022 */
2123class Dashboard {
2224
25+ /**
26+ * Account page constants
27+ *
28+ * @since 4.0.0
29+ */
30+ const ACCOUNT_PAGE_SLUG = 'account ' ;
31+ const ACCOUNT_PAGE_QUERY_PARAM = 'subpage ' ;
32+
2333 /**
2434 * Constructor
2535 *
@@ -31,6 +41,60 @@ public function __construct() {
3141 add_filter ( 'should_tutor_load_template ' , array ( $ this , 'should_tutor_load_template ' ), 10 , 2 );
3242 }
3343
44+
45+ /**
46+ * Get account page URL.
47+ *
48+ * @since 4.0.0
49+ *
50+ * @param string $page page name.
51+ *
52+ * @return string
53+ */
54+ public static function get_account_page_url ( $ page = '' ) {
55+ $ account_page_url = tutor_utils ()->tutor_dashboard_url ( self ::ACCOUNT_PAGE_SLUG );
56+ if ( empty ( $ page ) ) {
57+ return $ account_page_url ;
58+ }
59+
60+ return UrlHelper::add_query_params ( $ account_page_url , array ( self ::ACCOUNT_PAGE_QUERY_PARAM => $ page ) );
61+ }
62+
63+ /**
64+ * Get account pages.
65+ *
66+ * @since 4.0.0
67+ *
68+ * @return array
69+ */
70+ public static function get_account_pages () {
71+ $ pages = array (
72+ 'profile ' => array (
73+ 'title ' => esc_html__ ( 'Profile ' , 'tutor ' ),
74+ 'icon ' => Icon::PROFILE_CIRCLE ,
75+ 'icon_active ' => Icon::PROFILE_CIRCLE_FILL ,
76+ 'url ' => self ::get_account_page_url ( 'profile ' ),
77+ 'template ' => tutor_get_template ( 'dashboard.account.profile ' ),
78+ ),
79+ 'reviews ' => array (
80+ 'title ' => esc_html__ ( 'Reviews ' , 'tutor ' ),
81+ 'icon ' => Icon::RATINGS ,
82+ 'icon_active ' => Icon::RATINGS ,
83+ 'url ' => self ::get_account_page_url ( 'reviews ' ),
84+ 'template ' => tutor_get_template ( 'dashboard.account.reviews ' ),
85+ ),
86+ 'settings ' => array (
87+ 'title ' => esc_html__ ( 'Settings ' , 'tutor ' ),
88+ 'icon ' => Icon::SETTING ,
89+ 'icon_active ' => Icon::SETTING ,
90+ 'url ' => self ::get_account_page_url ( 'settings ' ),
91+ 'template ' => tutor_get_template ( 'dashboard.account.settings ' ),
92+ ),
93+ );
94+
95+ return apply_filters ( 'tutor_dashboard_account_pages ' , $ pages );
96+ }
97+
3498 /**
3599 * Load template after
36100 *
0 commit comments