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

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

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