PluginProbe
Booking Calendar / 10.11
Booking Calendar v10.11
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 10.11.2 10.11.3 10.11.4 All 201 releases
booking / core / admin / page-settings.php

page-settings.php in Booking Calendar 10.11, at core/admin/page-settings.php

1,110 lines 59.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php /**
2 * @version 1.0
3 * @package Booking Calendar
4 * @category Content of Settings page
5 * @author wpdevelop
6 *
7 * @web-site https://wpbookingcalendar.com/
8 * @email info@wpbookingcalendar.com
9 *
10 * @modified 2015-11-02
11 */
12
13 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
15
16 /**
17 * Show Content
18 * Update Content
19 * Define Slug
20 * Define where to show
21 */
22 class WPBC_Page_SettingsGeneral extends WPBC_Page_Structure {
23
24 /**
25 * Link to Settings API obj
26 *
27 * @var bool
28 */
29 private $settings_api = false;
30
31 public function __construct() {
32
33 if ( ! wpbc_is_mu_user_can_be_here( 'only_super_admin' ) ) { // If this User not "super admin", then do not load this page at all
34 // If tab was not selected or selected default, then redirect it to the "form" tab.
35 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
36 if ( ( isset( $_REQUEST['page'] ) && ( 'wpbc-settings' === $_REQUEST['page'] ) ) && ( ( ! isset( $_REQUEST['tab'] ) ) || ( 'general' === $_REQUEST['tab'] ) ) ) {
37 $_REQUEST['tab'] = 'form';
38 }
39 } else {
40 parent::__construct();
41 }
42 }
43
44 public function in_page() {
45
46 if ( ! wpbc_is_mu_user_can_be_here( 'only_super_admin' ) ) { // If this User not "super admin", then do not load this page at all.
47 return (string) wp_rand( 100000, 1000000 );
48 }
49
50 return 'wpbc-settings';
51 }
52
53
54 /**
55 * Get Settings API class - define, show, update "Fields".
56 *
57 * @return object Settings API
58 */
59 public function settings_api() {
60
61 if ( false === $this->settings_api ) {
62 $this->settings_api = new WPBC_Settings_API_General();
63 }
64
65 return $this->settings_api;
66 }
67
68
69 public function tabs() {
70
71 // Init vars.
72 $separator_i = 0;
73 $tabs = array();
74 $subtabs = array();
75 $subtab_default = array(
76 'type' => 'subtab', // Required| Possible values: 'subtab' | 'separator' | 'button' | 'goto-link' | 'html'.
77 'title' => '', // Example: __( 'Dashboard' // Title of TAB.
78 'page_title' => '', // __( 'Search Availability' // Title of Page.
79 'hint' => '', // __( 'Configure the layout and functionality of both the search form and search results.' // Hint.
80 'link' => '', // wpbc_get_settings_url() . '&scroll_to_section=wpbc_general_settings_dashboard_tab', // Link.
81 'css_classes' => '', // cls CSS .
82 'font_icon' => 'wpbc_icn_dashboard',
83 'font_icon_right' => 'wpbc-bi-question-circle', // 'wpbc-bi-question-circle' .
84 'default' => false, // Is this sub tab activated by default or not: true || false.
85 );
86
87 // =============================================================================================================
88 // == D A S H B O A R D ==
89 // =============================================================================================================
90 $tabs['general'] = array(
91 'is_show_top_path' => true, // true | false. By default value is: false.
92 'is_show_top_navigation' => false, // true | false. By default value is: false.
93 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
94 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
95 // translators: 1: Booking Calendar.
96 'page_description' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
97 'title' => __( 'Dashboard', 'booking' ), // Left Vertical Menu - Title.
98 // translators: 1: Booking Calendar.
99 'hint' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
100 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
101 'default' => true, // Is this tab activated by default or not: true / false.
102 'font_icon' => 'wpbc-bi-speedometer2',
103 // 'font_icon_right' => 'wpbc-bi-question-circle',
104 'css_classes' => 'do_expand__' . 'wpbc_general_settings_dashboard_metabox' . '_link',
105 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . 'wpbc_general_settings_dashboard_metabox' . "' );",
106 'folder_style' => 'order:10;',
107 );
108 $tabs[ 'settings' . ( ++$separator_i ) ] = array_merge( $subtab_default, array( 'type' => 'separator' ,'folder_style' => 'order:10;' ) );
109
110
111 // =============================================================================================================
112 // == C A L E N D A R + B O O K I N G _ P R O C E S S ==
113 // =============================================================================================================
114 $tabs['calendar_booking_process'] = array(
115 'page_title' => __( 'Calendar and Form Settings', 'booking' ), // Header - Title. If false, than hidden.
116 // translators: 1: Booking Calendar.
117 'page_description' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
118 'title' => __( 'Calendar', 'booking' ), // Left Vertical Menu - Title. + Booking Process.
119 // translators: 1: Booking Calendar.
120 'hint' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
121 'font_icon' => 'wpbc-bi-calendar2-range', // Left Vertical Menu - Icon.
122 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
123 'css_classes' => '', // CSS.
124 'default' => false, // Is this tab activated by default or not: true / false.
125 'folder_style' => 'order:10;',
126 );
127
128 $section_id = 'wpbc_general_settings_calendar_metabox';
129 $subtabs['calendar'] = array_merge(
130 $subtab_default,
131 array(
132 'title' => __( 'Calendar Settings', 'booking' ),
133 'page_title' => __( 'General Settings', 'booking' ),
134 'hint' => __( 'Customize various calendar settings, specify how many months can be scrolled, and defining the legend.', 'booking' ),
135 'font_icon' => 'wpbc-bi-calendar2-range',
136 'font_icon_right' => 'wpbc-bi-question-circle',
137 'css_classes' => 'do_expand__' . $section_id . '_link', // sub_bold', .
138 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
139 'default' => false,
140 )
141 );
142
143 $section_id = 'wpbc_general_settings_calendar_metabox' . '#do_other_actions__' . 'blink_day_selections';
144 $subtabs['days_selection'] = array_merge(
145 $subtab_default,
146 array(
147 'title' => __( 'Days Selection', 'booking' ),
148 'page_title' => __( 'General Settings', 'booking' ),
149 'hint' => __( 'Choose how users can select days: single day, multiple days, or a date range with minimum and maximum limits.', 'booking' ),
150 'font_icon' => 'wpbc-bi-calendar3-week',
151 'font_icon_right' => 'wpbc-bi-question-circle',
152 'css_classes' => 'do_expand__' . $section_id . '_link', // sub_bold', .
153 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
154 'default' => false,
155 )
156 );
157
158
159 if ( class_exists('wpdev_bk_biz_s') ) {
160 $section_id = 'wpbc_general_settings_calendar_metabox' . '#do_other_actions__' . 'blink_change_over_days';
161 $subtabs['change_over_days'] = array_merge(
162 $subtab_default,
163 array(
164 'title' => __( 'Changeover Days', 'booking' ),
165 'page_title' => __( 'General Settings', 'booking' ),
166 'hint' => __( 'Set up check-in and check-out days for multi-day bookings, with visual indicators like diagonal or vertical lines. Ideal for bookings that require split days.', 'booking' ),
167 'font_icon' => 'wpbc_icn_flip',
168 'font_icon_right' => 'wpbc-bi-question-circle',
169 'css_classes' => 'do_expand__' . $section_id . '_link', // sub_bold', .
170 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
171 'default' => false,
172 )
173 );
174 }
175
176 $section_id = 'wpbc_general_settings_days_tooltips_metabox';
177 $subtabs['days_tooltips'] = array_merge(
178 $subtab_default,
179 array(
180 'title' => __( 'Tooltips in days', 'booking' ),
181 'page_title' => __( 'General Settings', 'booking' ),
182 'hint' => __( 'Configure tooltips to display information like booked times, costs, details, and availability when hovering over calendar days.', 'booking' ),
183 'font_icon' => 'wpbc-bi-chat-square-dots',
184 'font_icon_right' => 'wpbc-bi-question-circle',
185 'css_classes' => 'do_expand__' . $section_id . '_link',
186 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
187 'default' => false,
188 )
189 );
190
191 $section_id = 'wpbc_general_settings_availability_metabox';
192 $subtabs['availability'] = array_merge(
193 $subtab_default,
194 array(
195 'title' => __( 'General Availability', 'booking' ),
196 'page_title' => __( 'General Settings', 'booking' ),
197 'hint' => __( 'Define unavailable weekdays, add booking buffers, and customize unavailable day options.', 'booking' ),
198 'font_icon' => 'wpbc-bi-calendar2-day',
199 'font_icon_right' => 'wpbc-bi-question-circle',
200 'css_classes' => 'do_expand__' . $section_id . '_link',
201 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
202 'default' => false,
203 )
204 );
205
206 $section_id = 'wpbc_general_settings_capacity_metabox#wpbc_general_settings_capacity_upgrade_metabox';
207 $subtabs['capacity'] = array_merge(
208 $subtab_default,
209 array(
210 'title' => __( 'Booking Capacity', 'booking' ),
211 'page_title' => __( 'General Settings', 'booking' ),
212 'hint' => __( 'Manage the ability to accept multiple bookings for the same date or time slot.', 'booking' ),
213 'font_icon' => 'wpbc_icn_filter_none',
214 'font_icon_right' => 'wpbc-bi-question-circle',
215 'css_classes' => 'do_expand__' . 'wpbc_general_settings_capacity_metabox' . '_link',
216 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
217 'default' => false,
218 )
219 );
220
221
222 $tabs['calendar_booking_process']['subtabs'] = $subtabs;
223
224
225 // =============================================================================================================
226 // == C O N F I R M A T I ON ==
227 // =============================================================================================================
228 $tabs['booking_confirmation'] = array(
229 'is_show_top_path' => false, // true | false. By default value is: false.
230 'is_show_top_navigation' => false, // true | false. By default value is: false.
231 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
232 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
233 // translators: 1: Booking Calendar.
234 'page_description' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
235 'title' => __( 'Booking Confirmation', 'booking' ), // Left Vertical Menu - Title.
236 'hint' => __( 'Customize how the booking summary is displayed after a booking is created', 'booking' ),
237 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
238 'default' => false, // Is this tab activated by default or not: true / false.
239 'font_icon' => 'wpbc-bi-card-checklist',
240 'font_icon_right' => 'wpbc-bi-question-circle',
241 'css_classes' => 'do_expand__' . 'wpbc_general_settings_booking_confirmation_metabox' . '_link',
242 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" .
243 'wpbc_general_settings_booking_confirmation_metabox#wpbc_general_settings_booking_confirmation_left_metabox#wpbc_general_settings_booking_confirmation_right_metabox#wpbc_general_settings_booking_confirmation_help_metabox' .
244 "' );",
245 'folder_style' => 'order:20;',
246 );
247
248 $tabs[ 'settings' . ( ++$separator_i ) ] = array_merge( $subtab_default, array( 'type' => 'separator' ,'folder_style' => 'order:20;' ) );
249
250 // =============================================================================================================
251 // == Manage Bookings ==
252 // =============================================================================================================
253 $tabs['manage_bookings'] = array(
254 'is_show_top_path' => false, // true | false. By default value is: false.
255 'is_show_top_navigation' => false, // true | false. By default value is: false.
256 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
257 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
258 // translators: 1: Booking Calendar.
259 'page_description' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
260 'title' => __( 'Manage Bookings', 'booking' ), // Left Vertical Menu - Title.
261 // translators: 1: Booking Calendar.
262 'hint' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
263 'font_icon' => 'wpbc_icn_app_registration', // Left Vertical Menu - Icon.
264 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
265 'css_classes' => '', // CSS.
266 'icon' => '', // Icon - link to the real PNG img.
267 'default' => false, // Is this tab activated by default or not: true / false.
268 'folder_style' => 'order:1000',
269 );
270
271 $subtabs = array();
272
273 $section_id = 'wpbc_general_settings_booking_timeline_metabox';
274 $subtabs['booking_timeline'] = array_merge(
275 $subtab_default,
276 array(
277 'title' => __( 'Timeline (front-end)', 'booking' ),
278 'page_title' => __( 'General Settings', 'booking' ),
279 'hint' => __( 'Customize timeline options, including the display of booking details.', 'booking' ),
280 'font_icon' => 'wpbc_icn_align_vertical_bottom wpbc_icn_rotate_90',
281 'font_icon_right' => 'wpbc-bi-question-circle',
282 'css_classes' => 'do_expand__' . $section_id . '_link ',
283 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
284 'default' => false,
285 )
286 );
287
288 if ( class_exists('wpdev_bk_personal') ) {
289 $section_id = 'wpbc_general_settings_bookings_options_metabox';
290 $subtabs['bookings_options'] = array_merge(
291 $subtab_default,
292 array(
293 'title' => __( 'Manage Bookings', 'booking' ),
294 'page_title' => __( 'General Settings', 'booking' ),
295 'hint' => __( 'Allow customers to edit or cancel their own bookings.', 'booking' ),
296 'font_icon' => 'wpbc_icn_app_registration mode_edit_outline edit_calendar',
297 'font_icon_right' => 'wpbc-bi-question-circle',
298 'css_classes' => 'do_expand__' . $section_id . '_link ',
299 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
300 'default' => false,
301 )
302 );
303 }
304
305
306 if ( class_exists('wpdev_bk_biz_s') ) {
307 $section_id = 'wpbc_general_settings_auto_cancelation_approval_metabox';
308 $subtabs['auto_cancelation_approval'] = array_merge(
309 $subtab_default,
310 array(
311 'title' => __( 'Auto Cancellation / Auto Approval', 'booking' ),
312 'page_title' => __( 'General Settings', 'booking' ),
313 'hint' => __( 'Enable automatic approval or cancellation of bookings.', 'booking' ),
314 'font_icon' => 'wpbc_icn_published_with_changes',
315 'font_icon_right' => 'wpbc-bi-question-circle',
316 'css_classes' => 'do_expand__' . $section_id . '_link',
317 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
318 'default' => false,
319 )
320 );
321 }
322
323 $tabs['manage_bookings']['subtabs'] = $subtabs;
324
325
326 // =============================================================================================================
327 // == Admin Panel ==
328 // =============================================================================================================
329 $tabs['admin_panel'] = array(
330 'is_show_top_path' => false, // true | false. By default value is: false.
331 'is_show_top_navigation' => false, // true | false. By default value is: false.
332 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
333 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
334 'page_description' => __( 'Configure various options and settings in the admin panel.', 'booking' ), // Header - Title Description. If false, than hidden.
335 'title' => __( 'Admin Panel', 'booking' ), // Left Vertical Menu - Title.
336 // translators: 1: Booking Calendar.
337 'hint' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
338 'font_icon' => 'wpbc_icn_widgets', // Left Vertical Menu - Icon.
339 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
340 'css_classes' => '', // CSS.
341 'icon' => '', // Icon - link to the real PNG img.
342 'default' => false, // Is this tab activated by default or not: true / false.
343 'folder_style' => 'order:1000',
344 );
345
346 $subtabs = array();
347
348 $section_id = 'wpbc_general_settings_booking_listing_metabox';
349 $subtabs['booking_listing'] = array_merge(
350 $subtab_default,
351 array(
352 'title' => __( 'Booking Admin Panel', 'booking' ),
353 'page_title' => __( 'General Settings', 'booking' ),
354 'hint' => __( 'Configure various options and settings in the admin panel.', 'booking' ),
355 'font_icon' => 'wpbc-bi-list',
356 'font_icon_right' => 'wpbc-bi-question-circle',
357 'css_classes' => 'do_expand__' . $section_id . '_link',
358 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
359 'default' => false,
360 )
361 );
362
363 $section_id = 'wpbc_general_settings_booking_calendar_overview_metabox';
364 $subtabs['booking_calendar_overview'] = array_merge(
365 $subtab_default,
366 array(
367 'title' => __( 'Timeline View (Back-End)', 'booking' ),
368 'page_title' => __( 'General Settings', 'booking' ),
369 'hint' => __( 'Customize timeline options in the admin panel, including displaying booking details.', 'booking' ),
370 'font_icon' => 'wpbc-bi-bar-chart-steps _icn_timeline 0wpbc_icn_rotate_45 0wpbc_icn_align_vertical_bottom',
371 'font_icon_right' => 'wpbc-bi-question-circle',
372 'css_classes' => 'do_expand__' . $section_id . '_link',
373 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
374 'default' => false,
375 )
376 );
377
378 $section_id = 'wpbc_general_settings_datestimes_metabox';
379 $subtabs['datestimes'] = array_merge(
380 $subtab_default,
381 array(
382 'title' => __( 'Date and Time Formats', 'booking' ),
383 'page_title' => __( 'General Settings', 'booking' ),
384 'hint' => __( 'Customize the display format for dates and times.', 'booking' ),
385 'font_icon' => 'wpbc-bi-braces-asterisk _icn_password',
386 'font_icon_right' => 'wpbc-bi-question-circle',
387 'css_classes' => 'do_expand__' . $section_id . '_link',
388 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
389 'default' => false,
390 )
391 );
392
393 $section_id = 'wpbc_general_settings_permissions_metabox';
394 $subtabs['permissions'] = array_merge(
395 $subtab_default,
396 array(
397 'title' => __( 'Plugin Menu / Permissions', 'booking' ),
398 'page_title' => __( 'General Settings', 'booking' ),
399 'hint' => __( 'Set user permissions for accessing plugin menu pages and configure the menu position.', 'booking' ),
400 'font_icon' => 'wpbc-bi-key',
401 'font_icon_right' => 'wpbc-bi-question-circle',
402 'css_classes' => 'do_expand__' . $section_id . '_link',
403 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
404 'default' => false,
405 )
406 );
407
408 $section_id = 'wpbc_general_settings_translations_metabox';
409 $subtabs['translations'] = array_merge(
410 $subtab_default,
411 array(
412 'title' => __( 'Translations', 'booking' ),
413 'page_title' => __( 'General Settings', 'booking' ),
414 'hint' => __( 'Choose whether to use local translations or WordPress translations.', 'booking' ),
415 'font_icon' => 'wpbc_icn_translate 0wpbc-bi-translate',
416 'font_icon_right' => 'wpbc-bi-question-circle',
417 'css_classes' => 'do_expand__' . $section_id . '_link',
418 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
419 'default' => false,
420 )
421 );
422
423 $tabs['admin_panel']['subtabs'] = $subtabs;
424
425
426 // =============================================================================================================
427 // == Advanced ==
428 // =============================================================================================================
429 $tabs['advanced'] = array(
430 'is_show_top_path' => false, // true | false. By default value is: false.
431 'is_show_top_navigation' => false, // true | false. By default value is: false.
432 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
433 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
434 // translators: 1: Booking Calendar.
435 'page_description' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
436 'title' => __( 'Advanced', 'booking' ), // Left Vertical Menu - Title.
437 // translators: 1: Booking Calendar.
438 'hint' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
439 'font_icon' => 'wpbc-bi-gear', // Left Vertical Menu - Icon.
440 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
441 'css_classes' => '', // CSS.
442 'icon' => '', // Icon - link to the real PNG img.
443 'default' => false, // Is this tab activated by default or not: true / false.
444 'folder_style' => 'order:1000',
445 );
446
447 $subtabs = array();
448
449 $section_id = 'wpbc_general_settings_advanced_metabox';
450 $subtabs['advanced_options'] = array_merge(
451 $subtab_default,
452 array(
453 'title' => __( 'Advanced Options', 'booking' ),
454 'page_title' => __( 'General Settings', 'booking' ),
455 'hint' => __( 'Configure loading of CSS/JavaScript files, set the number of simultaneous requests, and other advanced options.', 'booking' ),
456 'font_icon' => 'wpbc_icn_adjust',
457 'font_icon_right' => 'wpbc-bi-question-circle',
458 'css_classes' => 'do_expand__' . $section_id . '_link',
459 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
460 'default' => false,
461 )
462 );
463
464 $section_id = 'wpbc_general_settings_uninstall_metabox';
465 $subtabs['uninstall'] = array_merge(
466 $subtab_default,
467 array(
468 'title' => __( 'Uninstall / Deactivation', 'booking' ),
469 'page_title' => __( 'General Settings', 'booking' ),
470 'hint' => __( 'Enable the option to fully erase booking data when the plugin is deactivated.', 'booking' ),
471 'font_icon' => 'wpbc-bi-trash',
472 'font_icon_right' => 'wpbc-bi-question-circle',
473 'css_classes' => 'do_expand__' . $section_id . '_link',
474 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
475 'default' => false,
476 )
477 );
478
479 $section_id = 'wpbc_general_settings_information_metabox';
480 $subtabs['information'] = array_merge(
481 $subtab_default,
482 array(
483 'title' => __( 'Plugin Info & News', 'booking' ),
484 'page_title' => __( 'General Settings', 'booking' ),
485 'hint' => __( 'Stay informed with the latest news and details about the plugin.', 'booking' ),
486 'font_icon' => 'wpbc_icn_newspaper -bi-newspaper _icn_news 0wpbc-bi-translate',
487 'font_icon_right' => 'wpbc-bi-question-circle',
488 'css_classes' => 'do_expand__' . $section_id . '_link',
489 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
490 'default' => false,
491 )
492 );
493
494 $section_id = 'wpbc_general_settings_help_metabox';
495 $subtabs['tools'] = array_merge(
496 $subtab_default,
497 array(
498 'title' => __( 'Tools', 'booking' ),
499 'page_title' => __( 'General Settings', 'booking' ),
500 'hint' => '', //__( 'Stay informed with the latest news and details about the plugin. ', 'booking' ),
501 'font_icon' => 'wpbc_icn_construction',
502 'font_icon_right' => '',
503 'css_classes' => 'do_expand__' . $section_id . '_link',
504 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
505 'default' => false,
506 )
507 );
508 if ( class_exists('wpdev_bk_multiuser') ) {
509 $section_id = 'wpbc_general_settings_multiuser_metabox';
510 $subtabs['multiuser'] = array_merge(
511 $subtab_default,
512 array(
513 'title' => __( 'Multiuser Options', 'booking' ),
514 'page_title' => __( 'General Settings', 'booking' ),
515 'hint' => __( 'Multiuser Options', 'booking' ),
516 'font_icon' => 'wpbc_icn_people_alt',
517 'font_icon_right' => 'wpbc-bi-question-circle',
518 'css_classes' => 'do_expand__' . $section_id . '_link',
519 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
520 'default' => false,
521 )
522 );
523 }
524
525 $tabs['advanced']['subtabs'] = $subtabs;
526
527 $tabs[ 'settings' . ( ++$separator_i ) ] = array_merge( $subtab_default, array( 'type' => 'separator' ,'folder_style' => 'order:900;' ) );
528 $tabs[ 'settings' . ( ++$separator_i ) ] = array_merge( $subtab_default, array( 'type' => 'separator' ,'folder_style' => 'order:1000;' ) );
529
530 return $tabs;
531 }
532
533
534 public function content() {
535
536 // Checking.
537
538 do_action( 'wpbc_hook_settings_page_header', 'general_settings' ); // Define Notices Section and show some static messages, if needed.
539
540 if ( ! wpbc_is_mu_user_can_be_here( 'activated_user' ) ) {
541 return false;
542 } // Check if MU user activated, otherwise show Warning message.
543
544 if ( ! wpbc_is_mu_user_can_be_here( 'only_super_admin' ) ) {
545 return false;
546 } // User is not Super admin, so exit. Basically its was already checked at the bottom of the PHP file, just in case.
547
548 $is_can = apply_bk_filter( 'recheck_version', true );
549 if ( ! $is_can ) {
550 ?>
551 <script type="text/javascript"> jQuery(document).ready(function () {
552 jQuery('.wpdvlp-sub-tabs').remove();
553 });
554 </script>
555 <?php
556 return;
557 }
558
559
560 // Init Settings API & Get Data from DB.
561 $this->settings_api(); // Define all fields and get values from DB.
562
563 // Submit .
564
565 $submit_form_name = 'wpbc_general_settings_form'; // Define form name.
566
567 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
568 if ( isset( $_POST[ 'is_form_sbmitted_' . $submit_form_name ] ) ) {
569
570 // Nonce checking {Return false if invalid, 1 if generated between, 0-12 hours ago, 2 if generated between 12-24 hours ago. }.
571 $nonce_gen_time = check_admin_referer( 'wpbc_settings_page_' . $submit_form_name ); // Its stop show anything on submiting, if its not refear to the original page.
572
573 // Save Changes .
574 $this->update();
575 }
576 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
577 if ( ! empty( $_GET['scroll_to_section'] ) ) {
578 ?>
579 <script type="text/javascript">
580 jQuery(document).ready(function () {
581 jQuery('#<?php echo esc_js( sanitize_text_field( wp_unslash( $_GET['scroll_to_section'] ) ) ); ?> a').trigger('click');
582 });
583 </script>
584 <?php
585 }
586
587 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
588 if ( ( isset( $_GET['wpbc_setup_wizard'] ) ) && ( 'reset' === $_GET['wpbc_setup_wizard'] ) ) {
589
590 wpbc_setup_wizard_page__force_in_get();
591
592 ?>
593 <div class="wpdvlp-sub-tabs wpbc_redirection_message" style="margin: 20px 0;padding: 1em;font-size: 14px;">
594 <a href="<?php echo esc_url( wpbc_get_setup_wizard_page_url() ); ?>">Redirect</a> after <span class="wpbc_countdown">1</span> second...</div>
595 <?php
596
597 wpbc_redirect( wpbc_get_setup_wizard_page_url() );
598 }
599
600 // JavaScript: Tooltips, Popover, Datepick (js & css) .
601 echo '<span class="wpdevelop">';
602 wpbc_js_for_bookings_page();
603 echo '</span>';
604
605 // TODO: 2025-05-05 update in real top path. wpbc_ui_settings__top_path();
606
607 // Content .
608 ?>
609 <div class="clear"></div>
610 <div class="wpbc_settings_flex_container">
611
612 <div class="wpbc_settings_flex_container_left" style="display:none;">
613
614 <div class="wpbc_settings_navigation_column">
615
616 <div id="wpbc_general_settings_dashboard_tab" class="wpbc_settings_navigation_item wpbc_settings_navigation_item_active">
617 <?php
618 $title = esc_attr__( 'Dashboard', 'booking' );
619 ?>
620 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_dashboard_tab a' ,'#wpbc_general_settings_dashboard_metabox', '<?php echo esc_js( $title ); ?>' );"
621 href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
622 </div>
623 <div id="wpbc_general_settings_calendar_tab" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
624 <?php
625 $title = esc_attr__( 'Calendar', 'booking' );
626 ?>
627 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_calendar_tab a' ,'#wpbc_general_settings_calendar_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
628 </div>
629 <div id="wpbc_general_settings_days_tooltips_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
630 <?php
631 $title = esc_attr__( 'Tooltips in days', 'booking' );
632 ?>
633 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_days_tooltips_tab a' ,'#wpbc_general_settings_days_tooltips_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
634 </div>
635 <div id="wpbc_general_settings_availability_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
636 <?php
637 $title = esc_attr__( 'Availability', 'booking' );
638 ?>
639 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_availability_tab a' ,'#wpbc_general_settings_availability_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
640 </div>
641 <div id="wpbc_general_settings_capacity_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
642 <?php
643 $title = esc_attr__( 'Capacity', 'booking' );
644 ?>
645 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_capacity_tab a' ,'#wpbc_general_settings_capacity_metabox,#wpbc_general_settings_capacity_upgrade_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
646 </div>
647 <div id="wpbc_general_settings_form_tab" class="wpbc_settings_navigation_item">
648 <?php
649 $title = esc_attr__( 'Form Options', 'booking' );
650 ?>
651 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_form_tab a' ,'#wpbc_general_settings_form_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
652 </div>
653 <div id="wpbc_general_settings_time_slots_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
654 <?php
655 $title = esc_attr__( 'Time Slots', 'booking' );
656 ?>
657 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_time_slots_tab a' ,'#wpbc_general_settings_time_slots_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
658 </div>
659 <div id="wpbc_general_settings_booking_confirmation_tab" class="wpbc_settings_navigation_item">
660 <?php
661 $title = esc_attr__( 'Booking Confirmation', 'booking' );
662 ?>
663 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_booking_confirmation_tab a' ,'#wpbc_general_settings_booking_confirmation_metabox,#wpbc_general_settings_booking_confirmation_left_metabox,#wpbc_general_settings_booking_confirmation_right_metabox,#wpbc_general_settings_booking_confirmation_help_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
664 </div>
665
666 <div id="wpbc_general_settings_booking_timeline_tab" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
667 <?php
668 $title = esc_attr__( 'Timeline (front-end)', 'booking' );
669 ?>
670 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_booking_timeline_tab a' ,'#wpbc_general_settings_booking_timeline_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
671 </div>
672 <?php if ( class_exists('wpdev_bk_personal') ) { ?>
673 <div id="wpbc_general_settings_bookings_options_tab" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
674 <?php
675 $title = esc_attr__( 'Manage Bookings', 'booking' );
676 ?>
677 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_bookings_options_tab a' ,'#wpbc_general_settings_bookings_options_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
678 </div>
679 <?php } ?>
680
681 <?php if ( class_exists('wpdev_bk_biz_s') ) { ?>
682 <div id="wpbc_general_settings_auto_cancelation_approval_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
683 <?php
684 $title = esc_attr__( 'Auto Cancellation / Auto Approval', 'booking' );
685 ?>
686 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_auto_cancelation_approval_tab a' ,'#wpbc_general_settings_auto_cancelation_approval_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
687 </div>
688 <?php } ?>
689
690
691 <?php if ( class_exists('wpdev_bk_multiuser') ) { ?>
692 <div id="wpbc_general_settings_multiuser_tab" class="wpbc_settings_navigation_item">
693 <?php
694 $title = esc_attr__( 'Multiuser options', 'booking' );
695 ?>
696 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_multiuser_tab a' ,'#wpbc_general_settings_multiuser_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
697 </div>
698 <?php } ?>
699
700 <div id="wpbc_general_settings_booking_listing_tab" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
701 <?php
702 $title = esc_attr__( 'Admin Panel', 'booking' );
703 ?>
704 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_booking_listing_tab a' ,'#wpbc_general_settings_booking_listing_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
705 </div>
706 <div id="wpbc_general_settings_booking_calendar_overview_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
707 <?php
708 $title = esc_attr__( 'Timeline View', 'booking' );
709 ?>
710 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_booking_calendar_overview_tab a' ,'#wpbc_general_settings_booking_calendar_overview_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
711 </div>
712 <div id="wpbc_general_settings_datestimes_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
713 <?php
714 $title = esc_attr__( 'Date / Time Formats', 'booking' );
715 ?>
716 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_datestimes_tab a' ,'#wpbc_general_settings_datestimes_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
717 </div>
718 <div id="wpbc_general_settings_permissions_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
719 <?php
720 $title = esc_attr__( 'Plugin Menu / Permissions', 'booking' );
721 ?>
722 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_permissions_tab a' ,'#wpbc_general_settings_permissions_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
723 </div>
724 <div id="wpbc_general_settings_translations_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
725 <?php
726 $title = esc_attr__( 'Translations', 'booking' );
727 ?>
728 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_translations_tab a' ,'#wpbc_general_settings_translations_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
729 </div>
730 <div id="wpbc_general_settings_advanced_tab" class="wpbc_settings_navigation_item">
731 <?php
732 $title = esc_attr__( 'Advanced', 'booking' );
733 ?>
734 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_advanced_tab a' ,'#wpbc_general_settings_advanced_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
735 </div>
736 <div id="wpbc_general_settings_uninstall_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
737 <?php
738 $title = esc_attr__( 'Uninstall / deactivation', 'booking' );
739 ?>
740 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_uninstall_tab a' ,'#wpbc_general_settings_uninstall_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
741 </div>
742 <div id="wpbc_general_settings_information_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
743 <?php
744 $title = esc_attr__( 'Info / News', 'booking' );
745 ?>
746 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_information_tab a' ,'#wpbc_general_settings_information_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
747 </div>
748 <?php if ( ( class_exists('wpdev_bk_personal') ) && ( ! wpbc_is_this_demo() ) ) { ?>
749 <div id="wpbc_general_settings_help_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
750 <?php
751 $title = esc_attr__( 'Tools', 'booking' );
752 ?>
753 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_help_tab a' ,'#wpbc_general_settings_help_metabox', '<?php echo esc_js( $title ); ?>' );" href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
754 </div>
755 <?php } ?>
756
757 <div id="wpbc_general_settings_all_tab" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
758 <?php
759 $title = esc_attr__( 'Show All Settings', 'booking' );
760 ?>
761 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_all_tab a' ,'.postbox', '<?php echo esc_js( $title ); ?>' );"
762 href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
763 </div>
764
765 </div>
766
767 </div>
768 <div class="wpbc_settings_flex_container_right">
769
770 <span class="metabox-holder">
771 <form name="<?php echo esc_attr( $submit_form_name ); ?>" id="<?php echo esc_attr( $submit_form_name ); ?>" action="" method="post">
772 <?php
773 // N o n c e field, and key for checking S u b m i t.
774 wp_nonce_field( 'wpbc_settings_page_' . $submit_form_name );
775 ?>
776 <input type="hidden" name="is_form_sbmitted_<?php echo esc_attr( $submit_form_name ); ?>" id="is_form_sbmitted_<?php echo esc_attr( $submit_form_name ); ?>" value="1"/>
777 <input type="hidden" name="form_visible_section" id="form_visible_section" value=""/>
778
779 <?php
780 if ( wpbc_is_show_general_setting_options() ) {
781 // FixIn: 8.9.4.11.
782 ?>
783
784 <div class="wpbc_settings_row wpbc_settings_row_full_width" >
785
786 <div id="wpbc_general_settings_dashboard_metabox" class="postbox"
787 style="background: transparent;border: 0;box-shadow: none;"><?php //wpbc_open_meta_box_section( 'wpbc_general_settings_dashboard', __('Dashboard'), array( 'is_section_visible_after_load' => true, 'is_show_minimize' => false ) ); ?>
788 <?php
789
790 wpbc_ui_settings__panel__statistic();
791
792 wpbc_ui_settings__panel__all_settings_panels();
793
794 wpbc_ui_settings__panel__plugin_version();
795
796 ?></div><?php //wpbc_close_meta_box_section(); ?>
797
798
799 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_calendar', __('Calendar', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
800
801 <?php $this->settings_api()->show( 'calendar' ); ?>
802
803 <?php wpbc_close_meta_box_section(); ?>
804
805
806 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_days_tooltips', __('Calendar Dates Tooltips', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
807
808 <?php $this->settings_api()->show( 'days_tooltips' ); ?>
809
810 <?php wpbc_close_meta_box_section(); ?>
811
812
813 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_availability', __('Availability', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
814
815 <?php $this->settings_api()->show( 'availability' ); ?>
816
817 <?php wpbc_close_meta_box_section(); ?>
818
819
820 <?php
821 wpbc_open_meta_box_section( 'wpbc_general_settings_booking_confirmation',
822 __( 'Booking Confirmation', 'booking' ),
823 array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) );
824 $this->settings_api()->show( 'booking_confirmation' );
825 wpbc_close_meta_box_section();
826 ?>
827 <div class="wpbc_settings_row wpbc_settings_row_left">
828 <?php
829 wpbc_open_meta_box_section( 'wpbc_general_settings_booking_confirmation_left',
830 __( 'Section', 'booking' ) . ': ' . __( 'Personal Information', 'booking' ),
831 array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) );
832 $this->settings_api()->show( 'booking_confirmation_left' );
833 wpbc_close_meta_box_section();
834
835 wpbc_open_meta_box_section( 'wpbc_general_settings_booking_confirmation_right',
836 __( 'Section', 'booking' ) . ': ' . __( 'Booking details', 'booking' ),
837 array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) );
838 $this->settings_api()->show( 'booking_confirmation_right' );
839 wpbc_close_meta_box_section();
840 ?>
841 </div>
842 <div class="wpbc_settings_row wpbc_settings_row_right">
843 <?php
844 wpbc_open_meta_box_section( 'wpbc_general_settings_booking_confirmation_help',
845 __( 'Shortcodes', 'booking' ),
846 array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) );
847 $this->settings_api()->show( 'booking_confirmation_help' );
848 wpbc_close_meta_box_section();
849 ?>
850 </div>
851 <div class="clear"></div>
852
853 <?php if ( class_exists('wpdev_bk_personal') ) { ?>
854 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_bookings_options', __('Bookings Options', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
855
856 <?php $this->settings_api()->show( 'bookings_options' ); ?>
857
858 <?php wpbc_close_meta_box_section(); ?>
859 <?php } ?>
860
861
862 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_booking_listing', __('Booking Admin Panel', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
863
864 <?php $this->settings_api()->show( 'booking_listing' ); ?>
865
866 <?php wpbc_close_meta_box_section(); ?>
867
868
869 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_booking_calendar_overview', __('Calendar Overview (admin panel)', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
870
871 <?php // FixIn: 8.5.2.20.
872 $this->settings_api()->show( 'booking_calendar_overview' );
873 ?>
874
875 <?php wpbc_close_meta_box_section(); ?>
876
877
878 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_booking_timeline', __('Timeline (front-end)', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
879
880 <?php
881 $this->settings_api()->show( 'booking_timeline' );
882 ?>
883
884 <?php wpbc_close_meta_box_section(); ?>
885
886
887 <?php if ( class_exists('wpdev_bk_biz_s') ) { ?>
888
889
890 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_auto_cancelation_approval', __('Auto cancellation / auto approval of bookings', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
891
892 <?php $this->settings_api()->show( 'auto_cancelation_approval' ); ?>
893
894 <?php wpbc_close_meta_box_section(); ?>
895
896 <?php } ?>
897
898
899
900 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_capacity', __('Capacity', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
901
902 <?php $this->settings_api()->show( 'capacity' ); ?>
903
904 <?php wpbc_close_meta_box_section(); ?>
905
906
907 <?php
908 if ( ! class_exists( 'wpdev_bk_personal' ) ) {
909
910 $wpbc_metabox_id = 'wpbc_general_settings_capacity_upgrade';
911
912 ob_start();
913 $is_panel_visible = wpbc_is_dismissed( $wpbc_metabox_id . '_metabox', array(
914 'title' => '<i class="menu_icon icon-1x wpbc_icn_close"></i> ',
915 'hint' => __( 'Dismiss', 'booking' ),
916 'class' => 'wpbc_panel_get_started_dismiss',
917 'css' => 'background: #fff;border-radius: 7px;'
918 ));
919 ?>
920 <script type="text/javascript"> jQuery('#<?php echo esc_js( $wpbc_metabox_id ); ?>_metabox').hide(); </script>
921 <?php
922 $dismiss_button_content = ob_get_clean();
923
924 if ( $is_panel_visible ) {
925
926 wpbc_open_meta_box_section( $wpbc_metabox_id,
927 __('Booking Quantity Control - Set limits for the number of bookings per day or time slot.', 'booking'),
928 array( 'is_section_visible_after_load' => false,
929 'is_show_minimize' => false,
930 'dismiss_button' => $dismiss_button_content
931 ) );
932
933 $this->settings_api()->show( 'capacity_upgrade' );
934
935 wpbc_close_meta_box_section();
936 }
937 }
938 ?>
939
940
941 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_advanced', __('Advanced', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
942
943 <?php $this->settings_api()->show( 'advanced' ); ?>
944
945 <?php wpbc_close_meta_box_section(); ?>
946
947
948 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_information', __('Information', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
949
950 <?php $this->settings_api()->show( 'information' ); ?>
951
952 <?php wpbc_close_meta_box_section(); ?>
953
954
955
956 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_datestimes', __('Date : Time', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
957
958 <?php $this->settings_api()->show( 'date_time' ); ?>
959
960 <?php wpbc_close_meta_box_section(); ?>
961
962
963
964 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_permissions', __('Plugin Menu', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
965
966 <?php $this->settings_api()->show( 'permissions' ); ?>
967
968 <?php wpbc_close_meta_box_section(); ?>
969
970
971 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_uninstall', __('Uninstall / deactivation', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
972
973 <?php $this->settings_api()->show( 'uninstall' ); ?>
974
975 <?php wpbc_close_meta_box_section(); ?>
976
977 <?php if ( ( class_exists( 'wpdev_bk_personal' ) ) && ( ! wpbc_is_this_demo() ) ) { ?>
978 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_help', __( 'Tools', 'booking' ), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
979
980 <?php $this->settings_api()->show( 'help' ); ?>
981
982 <?php wpbc_close_meta_box_section(); ?>
983 <?php } ?>
984
985 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_translations', __( 'Translations', 'booking' ), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
986
987 <?php $this->settings_api()->show( 'translations' ); ?>
988
989 <?php wpbc_translation_buttons_settings_section(); ?>
990
991 <?php wpbc_close_meta_box_section(); ?>
992
993 <?php if ( class_exists( 'wpdev_bk_multiuser' ) ) { // FixIn: 9.2.3.8. ?>
994
995 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_multiuser', __( 'Multiuser options', 'booking' ), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
996
997 <?php $this->settings_api()->show( 'multiuser' ); ?>
998
999 <?php wpbc_close_meta_box_section(); ?>
1000
1001 <?php } ?>
1002
1003 </div>
1004 <div class="clear"></div>
1005 <div class="container_for_save_buttons">
1006 <input type="submit" value="<?php esc_attr_e( 'Save Changes', 'booking' ); ?>" class="button button-primary wpbc_submit_button"/>
1007 <span class="sub_right">
1008 <a style="margin:0;" class="button button"
1009 onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_all_tab a' ,'.postbox', 'Show All Settings' );"
1010 href="javascript:void(0);">
1011 <?php
1012 esc_html_e( 'Show All Settings', 'booking' )
1013 ?>
1014 </a>
1015 <?php
1016 if ( 'translations_updated_from_wpbc_and_wp' !== get_bk_option( 'booking_translation_update_status' ) ) {
1017
1018 $current_locale = wpbc_get_maybe_reloaded_booking_locale();
1019
1020 if ( ! in_array( $current_locale, array( 'en_US', 'en_CA', 'en_GB', 'en_AU' ), true ) ) {
1021
1022 echo '<a class="button button" href="'
1023 . esc_url( wpbc_get_settings_url() . '&system_info=show&_wpnonce=' . wp_create_nonce( 'wpbc_settings_url_nonce' ) . '&update_translations=1#wpbc_general_settings_system_info_metabox' )
1024 . '">'
1025 . esc_html__( 'Update Translations', 'booking' )
1026 . '</a>';
1027 }
1028 }
1029
1030 if ( ! wpbc_is_this_demo() ) {
1031
1032 echo '<a style="margin:0 2em;" class="button button" href="'
1033 . esc_url( wpbc_get_settings_url() . '&system_info=show&_wpnonce=' . wp_create_nonce( 'wpbc_settings_url_nonce' ) . '&restore_dismissed=On#wpbc_general_settings_restore_dismissed_metabox' )
1034 . '">'
1035 . esc_html__( 'Restore all dismissed windows', 'booking' )
1036 . '</a>';
1037 }
1038 ?>
1039 </span>
1040 </div>
1041
1042 <?php } ?>
1043 </form>
1044 </span>
1045
1046 </div>
1047 </div>
1048
1049
1050 <?php
1051
1052 do_action( 'wpbc_hook_settings_page_footer', 'general_settings' );
1053 }
1054
1055
1056 public function update() {
1057
1058 $validated_fields = $this->settings_api()->validate_post(); // Get Validated Settings fields in $_POST request.
1059
1060 $validated_fields = apply_filters( 'wpbc_settings_validate_fields_before_saving', $validated_fields ); // Hook for validated fields.
1061
1062 /**
1063 * Skip saving specific option, for example in Demo mode.
1064 * // unset( $validated_fields['booking_start_day_weeek'] );
1065 */
1066
1067 // FixIn: 9.8.6.1.
1068 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
1069 if ( ! empty( $_POST['form_visible_section'] ) ) {
1070 ?>
1071 <script type="text/javascript">
1072 jQuery(document).ready(function () {
1073 jQuery('<?php
1074 // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
1075 echo esc_js( $_POST['form_visible_section'] );
1076 ?> a').trigger('click');
1077 });
1078 </script>
1079 <?php
1080 }
1081
1082 $this->settings_api()->save_to_db( $validated_fields ); // Save fields to DB.
1083
1084 wpbc_show_changes_saved_message();
1085
1086 /**
1087 * // O L D W A Y: Saving Fields Data
1088 * // update_bk_option( 'booking_is_delete_if_deactive'
1089 * // , WPBC_Settings_API::validate_checkbox_post('booking_is_delete_if_deactive') );
1090 * // ( (isset( $_POST['booking_is_delete_if_deactive'] ))?'On':'Off') );
1091 */
1092 }
1093 }
1094
1095
1096 /**
1097 *
1098
1099 if ( ! wpbc_is_mu_user_can_be_here( 'only_super_admin' ) ) { // If this User not "super admin", then do not load this page at all
1100
1101 if ( ( ! isset( $ _GET['tab'] ) ) || ( $_GET['tab'] == 'general' ) ) { // If tab was not selected or selected default, then redirect it to the "form" tab.
1102 $_GET['tab'] = 'form';
1103 }
1104 } else {
1105 add_action('wpbc_menu_created', array( new WPBC_Page_SettingsGeneral() , '__construct') ); // Executed after creation of Menu
1106 }
1107 */
1108
1109 add_action('wpbc_menu_created', array( new WPBC_Page_SettingsGeneral() , '__construct') ); // Executed after creation of Menu
1110