PluginProbe ʕ •ᴥ•ʔ
Kubio AI Page Builder / 2.8.3
Kubio AI Page Builder v2.8.3
2.8.4 2.8.3 2.8.2 2.8.1 trunk 1.0.0 1.0.1 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.9.0 2.0.0 2.1.1 2.1.2 2.1.3 2.2.0 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.3 2.3.4 2.4.0 2.4.1 2.4.2 2.4.3 2.4.5 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.6.1 2.6.2 2.6.3 2.6.5 2.6.6 2.6.7 2.7.0 2.7.1 2.7.2 2.7.3 2.8.0
kubio / lib / admin-pages / kubio-get-started.php
kubio / lib / admin-pages Last commit date
main-page 6 days ago kubio-get-started.php 1 year ago pages.php 1 year ago
kubio-get-started.php
189 lines
1 <?php
2
3 use IlluminateAgnostic\Arr\Support\Arr;
4
5 function kubio_get_started_page_tabs() {
6 $default_tabs = array(
7 'get-started' => array(
8 'type' => 'core_page',
9 'label' => __( 'Get started with Kubio', 'kubio' ),
10 'tab-partial' => 'get-started.php',
11 'subtitle' => __( 'The supercharged block-based WordPress builder', 'kubio' ),
12 ),
13 'website-starter' => array(
14 'type' => 'hidden',
15 'tab-partial' => 'website-starter.php',
16 ),
17 );
18
19 if ( apply_filters( 'kubio/starter-sites/enabled', true ) ) {
20 $default_tabs = array_merge(
21 $default_tabs,
22 array(
23 'demo-sites' => array(
24 'type' => 'core_page',
25 'label' => __( 'Starter sites', 'kubio' ),
26 'tab-partial' => 'demo-sites.php',
27 'subtitle' => __( 'Beautiful starter sites with 1-click import', 'kubio' ),
28 ),
29 )
30 );
31 }
32
33 $tabs = apply_filters(
34 'kubio/admin-page/info_page_tabs',
35 $default_tabs
36 );
37
38 if ( apply_filters( 'kubio/admin-page/upgrade_to_pro_tab', true ) ) {
39 $tabs = array_merge(
40 $tabs,
41 array(
42 'pro-upgrade' => array(
43 'type' => 'page',
44 'label' => __( 'Upgrade to PRO', 'kubio' ),
45 'tab-partial' => 'upgrade-pro.php',
46 'subtitle' => __( 'The first block-based WordPress builder', 'kubio' ),
47 'class' => 'tab_get_pro',
48 ),
49 )
50 );
51 }
52
53 return $tabs;
54 }
55
56
57 /**
58 * Renders the kubio Welcome Page
59 */
60
61 function kubio_get_started_page() {
62 kubio_print_admin_page_start();
63 $kubio_get_started_page_tabs = kubio_get_started_page_tabs();
64
65 // phpcs:ignore WordPress.Security.NonceVerification.Recommended
66 $current_tab = sanitize_key( Arr::get( $_REQUEST, 'tab', 'get-started' ) );
67 $current_tab_data = Arr::get( $kubio_get_started_page_tabs, $current_tab, null );
68
69 if ( ! $current_tab_data ) {
70 $current_tab = 'get-started';
71 }
72
73 $subtitle = Arr::get( $current_tab_data, 'subtitle', '' );
74
75 kubio_print_admin_page_header(
76 $subtitle,
77 $kubio_get_started_page_tabs
78 );
79
80 $tab_partial = Arr::get( $current_tab_data, 'tab-partial', null );
81
82 if ( is_callable( $tab_partial ) ) {
83 call_user_func( $tab_partial );
84 kubio_print_admin_page_end();
85 kubio_enqueue_editor_page_assets();
86 return;
87 }
88
89 if ( file_exists( $tab_partial ) ) {
90 $tab_partial_file = $tab_partial;
91 } else {
92 $tab_partial_file = __DIR__ . "/main-page/$tab_partial";
93
94 }
95
96 //content
97 if ( $tab_partial && file_exists( $tab_partial_file ) ) {
98 require_once $tab_partial_file;
99 } else {
100 wp_die( esc_html__( 'Unknown tab partial', 'kubio' ) );
101 }
102
103 kubio_print_admin_page_end();
104 kubio_enqueue_editor_page_assets();
105 }
106
107 /**
108 * Registers the new WP Admin Menu
109 *
110 * @return void
111 */
112 function kubio_get_started_add_menu_page() {
113 add_submenu_page(
114 'kubio',
115 __( 'Kubio - Get Started', 'kubio' ),
116 __( 'Get Started', 'kubio' ),
117 'edit_posts',
118 'kubio-get-started',
119 'kubio_get_started_page',
120 20
121 );
122
123 if ( apply_filters( 'kubio/starter-sites/enabled', true ) ) {
124 add_submenu_page(
125 'kubio',
126 __( 'Kubio - Starter Sites', 'kubio' ),
127 __( 'Starter Sites', 'kubio' ),
128 'edit_posts',
129 'kubio-get-started-starter-sites',
130 'kubio_get_started_page__starter_sites',
131 20
132 );
133 }
134
135 $tabs = kubio_get_started_page_tabs();
136
137 foreach ( $tabs as $slug => $tab ) {
138 if ( Arr::get( $tab, 'type' ) === 'page' ) {
139 add_submenu_page(
140 'kubio',
141 Arr::get( $tab, 'label' ),
142 Arr::get( $tab, 'label' ),
143 'edit_posts',
144 "kubio-admin-page-tab:{$slug}",
145 "kubio_get_started_page__{$slug}",
146 20
147 );
148 }
149 }
150
151 global $submenu;
152 if ( isset( $submenu['kubio'] ) ) {
153 foreach ( $submenu['kubio'] as $index => $submenu_item ) {
154 if ( $submenu_item[2] === 'kubio-get-started-starter-sites' ) {
155 $submenu['kubio'][ $index ][2] = add_query_arg(
156 array(
157 'tab' => 'demo-sites',
158 'page' => 'kubio-get-started',
159 ),
160 admin_url( 'admin.php' )
161 );
162 }
163 if ( $submenu_item[2] === 'kubio-get-started-pro-upgrade' ) {
164 $submenu['kubio'][ $index ][2] = add_query_arg(
165 array(
166 'tab' => 'pro-upgrade',
167 'page' => 'kubio-get-started',
168 ),
169 admin_url( 'admin.php' )
170 );
171 }
172
173 if ( str_starts_with( $submenu_item[2], 'kubio-admin-page-tab:' ) ) {
174 $page_tab = str_replace( 'kubio-admin-page-tab:', '', $submenu_item[2] );
175
176 $submenu['kubio'][ $index ][2] = add_query_arg(
177 array(
178 'tab' => $page_tab,
179 'page' => 'kubio-get-started',
180 ),
181 admin_url( 'admin.php' )
182 );
183 }
184 }
185 }
186 }
187
188 add_action( 'admin_menu', 'kubio_get_started_add_menu_page', 20 );
189