PluginProbe
Booking Calendar / 11.8.4
Booking Calendar v11.8.4
11.8.4 11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 10.11 All 204 releases
booking / includes / booking_modes_v3 / modes / classic.php

classic.php in Booking Calendar 11.8.4, at includes/booking_modes_v3/modes/classic.php

400 lines 14.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Classic Booking Modes V3 declaration.
4 *
5 * This executable-free declaration contains presentation references only. It
6 * registers no hooks, loads no domain controller, and performs no mutation.
7 *
8 * @package Booking Calendar
9 * @since 11.8.0
10 */
11
12 if ( ! defined( 'ABSPATH' ) ) {
13 exit;
14 }
15
16 /**
17 * Return the Classic mode definition consumed by the allow-listed V3 loader.
18 *
19 * @return array<string,mixed> Validated Booking Modes V3 declaration.
20 */
21 return array(
22 'id' => 'classic',
23 'label' => 'Classic',
24 'description' => 'General booking administration.',
25 'default_route' => array( 'page' => 'wpbc', 'tab' => 'vm_booking_listing' ),
26 'quickstart_id' => '',
27
28 // Only references used below; all other pages and subtabs keep their own definitions.
29 'pages' => array(
30 // Bookings. booking/includes/page-bookings/bookings__page.php:33.
31 'bookings' => array(
32 'route' => array( 'page' => 'wpbc', 'tab' => 'vm_booking_listing' ),
33 'page_options' => array(
34 'is_show_top_path' => true,
35 'top_path_title' => 'Bookings',
36 'is_show_top_navigation' => true,
37 ),
38 'horizontal_menu' => array(
39 'visible' => true,
40 'title' => 'Bookings',
41 'show_on_pages' => array( 'bookings', 'calendar', 'add_booking' ),
42 ),
43 ),
44 // Timeline View. booking/core/admin/page-timeline.php:31.
45 // Horizontal-only link: hidden separately in sidebar_menu; no independent native slug.
46 'calendar' => array(
47 'route' => array( 'page' => 'wpbc', 'tab' => 'vm_calendar' ),
48 'page_options' => array(
49 'is_show_top_path' => true,
50 'top_path_title' => 'Timeline View',
51 'is_show_top_navigation' => true,
52 ),
53 'horizontal_menu' => array(
54 'visible' => true,
55 'title' => 'Timeline View',
56 'show_on_pages' => array( 'bookings', 'calendar', 'add_booking' ),
57 ),
58 ),
59 // Add booking. booking/includes/page-add-booking/add_booking__page.php:174.
60 'add_booking' => array(
61 'route' => array( 'page' => 'wpbc', 'tab' => 'add-booking' ),
62 'page_options' => array(
63 'is_show_top_path' => true,
64 'top_path_title' => 'Add Booking',
65 'is_show_top_navigation' => true,
66 ),
67 'horizontal_menu' => array(
68 'visible' => true,
69 'title' => 'Add Booking',
70 'show_on_pages' => array( 'bookings', 'calendar', 'add_booking' ),
71 ),
72 ),
73 // Add Appointment. booking/includes/page-add-appointment/add_appointment__page.php:178.
74 'add_appointment' => array(
75 'route' => array( 'page' => 'wpbc', 'tab' => 'add-appointment' ),
76 'horizontal_menu' => array(
77 'visible' => false,
78 ),
79 ),
80 // Services. booking/includes/page-appointment-services/appointment_services__page.php:475.
81 'services' => array(
82 'route' => array( 'page' => 'wpbc-services', 'tab' => 'appointment_services' ),
83 'horizontal_menu' => array(
84 'visible' => false,
85 ),
86 ),
87 // Resources. booking/includes/page-catalog-booking-resources/booking-resources-catalog-page.php:504.
88 'resources' => array(
89 'route' => array( 'page' => 'wpbc-resources', 'tab' => 'resources' ),
90 'page_options' => array(
91 'top_path_title' => 'Booking Resources',
92 ),
93 ),
94 // Capacity Rules. booking/includes/page-resource-capacity/page-resource-capacity.php:209.
95 'capacity_rules' => array(
96 'route' => array( 'page' => 'wpbc-resources', 'tab' => 'capacity' ),
97 ),
98 // Search Availability. booking-calendar-com/inc/_bl/search/page-searchable.php:52.
99 'searchable_resources' => array(
100 'route' => array( 'page' => 'wpbc-resources', 'tab' => 'searchable_resources' ),
101 'page_options' => array(
102 'top_path_title' => 'Search Availability',
103 ),
104 ),
105 // Searchable Resources leaf used by the flattened Search Availability sidebar group.
106 'searchable_resources_options' => array(
107 'route' => array( 'page' => 'wpbc-resources', 'tab' => 'searchable_resources', 'subtab' => 'searchable_resources_options' ),
108 ),
109 // Block Dates. booking/includes/page-availability/availability__page.php:37.
110 'block_dates' => array(
111 'route' => array( 'page' => 'wpbc-availability', 'tab' => 'availability' ),
112 ),
113 // Block Times. booking/includes/page-availability-timeslots/availability_timeslots__page.php:525.
114 'block_times' => array(
115 'route' => array( 'page' => 'wpbc-availability', 'tab' => 'time_slots_availability' ),
116 ),
117 // Schedule & Rules. booking/includes/page-availability/availability__page.php:424.
118 'schedule_rules' => array(
119 'route' => array( 'page' => 'wpbc-availability', 'tab' => 'general_availability' ),
120 ),
121 // Seasonal Availability. booking-calendar-com/inc/_bm/admin/page-availability.php:49.
122 'seasonal_availability' => array(
123 'route' => array( 'page' => 'wpbc-availability', 'tab' => 'season_availability' ),
124 ),
125 // Seasons. booking-calendar-com/inc/_bm/admin/page-seasons.php:61.
126 // Legacy route: use only while its existing controller registers this tab.
127 'legacy_availability_seasons' => array(
128 'route' => array( 'page' => 'wpbc-availability', 'tab' => 'filter' ),
129 ),
130 // Prices. booking-calendar-com/inc/_bm/admin/page-costs_flexible.php:58.
131 'prices' => array(
132 'route' => array( 'page' => 'wpbc-prices', 'tab' => 'cost' ),
133 ),
134 // Form Options Costs. booking-calendar-com/inc/_bm/admin/page-cost-advanced.php:38.
135 'form_options_costs' => array(
136 'route' => array( 'page' => 'wpbc-prices', 'tab' => 'cost_advanced' ),
137 ),
138 // Discount Coupons. booking-calendar-com/inc/_bl/admin/page-coupons.php:40.
139 'coupons' => array(
140 'route' => array( 'page' => 'wpbc-prices', 'tab' => 'coupons' ),
141 ),
142 // Payment Setup. booking-calendar-com/inc/gateways/page-gateways.php:572.
143 'payment_setup' => array(
144 'route' => array( 'page' => 'wpbc-prices', 'tab' => 'payment' ),
145 ),
146 // Payment Description is an in-page anchor, not a standalone administration screen.
147 'payment_description' => array(
148 'route' => array( 'page' => 'wpbc-prices', 'tab' => 'payment', 'subtab' => 'payment_description' ),
149 ),
150 // Seasons. booking-calendar-com/inc/_bm/admin/page-seasons.php:61.
151 // Legacy route: use only while its existing controller registers this tab.
152 'legacy_price_seasons' => array(
153 'route' => array( 'page' => 'wpbc-prices', 'tab' => 'filter' ),
154 ),
155 // Seasons. booking-calendar-com/inc/_bm/includes/page-catalog-seasons/seasons-catalog-page.php:703.
156 'seasons' => array(
157 'route' => array( 'page' => 'wpbc-seasons', 'tab' => 'seasons' ),
158 ),
159 // Dashboard. booking/core/admin/page-settings.php:103.
160 'general_settings' => array(
161 'route' => array( 'page' => 'wpbc-settings', 'tab' => 'general' ),
162 ),
163 // Search Availability form and results settings. booking-calendar-com/inc/_bl/search/page-search.php:715.
164 'search_settings' => array(
165 'route' => array( 'page' => 'wpbc-settings', 'tab' => 'search' ),
166 ),
167 'search_form_layout' => array(
168 'route' => array( 'page' => 'wpbc-settings', 'tab' => 'search', 'subtab' => 'search_form' ),
169 ),
170 'search_results_layout' => array(
171 'route' => array( 'page' => 'wpbc-settings', 'tab' => 'search', 'subtab' => 'search_results' ),
172 ),
173 'search_options' => array(
174 'route' => array( 'page' => 'wpbc-settings', 'tab' => 'search', 'subtab' => 'search_options' ),
175 ),
176 // Forms Builder. booking/includes/page-form-builder/builder-form-page.php:52.
177 // Promoted to a standalone sidebar link. The original Settings route stays unchanged.
178 'booking_form' => array(
179 'route' => array( 'page' => 'wpbc-settings', 'tab' => 'builder_booking_form' ),
180 ),
181 // MultiUser settings. The source controller remains responsible for super-admin access.
182 'multiuser_settings' => array(
183 'route' => array( 'page' => 'wpbc-settings', 'tab' => 'users' ),
184 ),
185 // Setup. booking/includes/page-setup/setup__page.php:57.
186 'setup' => array(
187 'route' => array( 'page' => 'wpbc-setup', 'tab' => 'step_01' ),
188 ),
189 // Log Off. booking-calendar-com/inc/_mu/admin/page-log_off.php:31.
190 // MultiUser impersonation exit. Preserve domain behavior; never preload this route.
191 'log_off' => array(
192 'route' => array( 'page' => 'wpbc-log-off', 'tab' => 'upgrade' ),
193 ),
194 ),
195
196 // Native WordPress entries. editions is an exact list; omission retains domain availability.
197 'wordpress_menu' => array(
198 'wpbc' => array(
199 'page_id' => 'bookings',
200 'title' => 'Bookings',
201 ),
202 'wpbc-new' => array(
203 'page_id' => 'add_booking',
204 'title' => '+ Add Booking',
205 ),
206 'wpbc-services' => array(
207 'page_id' => 'services',
208 'visible' => false,
209 ),
210 'wpbc-resources' => array(
211 'page_id' => 'resources',
212 'title' => 'Resources',
213 ),
214 'wpbc-availability' => array( 'page_id' => 'block_dates' ),
215 'wpbc-seasons' => array(
216 'page_id' => 'seasons',
217 'editions' => array( 'business_medium', 'business_large', 'multiuser' ),
218 ),
219 'wpbc-prices' => array(
220 'page_id' => 'prices',
221 'title' => 'Prices',
222 'editions' => array( 'business_medium', 'business_large', 'multiuser' ),
223 ),
224 'wpbc-settings' => array( 'page_id' => 'general_settings' ),
225 'wpbc-setup' => array( 'page_id' => 'setup' ),
226 'wpbc-log-off' => array(
227 'page_id' => 'log_off',
228 'editions' => array( 'multiuser' ),
229 ),
230 ),
231
232 // White WPBC sidebar. Unlisted tabs inherit; edition-excluded entries never return via fallback.
233 'sidebar_menu' => array(
234 'wpbc' => array(
235 'title' => 'Bookings',
236 'items' => array(
237 'bookings' => array(
238 'page_id' => 'bookings',
239 'title' => 'Bookings',
240 ),
241 'calendar' => array(
242 'page_id' => 'calendar',
243 'title' => 'Timeline View',
244 'visible' => false,
245 ),
246 'add_booking' => array(
247 'page_id' => 'add_booking',
248 'title' => 'Add Booking',
249 ),
250 'add_appointment' => array(
251 'page_id' => 'add_appointment',
252 'title' => 'Add Appointment',
253 'visible' => false,
254 ),
255 ),
256 ),
257 'wpbc-services' => array(
258 'title' => 'Services',
259 'visible' => false,
260 'items' => array(
261 'services' => array(
262 'page_id' => 'services',
263 'title' => 'Services',
264 ),
265 ),
266 ),
267 'wpbc-resources' => array(
268 'title' => 'Resources',
269 'items' => array(
270 'resources' => array(
271 'page_id' => 'resources',
272 'title' => 'Booking Resources',
273 ),
274 ),
275 ),
276 'wpbc-availability' => array(
277 'title' => 'Availability',
278 'items' => array(
279 'block_dates' => array(
280 'page_id' => 'block_dates',
281 'title' => 'Block Dates',
282 ),
283 'block_times' => array(
284 'page_id' => 'block_times',
285 'title' => 'Block Times',
286 ),
287 'schedule_rules' => array(
288 'page_id' => 'schedule_rules',
289 'title' => 'Schedule & Rules',
290 ),
291 'seasonal_availability' => array(
292 'page_id' => 'seasonal_availability',
293 'title' => 'Seasonal Availability',
294 'editions' => array( 'business_medium', 'business_large', 'multiuser' ),
295 ),
296 'legacy_availability_seasons' => array(
297 'page_id' => 'legacy_availability_seasons',
298 'editions' => array( 'business_medium', 'business_large', 'multiuser' ),
299 ),
300 ),
301 ),
302 'wpbc-seasons' => array(
303 'title' => 'Seasons',
304 'page_id' => 'seasons',
305 'editions' => array( 'business_medium', 'business_large', 'multiuser' ),
306 ),
307 'wpbc-prices' => array(
308 'title' => 'Prices',
309 'items' => array(
310 'prices' => array(
311 'page_id' => 'prices',
312 'title' => 'Prices',
313 ),
314 'form_options_costs' => array(
315 'page_id' => 'form_options_costs',
316 'title' => 'Form Options Costs',
317 ),
318 'coupons' => array(
319 'page_id' => 'coupons',
320 'editions' => array( 'business_large', 'multiuser' ),
321 ),
322 'legacy_price_seasons' => array( 'page_id' => 'legacy_price_seasons' ),
323 'payment' => array(
324 'page_id' => 'payment_setup',
325 'items' => array(
326 'payment_description' => array(
327 'page_id' => 'payment_description',
328 'visible' => false,
329 ),
330 ),
331 ),
332 ),
333 'editions' => array( 'business_medium', 'business_large', 'multiuser' ),
334 ),
335 'booking_form' => array(
336 'page_id' => 'booking_form',
337 'title' => 'Booking Forms',
338 ),
339 'wpbc-settings' => array(
340 'title' => 'Settings',
341 'expanded' => 'when_active',
342 'items' => array(
343 'capacity_rules' => array( 'page_id' => 'capacity_rules' ),
344 ),
345 // Search Availability and MultiUser settings are explicitly reserved below; other Settings pages inherit.
346 ),
347
348 'wpbc-search-availability' => array(
349 'title' => 'Search Availability',
350 'expanded' => 'when_active',
351 'items' => array(
352 'searchable_resources_parent' => array(
353 'page_id' => 'searchable_resources',
354 'visible' => false,
355 ),
356 'search_settings_parent' => array(
357 'page_id' => 'search_settings',
358 'visible' => false,
359 ),
360 'searchable_resources' => array(
361 'page_id' => 'searchable_resources_options',
362 'title' => 'Searchable Resources',
363 ),
364 'search_form_layout' => array(
365 'page_id' => 'search_form_layout',
366 'title' => 'Search Form Layout',
367 ),
368 'search_results_layout' => array(
369 'page_id' => 'search_results_layout',
370 'title' => 'Search Results Layout',
371 ),
372 'search_options' => array(
373 'page_id' => 'search_options',
374 'title' => 'Search Options',
375 ),
376 ),
377 'editions' => array( 'business_large', 'multiuser' ),
378 ),
379 'wpbc-multiuser-settings' => array(
380 'page_id' => 'multiuser_settings',
381 'title' => 'MultiUser Settings',
382 'expanded' => 'when_active',
383 'editions' => array( 'multiuser' ),
384 ),
385
386 'wpbc-setup' => array(
387 'title' => 'Setup',
388 'items' => array(
389 'setup' => array( 'page_id' => 'setup' ),
390 ),
391 'visible' => false,
392 ),
393 'log_off' => array(
394 'page_id' => 'log_off',
395 'visible' => false,
396 'editions' => array( 'multiuser' ),
397 ),
398 ),
399 );
400