PluginProbe
Booking Calendar / 11.8.1
Booking Calendar v11.8.1
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 10.11.2 10.11.3 All 202 releases
booking / core / admin / page-settings.php

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

928 lines 49.0 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 $this->normalize_legacy_settings_request();
33
34 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
35 // If tab was not selected or selected default, then redirect it to the "form" tab.
36 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
37 if ( ( isset( $_REQUEST['page'] ) && ( 'wpbc-settings' === $_REQUEST['page'] ) ) && ( ( ! isset( $_REQUEST['tab'] ) ) || ( 'general' === $_REQUEST['tab'] ) ) ) {
38 $_REQUEST['tab'] = 'form';
39 }
40 } else {
41 parent::__construct();
42 }
43 }
44
45 /**
46 * Route settings links for sections that were moved into the Advanced group.
47 *
48 * Existing bookmarks and integrations can continue using the former Admin
49 * Panel group and the previous Manage Bookings location of the front-end
50 * Timeline settings. Subtab identifiers remain unchanged.
51 *
52 * @return void
53 */
54 private function normalize_legacy_settings_request() {
55 $request_page = isset( $_REQUEST['page'] ) && is_scalar( $_REQUEST['page'] )
56 ? sanitize_key( (string) wp_unslash( $_REQUEST['page'] ) )
57 : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
58 $request_tab = isset( $_REQUEST['tab'] ) && is_scalar( $_REQUEST['tab'] )
59 ? sanitize_key( (string) wp_unslash( $_REQUEST['tab'] ) )
60 : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
61 $request_subtab = isset( $_REQUEST['subtab'] ) && is_scalar( $_REQUEST['subtab'] )
62 ? sanitize_key( (string) wp_unslash( $_REQUEST['subtab'] ) )
63 : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
64
65 $is_legacy_admin_panel = 'admin_panel' === $request_tab;
66 $is_legacy_timeline = 'manage_bookings' === $request_tab && 'booking_timeline' === $request_subtab;
67
68 if ( 'wpbc-settings' !== $request_page || ( ! $is_legacy_admin_panel && ! $is_legacy_timeline ) ) {
69 return;
70 }
71
72 $_REQUEST['tab'] = 'advanced'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
73 if ( isset( $_GET['tab'] ) ) {
74 $_GET['tab'] = 'advanced'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
75 }
76 }
77
78 public function in_page() {
79
80 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.
81 return (string) wp_rand( 100000, 1000000 );
82 }
83
84 return 'wpbc-settings';
85 }
86
87
88 /**
89 * Get Settings API class - define, show, update "Fields".
90 *
91 * @return object Settings API
92 */
93 public function settings_api() {
94
95 if ( false === $this->settings_api ) {
96 $this->settings_api = new WPBC_Settings_API_General();
97 }
98
99 return $this->settings_api;
100 }
101
102
103 public function tabs() {
104
105 // Init vars.
106 $separator_i = 0;
107 $tabs = array();
108 $subtab_default = array(
109 'type' => 'subtab', // Required| Possible values: 'subtab' | 'separator' | 'button' | 'goto-link' | 'html'.
110 'title' => '',
111 'page_title' => '',
112 'hint' => '',
113 'link' => '',
114 'css_classes' => '',
115 'font_icon' => 'wpbc_icn_dashboard',
116 'font_icon_right' => 'wpbc-bi-question-circle',
117 'default' => false,
118 );
119
120 // =============================================================================================================
121 // == D A S H B O A R D ==
122 // =============================================================================================================
123 $tabs['general'] = array(
124 'is_show_top_path' => true, // true | false. By default value is: false.
125 'is_show_top_navigation' => false, // true | false. By default value is: false.
126 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
127 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
128 // translators: 1: Booking Calendar.
129 'page_description' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
130 'title' => __( 'Dashboard', 'booking' ), // Left Vertical Menu - Title.
131 // translators: 1: Booking Calendar.
132 'hint' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
133 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
134 'default' => true, // Is this tab activated by default or not: true / false.
135 'font_icon' => 'wpbc-bi-speedometer2',
136 // 'font_icon_right' => 'wpbc-bi-question-circle',
137 'css_classes' => 'do_expand__' . 'wpbc_general_settings_dashboard_metabox' . '_link',
138 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . 'wpbc_general_settings_dashboard_metabox' . "' );",
139 'folder_style' => 'order:10;',
140 );
141 // FixIn: 10.12.4.7. $tabs[ 'settings' . ( ++$separator_i ) ] = array_merge( $subtab_default, array( 'type' => 'separator' ,'folder_style' => 'order:10;' ) );
142
143
144 // =============================================================================================================
145 // == C O N F I R M A T I ON ==
146 // =============================================================================================================
147 $tabs['booking_confirmation'] = array(
148 'is_show_top_path' => true, // true | false. By default value is: true.
149 'is_show_top_navigation' => false, // true | false. By default value is: false.
150 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
151 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
152 // translators: 1: Booking Calendar.
153 'page_description' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
154 'title' => __( 'Booking Confirmation', 'booking' ), // Left Vertical Menu - Title.
155 'hint' => __( 'Customize how the booking summary is displayed after a booking is created', 'booking' ),
156 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
157 'default' => false, // Is this tab activated by default or not: true / false.
158 'font_icon' => 'wpbc-bi-card-checklist',
159 'font_icon_right' => 'wpbc-bi-question-circle',
160 'css_classes' => 'do_expand__' . 'wpbc_general_settings_booking_confirmation_metabox' . '_link',
161 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" .
162 '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' .
163 "' );",
164 'folder_style' => 'order:20;',
165 );
166
167 // FixIn: 10.12.4.7. $tabs[ 'settings' . ( ++$separator_i ) ] = array_merge( $subtab_default, array( 'type' => 'separator' ,'folder_style' => 'order:20;' ) );
168
169 // =============================================================================================================
170 // == Manage Bookings ==
171 // =============================================================================================================
172 $tabs['manage_bookings'] = array(
173 'is_show_top_path' => true, // true | false. By default value is: true.
174 'is_show_top_navigation' => false, // true | false. By default value is: false.
175 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
176 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
177 // translators: 1: Booking Calendar.
178 'page_description' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
179 'title' => __( 'Manage Bookings', 'booking' ), // Left Vertical Menu - Title.
180 // translators: 1: Booking Calendar.
181 'hint' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
182 'font_icon' => 'wpbc_icn_app_registration', // Left Vertical Menu - Icon.
183 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
184 'css_classes' => '', // CSS.
185 'icon' => '', // Icon - link to the real PNG img.
186 'default' => false, // Is this tab activated by default or not: true / false.
187 'folder_style' => 'order:1000',
188 );
189
190 $subtabs = array();
191
192 $section_id = 'wpbc_general_settings_booking_timeline_metabox';
193 $booking_timeline_subtab = array_merge(
194 $subtab_default,
195 array(
196 'title' => __( 'Timeline (front-end)', 'booking' ),
197 'page_title' => __( 'General Settings', 'booking' ),
198 'hint' => __( 'Customize timeline options, including the display of booking details.', 'booking' ),
199 'font_icon' => 'wpbc_icn_align_vertical_bottom wpbc_icn_rotate_90',
200 'font_icon_right' => 'wpbc-bi-question-circle',
201 'css_classes' => 'do_expand__' . $section_id . '_link ',
202 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
203 'default' => false,
204 )
205 );
206
207 if ( class_exists('wpdev_bk_personal') ) {
208 $section_id = 'wpbc_general_settings_bookings_options_metabox';
209 $subtabs['bookings_options'] = array_merge(
210 $subtab_default,
211 array(
212 'title' => __( 'Manage Bookings', 'booking' ),
213 'page_title' => __( 'General Settings', 'booking' ),
214 'hint' => __( 'Allow customers to edit or cancel their own bookings.', 'booking' ),
215 'font_icon' => 'wpbc_icn_app_registration mode_edit_outline edit_calendar',
216 'font_icon_right' => 'wpbc-bi-question-circle',
217 'css_classes' => 'do_expand__' . $section_id . '_link ',
218 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
219 'default' => false,
220 )
221 );
222 }
223
224
225 if ( class_exists('wpdev_bk_biz_s') ) {
226 $section_id = 'wpbc_general_settings_auto_cancelation_approval_metabox';
227 $subtabs['auto_cancelation_approval'] = array_merge(
228 $subtab_default,
229 array(
230 'title' => __( 'Auto Cancellation / Auto Approval', 'booking' ),
231 'page_title' => __( 'General Settings', 'booking' ),
232 'hint' => __( 'Enable automatic approval or cancellation of bookings.', 'booking' ),
233 'font_icon' => 'wpbc_icn_published_with_changes',
234 'font_icon_right' => 'wpbc-bi-question-circle',
235 'css_classes' => 'do_expand__' . $section_id . '_link',
236 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
237 'default' => false,
238 )
239 );
240 }
241
242 $tabs['manage_bookings']['subtabs'] = $subtabs;
243
244
245 // =============================================================================================================
246 // == Admin Panel ==
247 // =============================================================================================================
248 $tabs['admin_panel'] = array(
249 'is_show_top_path' => true, // true | false. By default value is: true.
250 'is_show_top_navigation' => false, // true | false. By default value is: false.
251 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
252 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
253 'page_description' => __( 'Configure various options and settings in the admin panel.', 'booking' ), // Header - Title Description. If false, than hidden.
254 'title' => __( 'Admin Panel', 'booking' ), // Left Vertical Menu - Title.
255 // translators: 1: Booking Calendar.
256 'hint' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
257 'font_icon' => 'wpbc_icn_widgets', // Left Vertical Menu - Icon.
258 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
259 'css_classes' => '', // CSS.
260 'icon' => '', // Icon - link to the real PNG img.
261 'default' => false, // Is this tab activated by default or not: true / false.
262 'folder_style' => 'order:1000',
263 );
264
265 $subtabs = array();
266
267 $section_id = 'wpbc_general_settings_booking_listing_metabox';
268 $subtabs['booking_listing'] = array_merge(
269 $subtab_default,
270 array(
271 'title' => __( 'Booking Admin Panel', 'booking' ),
272 'page_title' => __( 'General Settings', 'booking' ),
273 'hint' => __( 'Configure various options and settings in the admin panel.', 'booking' ),
274 'font_icon' => 'wpbc-bi-list',
275 'font_icon_right' => 'wpbc-bi-question-circle',
276 'css_classes' => 'do_expand__' . $section_id . '_link',
277 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
278 'default' => false,
279 )
280 );
281
282 $section_id = 'wpbc_general_settings_booking_calendar_overview_metabox';
283 $subtabs['booking_calendar_overview'] = array_merge(
284 $subtab_default,
285 array(
286 'title' => __( 'Timeline View (Back-End)', 'booking' ),
287 'page_title' => __( 'General Settings', 'booking' ),
288 'hint' => __( 'Customize timeline options in the admin panel, including displaying booking details.', 'booking' ),
289 'font_icon' => 'wpbc-bi-bar-chart-steps _icn_timeline 0wpbc_icn_rotate_45 0wpbc_icn_align_vertical_bottom',
290 'font_icon_right' => 'wpbc-bi-question-circle',
291 'css_classes' => 'do_expand__' . $section_id . '_link',
292 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
293 'default' => false,
294 )
295 );
296
297 $subtabs['booking_timeline'] = $booking_timeline_subtab;
298
299 $section_id = 'wpbc_general_settings_datestimes_metabox';
300 $subtabs['datestimes'] = array_merge(
301 $subtab_default,
302 array(
303 'title' => __( 'Date and Time Formats', 'booking' ),
304 'page_title' => __( 'General Settings', 'booking' ),
305 'hint' => __( 'Customize the display format for dates and times.', 'booking' ),
306 'font_icon' => 'wpbc-bi-braces-asterisk _icn_password',
307 'font_icon_right' => 'wpbc-bi-question-circle',
308 'css_classes' => 'do_expand__' . $section_id . '_link',
309 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
310 'default' => false,
311 )
312 );
313
314 $section_id = 'wpbc_general_settings_permissions_metabox';
315 $subtabs['permissions'] = array_merge(
316 $subtab_default,
317 array(
318 'title' => __( 'Plugin Menu / Permissions', 'booking' ),
319 'page_title' => __( 'General Settings', 'booking' ),
320 'hint' => __( 'Set user permissions for accessing plugin menu pages and configure the menu position.', 'booking' ),
321 'font_icon' => 'wpbc-bi-key',
322 'font_icon_right' => 'wpbc-bi-question-circle',
323 'css_classes' => 'do_expand__' . $section_id . '_link',
324 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
325 'default' => false,
326 )
327 );
328
329 $section_id = 'wpbc_general_settings_translations_metabox';
330 $subtabs['translations'] = array_merge(
331 $subtab_default,
332 array(
333 'title' => __( 'Translations', 'booking' ),
334 'page_title' => __( 'General Settings', 'booking' ),
335 'hint' => __( 'Choose whether to use local translations or WordPress translations.', 'booking' ),
336 'font_icon' => 'wpbc_icn_translate 0wpbc-bi-translate',
337 'font_icon_right' => 'wpbc-bi-question-circle',
338 'css_classes' => 'do_expand__' . $section_id . '_link',
339 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
340 'default' => false,
341 )
342 );
343
344 $tabs['admin_panel']['subtabs'] = $subtabs;
345 $admin_panel_subtabs = $subtabs;
346 unset( $tabs['admin_panel'] );
347
348
349 // =============================================================================================================
350 // == Advanced ==
351 // =============================================================================================================
352 $tabs['advanced'] = array(
353 'is_show_top_path' => true, // true | false. By default value is: true.
354 'is_show_top_navigation' => false, // true | false. By default value is: false.
355 'left_navigation__default_view_mode' => '', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''.
356 'page_title' => __( 'General Settings', 'booking' ), // Header - Title. If false, than hidden.
357 // translators: 1: Booking Calendar.
358 'page_description' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
359 'title' => __( 'Advanced', 'booking' ), // Left Vertical Menu - Title.
360 // translators: 1: Booking Calendar.
361 'hint' => sprintf( __( 'Configure various options and settings in the %s.', 'booking' ), 'Booking Calendar' ),
362 'font_icon' => 'wpbc-bi-gear', // Left Vertical Menu - Icon.
363 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link.
364 'css_classes' => '', // CSS.
365 'icon' => '', // Icon - link to the real PNG img.
366 'default' => false, // Is this tab activated by default or not: true / false.
367 'folder_style' => 'order:1000',
368 );
369
370 $subtabs = array();
371
372 $section_id = 'wpbc_general_settings_advanced_metabox';
373 $subtabs['advanced_options'] = array_merge(
374 $subtab_default,
375 array(
376 'title' => __( 'Advanced Options', 'booking' ),
377 'page_title' => __( 'General Settings', 'booking' ),
378 'hint' => __( 'Configure loading of CSS/JavaScript files, set the number of simultaneous requests, and other advanced options.', 'booking' ),
379 'font_icon' => 'wpbc_icn_adjust',
380 'font_icon_right' => 'wpbc-bi-question-circle',
381 'css_classes' => 'do_expand__' . $section_id . '_link',
382 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
383 'default' => false,
384 )
385 );
386
387 $section_id = 'wpbc_general_settings_uninstall_metabox';
388 $subtabs['uninstall'] = array_merge(
389 $subtab_default,
390 array(
391 'title' => __( 'Uninstall / Deactivation', 'booking' ),
392 'page_title' => __( 'General Settings', 'booking' ),
393 'hint' => __( 'Enable the option to fully erase booking data when the plugin is deactivated.', 'booking' ),
394 'font_icon' => 'wpbc-bi-trash',
395 'font_icon_right' => 'wpbc-bi-question-circle',
396 'css_classes' => 'do_expand__' . $section_id . '_link',
397 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
398 'default' => false,
399 )
400 );
401
402 $section_id = 'wpbc_general_settings_information_metabox';
403 $subtabs['information'] = array_merge(
404 $subtab_default,
405 array(
406 'title' => __( 'Plugin Info & News', 'booking' ),
407 'page_title' => __( 'General Settings', 'booking' ),
408 'hint' => __( 'Stay informed with the latest news and details about the plugin.', 'booking' ),
409 'font_icon' => 'wpbc_icn_newspaper -bi-newspaper _icn_news 0wpbc-bi-translate',
410 'font_icon_right' => 'wpbc-bi-question-circle',
411 'css_classes' => 'do_expand__' . $section_id . '_link',
412 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
413 'default' => false,
414 )
415 );
416
417 $section_id = 'wpbc_general_settings_help_metabox';
418 $subtabs['tools'] = array_merge(
419 $subtab_default,
420 array(
421 'title' => __( 'Tools', 'booking' ),
422 'page_title' => __( 'General Settings', 'booking' ),
423 'hint' => '', //__( 'Stay informed with the latest news and details about the plugin. ', 'booking' ),
424 'font_icon' => 'wpbc_icn_construction',
425 'font_icon_right' => '',
426 'css_classes' => 'do_expand__' . $section_id . '_link',
427 'onclick' => "wpbc_admin_ui__do__open_url__expand_section( '" . wpbc_get_settings_url() . "', '" . $section_id . "' );",
428 'default' => false,
429 )
430 );
431 $tabs['advanced']['subtabs'] = array_merge( $admin_panel_subtabs, $subtabs );
432
433 // FixIn: 10.12.4.7. $tabs[ 'settings' . ( ++$separator_i ) ] = array_merge( $subtab_default, array( 'type' => 'separator' ,'folder_style' => 'order:900;' ) );
434 // $tabs[ 'settings' . ( ++$separator_i ) ] = array_merge( $subtab_default, array( 'type' => 'separator' ,'folder_style' => 'order:1000;' ) );
435
436 return $tabs;
437 }
438
439
440 public function content() {
441
442 // Checking.
443
444 do_action( 'wpbc_hook_settings_page_header', 'general_settings' ); // Define Notices Section and show some static messages, if needed.
445
446 if ( ! wpbc_is_mu_user_can_be_here( 'activated_user' ) ) {
447 return false;
448 } // Check if MU user activated, otherwise show Warning message.
449
450 if ( ! wpbc_is_mu_user_can_be_here( 'only_super_admin' ) ) {
451 return false;
452 } // User is not Super admin, so exit. Basically its was already checked at the bottom of the PHP file, just in case.
453
454 // Redirect legacy Settings > Calendar links to the dedicated Calendar settings page.
455 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
456 if ( ! empty( $_GET['scroll_to_section'] ) ) {
457 $scroll_to_section = sanitize_text_field( wp_unslash( $_GET['scroll_to_section'] ) );
458
459 if ( 'wpbc_general_settings_calendar_tab' === $scroll_to_section ) {
460 wpbc_redirect( function_exists( 'wpbc_settings_calendar__get_section_url' ) ? wpbc_settings_calendar__get_section_url( 'general' ) : admin_url( 'admin.php?page=wpbc-settings&tab=calendar_settings' ) );
461 return;
462 }
463
464 if ( 'wpbc_general_settings_days_tooltips_tab' === $scroll_to_section ) {
465 wpbc_redirect( function_exists( 'wpbc_settings_calendar__get_section_url' ) ? wpbc_settings_calendar__get_section_url( 'tooltips' ) : admin_url( 'admin.php?page=wpbc-settings&tab=calendar_settings&wpbc_calendar_section=tooltips' ) );
466 return;
467 }
468
469 if ( 'wpbc_general_settings_availability_tab' === $scroll_to_section ) {
470 wpbc_redirect( function_exists( 'wpbc_get_general_availability_url' ) ? wpbc_get_general_availability_url() : admin_url( 'admin.php?page=wpbc-availability&tab=general_availability' ) );
471 return;
472 }
473 }
474
475 $is_can = apply_bk_filter( 'recheck_version', true );
476 if ( ! $is_can ) {
477 ?>
478 <script type="text/javascript"> jQuery(document).ready(function () {
479 jQuery('.wpdvlp-sub-tabs').remove();
480 });
481 </script>
482 <?php
483 return;
484 }
485
486
487 // Init Settings API & Get Data from DB.
488 $this->settings_api(); // Define all fields and get values from DB.
489
490 // Submit .
491
492 $submit_form_name = 'wpbc_general_settings_form'; // Define form name.
493
494 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
495 if ( isset( $_POST[ 'is_form_sbmitted_' . $submit_form_name ] ) ) {
496
497 // Nonce checking {Return false if invalid, 1 if generated between, 0-12 hours ago, 2 if generated between 12-24 hours ago. }.
498 $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.
499
500 // Save Changes .
501 $this->update();
502 }
503 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
504 if ( ! empty( $_GET['scroll_to_section'] ) ) {
505 ?>
506 <script type="text/javascript">
507 jQuery(document).ready(function () {
508 jQuery('#<?php echo esc_js( sanitize_text_field( wp_unslash( $_GET['scroll_to_section'] ) ) ); ?> a').trigger('click');
509 });
510 </script>
511 <?php
512 }
513
514 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
515 if ( ( isset( $_GET['wpbc_setup_wizard'] ) ) && ( 'reset' === $_GET['wpbc_setup_wizard'] ) ) {
516
517 wpbc_setup_wizard_page__force_in_get();
518
519 ?>
520 <div class="wpdvlp-sub-tabs wpbc_redirection_message" style="margin: 20px 0;padding: 1em;font-size: 14px;">
521 <a href="<?php echo esc_url( wpbc_get_setup_wizard_page_url() ); ?>">Redirect</a> after <span class="wpbc_countdown">1</span> second...</div>
522 <?php
523
524 wpbc_redirect( wpbc_get_setup_wizard_page_url() );
525 }
526
527 // JavaScript: Tooltips, Popover, Datepick (js & css) .
528 echo '<span class="wpdevelop">';
529 wpbc_js_for_bookings_page();
530 echo '</span>';
531
532 // TODO: 2025-05-05 update in real top path. wpbc_ui_settings__top_path();
533
534 // Content .
535 ?>
536 <div class="clear"></div>
537 <div class="wpbc_settings_flex_container">
538
539 <div class="wpbc_settings_flex_container_left" style="display:none;">
540
541 <div class="wpbc_settings_navigation_column">
542
543 <div id="wpbc_general_settings_dashboard_tab" class="wpbc_settings_navigation_item wpbc_settings_navigation_item_active">
544 <?php
545 $title = esc_attr__( 'Dashboard', 'booking' );
546 ?>
547 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_dashboard_tab a' ,'#wpbc_general_settings_dashboard_metabox', '<?php echo esc_js( $title ); ?>' );"
548 href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
549 </div>
550 <div id="wpbc_general_settings_booking_confirmation_tab" class="wpbc_settings_navigation_item">
551 <?php
552 $title = esc_attr__( 'Booking Confirmation', 'booking' );
553 ?>
554 <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>
555 </div>
556
557 <?php if ( class_exists('wpdev_bk_personal') ) { ?>
558 <div id="wpbc_general_settings_bookings_options_tab" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
559 <?php
560 $title = esc_attr__( 'Manage Bookings', 'booking' );
561 ?>
562 <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>
563 </div>
564 <?php } ?>
565
566 <?php if ( class_exists('wpdev_bk_biz_s') ) { ?>
567 <div id="wpbc_general_settings_auto_cancelation_approval_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
568 <?php
569 $title = esc_attr__( 'Auto Cancellation / Auto Approval', 'booking' );
570 ?>
571 <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>
572 </div>
573 <?php } ?>
574
575
576 <div id="wpbc_general_settings_booking_listing_tab" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
577 <?php
578 $title = esc_attr__( 'Admin Panel', 'booking' );
579 ?>
580 <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>
581 </div>
582 <div id="wpbc_general_settings_booking_calendar_overview_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
583 <?php
584 $title = esc_attr__( 'Timeline View', 'booking' );
585 ?>
586 <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>
587 </div>
588 <div id="wpbc_general_settings_booking_timeline_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
589 <?php
590 $title = esc_attr__( 'Timeline (front-end)', 'booking' );
591 ?>
592 <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>
593 </div>
594 <div id="wpbc_general_settings_datestimes_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
595 <?php
596 $title = esc_attr__( 'Date / Time Formats', 'booking' );
597 ?>
598 <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>
599 </div>
600 <div id="wpbc_general_settings_permissions_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
601 <?php
602 $title = esc_attr__( 'Plugin Menu / Permissions', 'booking' );
603 ?>
604 <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>
605 </div>
606 <div id="wpbc_general_settings_translations_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
607 <?php
608 $title = esc_attr__( 'Translations', 'booking' );
609 ?>
610 <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>
611 </div>
612 <div id="wpbc_general_settings_advanced_tab" class="wpbc_settings_navigation_item">
613 <?php
614 $title = esc_attr__( 'Advanced', 'booking' );
615 ?>
616 <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>
617 </div>
618 <div id="wpbc_general_settings_uninstall_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
619 <?php
620 $title = esc_attr__( 'Uninstall / deactivation', 'booking' );
621 ?>
622 <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>
623 </div>
624 <div id="wpbc_general_settings_information_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
625 <?php
626 $title = esc_attr__( 'Info / News', 'booking' );
627 ?>
628 <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>
629 </div>
630 <?php if ( ( class_exists('wpdev_bk_personal') ) && ( ! wpbc_is_this_demo() ) ) { ?>
631 <div id="wpbc_general_settings_help_tab" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
632 <?php
633 $title = esc_attr__( 'Tools', 'booking' );
634 ?>
635 <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>
636 </div>
637 <?php } ?>
638
639 <div id="wpbc_general_settings_all_tab" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
640 <?php
641 $title = esc_attr__( 'Show All Settings', 'booking' );
642 ?>
643 <a onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_all_tab a' ,'.postbox', '<?php echo esc_js( $title ); ?>' );"
644 href="javascript:void(0);"><span><?php echo esc_html( $title ); ?></span></a>
645 </div>
646
647 </div>
648
649 </div>
650 <div class="wpbc_settings_flex_container_right">
651
652 <span class="metabox-holder">
653 <form name="<?php echo esc_attr( $submit_form_name ); ?>" id="<?php echo esc_attr( $submit_form_name ); ?>" action="" method="post">
654 <?php
655 // N o n c e field, and key for checking S u b m i t.
656 wp_nonce_field( 'wpbc_settings_page_' . $submit_form_name );
657 ?>
658 <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"/>
659 <input type="hidden" name="form_visible_section" id="form_visible_section" value=""/>
660
661 <?php
662 if ( wpbc_is_show_general_setting_options() ) {
663 // FixIn: 8.9.4.11.
664 ?>
665
666 <div class="wpbc_settings_row wpbc_settings_row_full_width" >
667
668 <div id="wpbc_general_settings_dashboard_metabox" class="postbox"
669 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 ) ); ?>
670 <?php
671
672 wpbc_ui_settings__panel__statistic();
673
674 wpbc_ui_settings__panel__all_settings_panels();
675
676 wpbc_ui_settings__panel__plugin_version();
677
678 ?></div><?php //wpbc_close_meta_box_section(); ?>
679
680 <?php
681 wpbc_open_meta_box_section( 'wpbc_general_settings_booking_confirmation',
682 __( 'Booking Confirmation', 'booking' ),
683 array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) );
684 $this->settings_api()->show( 'booking_confirmation' );
685 wpbc_close_meta_box_section();
686 ?>
687 <div class="wpbc_settings_row wpbc_settings_row_left">
688 <?php
689 wpbc_open_meta_box_section( 'wpbc_general_settings_booking_confirmation_left',
690 __( 'Section', 'booking' ) . ': ' . __( 'Personal Information', 'booking' ),
691 array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) );
692 $this->settings_api()->show( 'booking_confirmation_left' );
693 wpbc_close_meta_box_section();
694
695 wpbc_open_meta_box_section( 'wpbc_general_settings_booking_confirmation_right',
696 __( 'Section', 'booking' ) . ': ' . __( 'Booking details', 'booking' ),
697 array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) );
698 $this->settings_api()->show( 'booking_confirmation_right' );
699 wpbc_close_meta_box_section();
700 ?>
701 </div>
702 <div class="wpbc_settings_row wpbc_settings_row_right">
703 <?php
704 wpbc_open_meta_box_section( 'wpbc_general_settings_booking_confirmation_help',
705 __( 'Shortcodes', 'booking' ),
706 array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) );
707 $this->settings_api()->show( 'booking_confirmation_help' );
708 wpbc_close_meta_box_section();
709 ?>
710 </div>
711 <div class="clear"></div>
712
713 <?php if ( class_exists('wpdev_bk_personal') ) { ?>
714 <?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 ) ); ?>
715
716 <?php $this->settings_api()->show( 'bookings_options' ); ?>
717
718 <?php wpbc_close_meta_box_section(); ?>
719 <?php } ?>
720
721
722 <?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 ) ); ?>
723
724 <?php $this->settings_api()->show( 'booking_listing' ); ?>
725
726 <?php wpbc_close_meta_box_section(); ?>
727
728
729 <?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 ) ); ?>
730
731 <?php // FixIn: 8.5.2.20.
732 $this->settings_api()->show( 'booking_calendar_overview' );
733 ?>
734
735 <?php wpbc_close_meta_box_section(); ?>
736
737
738 <?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 ) ); ?>
739
740 <?php
741 $this->settings_api()->show( 'booking_timeline' );
742 ?>
743
744 <?php wpbc_close_meta_box_section(); ?>
745
746
747 <?php if ( class_exists('wpdev_bk_biz_s') ) { ?>
748
749
750 <?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 ) ); ?>
751
752 <?php $this->settings_api()->show( 'auto_cancelation_approval' ); ?>
753
754 <?php wpbc_close_meta_box_section(); ?>
755
756 <?php } ?>
757
758 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_advanced', __('Advanced', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
759
760 <?php $this->settings_api()->show( 'advanced' ); ?>
761
762 <?php wpbc_close_meta_box_section(); ?>
763
764
765 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_information', __('Information', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
766
767 <?php $this->settings_api()->show( 'information' ); ?>
768
769 <?php wpbc_close_meta_box_section(); ?>
770
771
772
773 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_datestimes', __('Date : Time', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
774
775 <?php $this->settings_api()->show( 'date_time' ); ?>
776
777 <?php wpbc_close_meta_box_section(); ?>
778
779
780
781 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_permissions', __('Plugin Menu', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
782
783 <?php $this->settings_api()->show( 'permissions' ); ?>
784
785 <?php wpbc_close_meta_box_section(); ?>
786
787
788 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_uninstall', __('Uninstall / deactivation', 'booking'), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
789
790 <?php $this->settings_api()->show( 'uninstall' ); ?>
791
792 <?php wpbc_close_meta_box_section(); ?>
793
794 <?php if ( ( class_exists( 'wpdev_bk_personal' ) ) && ( ! wpbc_is_this_demo() ) ) { ?>
795 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_help', __( 'Tools', 'booking' ), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
796
797 <?php $this->settings_api()->show( 'help' ); ?>
798
799 <?php if ( function_exists( 'wpbc_customer_access_render_rate_limit_reset_tool' ) ) { ?>
800 <?php wpbc_customer_access_render_rate_limit_reset_tool(); ?>
801 <?php } ?>
802
803 <?php wpbc_close_meta_box_section(); ?>
804 <?php } ?>
805
806 <?php wpbc_open_meta_box_section( 'wpbc_general_settings_translations', __( 'Translations', 'booking' ), array( 'is_section_visible_after_load' => false, 'is_show_minimize' => false ) ); ?>
807
808 <?php $this->settings_api()->show( 'translations' ); ?>
809
810 <?php wpbc_translation_buttons_settings_section(); ?>
811
812 <?php wpbc_close_meta_box_section(); ?>
813
814 </div>
815 <div class="clear"></div>
816 <div class="container_for_save_buttons">
817 <input type="submit" value="<?php esc_attr_e( 'Save Changes', 'booking' ); ?>" class="button button-primary wpbc_submit_button"/>
818 <span class="sub_right">
819 <a style="margin:0;" class="button button"
820 onclick="javascript:wpbc_ui_settings__panel__click( '#wpbc_general_settings_all_tab a' ,'.postbox', 'Show All Settings' );"
821 href="javascript:void(0);">
822 <?php
823 esc_html_e( 'Show All Settings', 'booking' )
824 ?>
825 </a>
826 <?php
827 if ( 'translations_updated_from_wpbc_and_wp' !== get_bk_option( 'booking_translation_update_status' ) ) {
828
829 $current_locale = wpbc_get_maybe_reloaded_booking_locale();
830
831 if ( ! in_array( $current_locale, array( 'en_US', 'en_CA', 'en_GB', 'en_AU' ), true ) ) {
832
833 echo '<a class="button button" href="'
834 . 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' )
835 . '">'
836 . esc_html__( 'Update Translations', 'booking' )
837 . '</a>';
838 }
839 }
840
841 if ( ! wpbc_is_this_demo() ) {
842
843 echo '<a style="margin:0 2em;" class="button button" href="'
844 . 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' )
845 . '">'
846 . esc_html__( 'Restore all dismissed windows', 'booking' )
847 . '</a>';
848 }
849 ?>
850 </span>
851 </div>
852
853 <?php } ?>
854 </form>
855 </span>
856
857 </div>
858 </div>
859
860
861 <?php
862
863 do_action( 'wpbc_hook_settings_page_footer', 'general_settings' );
864 }
865
866
867 public function update() {
868
869 $validated_fields = $this->settings_api()->validate_post(); // Get Validated Settings fields in $_POST request.
870
871 $validated_fields = apply_filters( 'wpbc_settings_validate_fields_before_saving', $validated_fields ); // Hook for validated fields.
872
873 foreach ( $this->settings_api()->get_form_fields() as $field_name => $field ) {
874 if ( ! empty( $field['group'] ) && in_array( $field['group'], array( 'calendar', 'days_tooltips', 'availability' ), true ) ) {
875 unset( $validated_fields[ $field_name ] );
876 }
877 }
878
879 /**
880 * Skip saving specific option, for example in Demo mode.
881 * // unset( $validated_fields['booking_start_day_weeek'] );
882 */
883
884 // FixIn: 9.8.6.1.
885 // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
886 if ( ! empty( $_POST['form_visible_section'] ) ) {
887 ?>
888 <script type="text/javascript">
889 jQuery(document).ready(function () {
890 jQuery('<?php
891 // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
892 echo esc_js( $_POST['form_visible_section'] );
893 ?> a').trigger('click');
894 });
895 </script>
896 <?php
897 }
898
899 $this->settings_api()->save_to_db( $validated_fields ); // Save fields to DB.
900
901 wpbc_show_changes_saved_message();
902
903 /**
904 * // O L D W A Y: Saving Fields Data
905 * // update_bk_option( 'booking_is_delete_if_deactive'
906 * // , WPBC_Settings_API::validate_checkbox_post('booking_is_delete_if_deactive') );
907 * // ( (isset( $_POST['booking_is_delete_if_deactive'] ))?'On':'Off') );
908 */
909 }
910 }
911
912
913 /**
914 *
915
916 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
917
918 if ( ( ! isset( $ _GET['tab'] ) ) || ( $_GET['tab'] == 'general' ) ) { // If tab was not selected or selected default, then redirect it to the "form" tab.
919 $_GET['tab'] = 'form';
920 }
921 } else {
922 add_action('wpbc_menu_created', array( new WPBC_Page_SettingsGeneral() , '__construct') ); // Executed after creation of Menu
923 }
924 */
925
926 add_action('wpbc_menu_created', array( new WPBC_Page_SettingsGeneral() , '__construct') ); // Executed after creation of Menu
927
928