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 / appointment.php

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

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