PluginProbe
Booking Calendar / 10.10
Booking Calendar v10.10
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 / wpbc.php

wpbc.php in Booking Calendar 10.10, at core/wpbc.php

596 lines 28.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @version 1.0
4 * @package Booking Calendar
5 * @subpackage Core
6 * @category Bookings
7 *
8 * @author wpdevelop
9 * @link https://wpbookingcalendar.com/
10 * @email info@wpbookingcalendar.com
11 *
12 * @modified 2014.07.29
13 */
14
15 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
16
17 global $wp_version;
18 $min_wp_version = version_compare( WP_BK_MIN_WP_VERSION, $wp_version, '<=' ); // FixIn: 7.0.1.6.
19 if ( ( ! class_exists( 'Booking_Calendar' ) ) && ( $min_wp_version ) ) :
20
21
22 // General Init Class
23 final class Booking_Calendar {
24
25 static private $instance = NULL;
26
27 public $cron;
28 public $notice;
29 public $booking_obj;
30
31 public $admin_menu;
32 public $js;
33 public $css;
34
35 private $is_wp_inited = false;
36
37 /** Get Single Instance of this Class and Init Plugin */
38 public static function init() {
39
40 if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Booking_Calendar ) ) {
41
42 self::$instance = new Booking_Calendar;
43 self::$instance->includes();
44 self::$instance->define_version();
45
46 add_action( 'init', array( self::$instance, 'wp_inited' ) );
47
48 if ( class_exists( 'WPBC_BookingInstall' ) ) { // Check if we need to run Install / Uninstal process.
49 new WPBC_BookingInstall();
50 }
51
52 /**
53 * Make Ajax, Response, in this case $is_continue_at_frontend = false
54 * or
55 * define Booking Class for front-end side, then $is_continue_at_frontend = true
56 */
57 $is_continue_at_frontend = self::$instance->start();
58
59 make_bk_action('wpbc_booking_calendar_started');
60
61 if ( $is_continue_at_frontend ) { // Possible Load Admin or Front-End page
62
63 self::$instance->js = new WPBC_JS;
64 self::$instance->css = new WPBC_CSS;
65
66 if( is_admin() ) {
67
68 // Define Menu
69 add_action( '_admin_menu', array( self::$instance, 'define_admin_menu') ); // _admin_menu - Fires before the administration menu loads in the admin.
70
71 add_action( 'admin_footer', 'wpbc_print_js', 50 ); // Load my Queued JavaScript Code at the footer of the Admin Panel page. Executed in ALL Admin Menu Pages
72
73 } else {
74
75 if ( function_exists( 'wpbc_br_cache' ) ) $br_cache = wpbc_br_cache(); // Init booking resources cache
76
77 add_action( 'wp_enqueue_scripts', array(self::$instance->css, 'load'), 1000000001 ); // Load CSS at front-end side // Enqueue Scripts to All Client pages
78 add_action( 'wp_enqueue_scripts', array(self::$instance->js, 'load'), 1000000001 ); // Load JavaScript files and define JS varibales at forn-end side
79 add_action( 'wp_footer', 'wpbc_print_js', 50 ); // Load my Queued JavaScript Code at the footer of the page, if executed "wp_footer" hook at the Theme.
80 }
81 }
82
83 }
84 return self::$instance;
85 }
86
87 /**
88 * Set WordPress was inited
89 *
90 * @return void
91 */
92 public function wp_inited(){
93 self::$instance->is_wp_inited = true;
94 }
95
96 /**
97 * Check if WP was inited
98 * @return mixed
99 */
100 public function is_wp_inited(){
101 return self::$instance->is_wp_inited;
102 }
103
104 /** Define Admin Menu items */
105 public function define_admin_menu(){
106
107 $update_count = wpbc_db_get_number_new_bookings();
108 // FixIn: 9.1.3.3.
109 $title = 'WPBC ';//__('Booking', 'booking'); //'&#223;<span style="font-size:0.75em;">&#920;&#920;</span>&kgreen;&imath;&eng;'; // __('Booking', 'booking')
110 $is_user_activated = apply_bk_filter('multiuser_is_current_user_active', true ); // FixIn: 6.0.1.17.
111
112 if ( ( $update_count > 0 ) && ( $is_user_activated ) ) {
113 $update_count_title = "<span class='update-plugins count-$update_count' title=''><span class='update-count bk-update-count'>" . number_format_i18n($update_count) . "</span></span>" ;
114 $title .= $update_count_title;
115 }
116
117 $title = '<div class="name_container" style="display: flex;flex-flow: row nowrap;justify-content: flex-start;align-items: center;min-height: 16px;">'
118 . ' <div class="name_item" style="font-size: 6px;font-weight: 600;margin-left: -4px;margin-top: 12px;margin-right: 0px;word-wrap: normal;white-space: nowrap;position: absolute;">WP</div>'
119 . ' <div class="name_item" style="font-size: 11px;margin-left: -5px;margin-top: -7px;white-space: nowrap;margin-right: 4px;">Booking Calendar</div>';
120 if ( ( $update_count > 0 ) && ( $is_user_activated ) ) {
121 $badge_style= '';
122 } else {
123 $badge_style = 'display:none;';
124 }
125
126 $title .= '<span style="margin-top:-2px;'.$badge_style.'" class="wpbc_badge_count name_item update-plugins count-'.$update_count.'" title=""><span class="update-count bk-update-count" style="white-space: nowrap;word-wrap: normal;">' . number_format_i18n( $update_count ) . '</span></span>';
127 $title .= '</div>';
128
129 /**
130 global $menu;
131 if ( current_user_can( ) ) {
132 $menu[] = array( '', 'read', 'separator-wpbc', '', 'wp-menu-separator wpbc' );
133 }
134 debuge($menu);
135 */
136
137 $booking_menu_position = get_bk_option( 'booking_menu_position' );
138 switch ( $booking_menu_position ) {
139 case 'top':
140 $booking_menu_position = '3.3'; // FixIn: 8.7.7.16.
141 break;
142 case 'middle':
143 global $_wp_last_object_menu; // The index of the last top-level menu in the object menu group
144 $_wp_last_object_menu++;
145 $booking_menu_position = $_wp_last_object_menu; // 58.9;
146 break;
147 case 'bottom':
148 $booking_menu_position = '99.999';
149 break;
150 default:
151 $booking_menu_position = '3.3';
152 break;
153 }
154
155 //FixIn: 9.0.1.7 //scale image by this params: viewBox="-2 -1 20 20"
156 if( 0 ) {
157 // calendar4-range https://icons.getbootstrap.com/icons/calendar4-range/
158 $svg_icon_integarted = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="" viewBox="-2 -1 20 20">'
159 . '<path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM2 2a1 1 0 0 0-1 1v1h14V3a1 1 0 0 0-1-1H2zm13 3H1v9a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V5z"/>'
160 . '<path d="M9 7.5a.5.5 0 0 1 .5-.5H15v2H9.5a.5.5 0 0 1-.5-.5v-1zm-2 3v1a.5.5 0 0 1-.5.5H1v-2h5.5a.5.5 0 0 1 .5.5z"/>'
161 . '</svg>';
162
163 //calendar-range https://icons.getbootstrap.com/icons/calendar-range/
164 $svg_icon_integarted = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-calendar-range" viewBox="-2 -1 20 20">'
165 . '<path d="M9 7a1 1 0 0 1 1-1h5v2h-5a1 1 0 0 1-1-1zM1 9h4a1 1 0 0 1 0 2H1V9z"/>'
166 . '<path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z"/>'
167 . '</svg>';
168
169 //calendar2-range https://icons.getbootstrap.com/icons/calendar2-range/
170 $svg_icon_integarted = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-calendar2-range" viewBox="-2 -1 20 20">'
171 . '<path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM2 2a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H2z"/>'
172 . '<path d="M2.5 4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V4zM9 8a1 1 0 0 1 1-1h5v2h-5a1 1 0 0 1-1-1zm-8 2h4a1 1 0 1 1 0 2H1v-2z"/>'
173 . '</svg>';
174 }
175 // calendar3-range https://icons.getbootstrap.com/icons/calendar3-range/
176 $svg_icon_integarted = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-calendar3-range" viewBox="-2 -1 20 20">'
177 . '<path d="M14 0H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zM1 3.857C1 3.384 1.448 3 2 3h12c.552 0 1 .384 1 .857v10.286c0 .473-.448.857-1 .857H2c-.552 0-1-.384-1-.857V3.857z"/>'
178 . '<path d="M7 10a1 1 0 0 0 0-2H1v2h6zm2-3h6V5H9a1 1 0 0 0 0 2z"/>'
179 . '</svg>';
180
181 self::$instance->admin_menu['master'] = new WPBC_Admin_Menus(
182 'wpbc' , array (
183 'in_menu' => 'root'
184 //, 'mune_icon_url' => '/assets/img/icon-16x16.png'
185 , 'mune_icon_url' => $svg_icon_integarted // FixIn: 9.0.1.7.
186 , 'menu_title' => $title
187 , 'menu_title_second' => __('Bookings', 'booking')
188 , 'page_header' => __('Bookings Listing','booking')
189 , 'browser_header' => __('Bookings Listing', 'booking') . ' - ' . __('Booking Calendar', 'booking')
190 , 'user_role' => get_bk_option( 'booking_user_role_booking' )
191 , 'position' => $booking_menu_position // 3.3 - top //( 58.9 ) // - middle
192 /*
193 (Optional). Positions for Core Menu Items
194 2 Dashboard
195 4 Separator
196 5 Posts
197 10 Media
198 15 Links
199 20 Pages
200 25 Comments
201 59 Separator
202 60 Appearance
203 65 Plugins
204 70 Users
205 75 Tools
206 80 Settings
207 99 Separator
208 */
209 )
210 );
211
212 self::$instance->admin_menu['new'] = new WPBC_Admin_Menus(
213 'wpbc-new' , array (
214 'in_menu' => 'wpbc'
215 , 'menu_title' => '+ ' . ucwords( __('Add booking', 'booking') ) // FixIn: 10.9.3.1.
216 , 'page_header' => ucwords( __('Add booking','booking') )
217 , 'browser_header'=> ucwords( __('Add booking', 'booking') ) . ' - ' . __('Booking Calendar', 'booking')
218 , 'user_role' => get_bk_option( 'booking_user_role_addbooking' )
219 )
220 );
221 self::$instance->admin_menu['availability'] = new WPBC_Admin_Menus( // FixIn: 9.3.0.1.
222 'wpbc-availability' , array (
223 'in_menu' => 'wpbc'
224 , 'menu_title' => ucwords( __('Availability', 'booking') )
225 , 'page_header' => ucwords( __('Availability','booking') )
226 , 'browser_header'=> ucwords( __('Availability', 'booking') ) . ' - ' . __('Booking Calendar', 'booking')
227 , 'user_role' => get_bk_option( 'booking_user_role_availability' ) // FixIn: 9.5.2.2.
228 )
229 );
230 //FixIn: 9.8.15.2.4
231 if ( class_exists( 'wpdev_bk_biz_m' ) )
232 self::$instance->admin_menu['prices'] = new WPBC_Admin_Menus(
233 'wpbc-prices' , array (
234 'in_menu' => 'wpbc'
235 , 'menu_title' => __('Prices', 'booking')
236 , 'page_header' => ucwords( __('Booking Prices','booking') )
237 , 'browser_header'=> __('Prices', 'booking') . ' - ' . __('Booking Calendar', 'booking')
238 , 'user_role' => get_bk_option( 'booking_user_role_prices' ) //FixIn: 9.8.15.2.6
239 )
240 );
241 if ( class_exists( 'wpdev_bk_personal' ) ) {
242 self::$instance->admin_menu['resources'] = new WPBC_Admin_Menus(
243 'wpbc-resources' , array (
244 'in_menu' => 'wpbc'
245 , 'menu_title' => __('Resources', 'booking')
246 , 'page_header' => ucwords( __('Booking resources','booking') )
247 , 'browser_header'=> __('Resources', 'booking') . ' - ' . __('Booking Calendar', 'booking')
248 , 'user_role' => get_bk_option( 'booking_user_role_resources' )
249 )
250 );
251 }
252
253
254 if ( ! class_exists( 'wpdev_bk_personal' ) ) { // FixIn: 10.1.3.1.
255 // FixIn: 9.8.15.7.
256 self::$instance->admin_menu['resources'] = new WPBC_Admin_Menus(
257 'wpbc-resources' , array (
258 'in_menu' => 'wpbc'
259 , 'menu_title' => __('Publish', 'booking') // __('Resource', 'booking')
260 , 'page_header' => ucwords( __('Booking resource','booking') )
261 , 'browser_header'=> __('Resource', 'booking') . ' - ' . __('Booking Calendar', 'booking')
262 , 'user_role' => get_bk_option( 'booking_user_role_settings' )
263 )
264 );
265 }
266
267
268 self::$instance->admin_menu['settings'] = new WPBC_Admin_Menus(
269 'wpbc-settings' , array (
270 'in_menu' => 'wpbc'
271 , 'menu_title' => __('Settings', 'booking')
272 , 'page_header' => __('General Settings','booking')
273 , 'browser_header'=> __('Settings', 'booking') . ' - ' . __('Booking Calendar', 'booking')
274 , 'user_role' => get_bk_option( 'booking_user_role_settings' )
275 )
276 );
277
278
279
280
281 if (
282 ( wpbc_is_user_can_access_wizard_page() ) &&
283 ( ! wpbc_setup_wizard_page__is_all_steps_completed() )
284 ){
285
286 $setup_steps = new WPBC_SETUP_WIZARD_STEPS();
287
288 self::$instance->admin_menu['setup'] = new WPBC_Admin_Menus(
289 'wpbc-setup' , array (
290 'in_menu' => 'wpbc'
291 , 'menu_title' => $setup_steps->get_plugin_menu_title__setup_progress()
292 , 'page_header' => ucwords( __('Setup','booking') )
293 , 'browser_header' => ucwords( __('Setup', 'booking') ) . ' - ' . __('Booking Calendar', 'booking')
294 , 'user_role' => get_bk_option( 'booking_user_role_settings' ) //FixIn: 9.8.15.2.6
295 )
296 );
297 }
298
299
300
301 $simulate_user_id = wpbc_mu__is_simulated_login_as_user();
302 if ( ! empty( $simulate_user_id ) ) {
303
304 $custom_user = get_userdata( $simulate_user_id );
305
306 self::$instance->admin_menu['log_off'] = new WPBC_Admin_Menus(
307 'wpbc-log-off' , array (
308 'in_menu' => 'wpbc'
309 //, 'menu_title' => __( 'Log Out Simulated Login as', 'booking' ) . ' "' . $custom_user->display_name . '"'
310 , 'menu_title' => '<span style="color:#fffcdf;font-size: 11px;font-weight: 400;" title="'
311 . esc_attr( __( 'Log out as regular user and login as super booking admin user', 'booking' ) )
312 .'">'
313 .__( 'Back to Super Admin', 'booking' )
314 .'<span>'
315 /* translators: 1: ... */
316 , 'page_header' => ucwords( sprintf( __( 'Need even more functionality? Check %1$s higher versions %2$s', 'booking' ), '', '' ) )
317 , 'browser_header'=> 'Log In as Super Admin'
318 , 'user_role' => get_bk_option( 'booking_user_role_booking' )
319 )
320 );
321 }
322
323
324
325 //FixIn: 8.0.1.6 // FixIn: 10.1.3.1.
326 if ( ! class_exists( 'wpdev_bk_personal' ) ) {
327
328 $is_show_this_menu = get_bk_option('booking_menu_go_pro');
329
330 if ( 'hide' !== $is_show_this_menu )
331 self::$instance->admin_menu['go_pro'] = new WPBC_Admin_Menus(
332 'wpbc-go-pro' , array (
333 'in_menu' => 'wpbc'
334 , 'menu_title' => __('Get Pro', 'booking')
335 /* translators: 1: ... */
336 , 'page_header' => ucwords( sprintf( __( 'Need even more functionality? Check %1$s higher versions %2$s', 'booking' ), '', '' ) )
337 , 'browser_header'=> 'Booking Calendar'
338 , 'user_role' => get_bk_option( 'booking_user_role_booking' )
339 )
340 );
341 }
342
343 }
344
345
346
347 /**
348 * Get Menu Object
349 *
350 * @param type - menu type
351 * @return boolean
352 */
353 public function get_menu_object( $type ) {
354
355 if ( isset( self::$instance->admin_menu[ $type ] ) )
356 return self::$instance->admin_menu[ $type ];
357 else
358 return false;
359 }
360
361
362 // Include Files
363 private function includes() {
364 require_once WPBC_PLUGIN_DIR . '/core/wpbc-include.php' ;
365 }
366
367
368 private function define_version() {
369
370 // GET VERSION NUMBER
371 $plugin_data = wpbc_file__read_header_info( WPBC_FILE , array( 'Name' => 'Plugin Name', 'PluginURI' => 'Plugin URI', 'Version' => 'Version', 'Description' => 'Description', 'Author' => 'Author', 'AuthorURI' => 'Author URI', 'TextDomain' => 'Text Domain', 'DomainPath' => 'Domain Path' ) , 'plugin' );
372 if (!defined('WPDEV_BK_VERSION')) define('WPDEV_BK_VERSION', $plugin_data['Version'] );
373 }
374
375
376 // Cloning instances of the class is forbidden
377 public function __clone() {
378
379 _doing_it_wrong( __FUNCTION__, esc_html__( 'Action is not allowed!', 'booking' ), '1.0' );
380 }
381
382
383 // Unserializing instances of the class is forbidden
384 public function __wakeup() {
385
386 _doing_it_wrong( __FUNCTION__, esc_html__( 'Action is not allowed!', 'booking' ), '1.0' );
387 }
388
389
390 // Initialization
391 private function start(){
392
393 if ( ( defined( 'DOING_AJAX' ) ) && ( DOING_AJAX ) ){ // New A J A X R e s p o n d e r
394
395 if ( 1 ) {
396 $wpdev_booking_obj_in_ajax = new wpdev_booking(); // GO
397 } else {
398 if ( class_exists( 'wpdev_bk_personal' ) ) {
399 $wpdev_bk_personal_in_ajax = new wpdev_bk_personal();
400 }
401 }
402
403 require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-ajax.php'; // Ajax
404
405 return false;
406 } else { // Usual Loading of plugin
407
408 // We are having Response, its executed in other file: wpbc-response.php
409 if ( WP_BK_RESPONSE )
410 return false;
411
412 if( is_admin() ) {
413 // Define Notices System
414 self::$instance->notice = new WPBC_Notices();
415 }
416
417 // Normal Start
418 self::$instance->booking_obj = new wpdev_booking(); // GO
419
420 // Cron Jobs ..... /////////////////////////////////////////////////
421 self::$instance->cron = new WPBC_Cron();
422 ////////////////////////////////////////////////////////////////////
423 }
424 return true;
425 }
426
427 }
428
429 else: // Its seems that some instance of Booking Calendar still activted!!!
430
431 // FixIn: 7.0.1.6.
432 global $wp_version;
433 $min_wp_version = version_compare( WP_BK_MIN_WP_VERSION, $wp_version, '<=' );
434
435 // FixIn: 7.0.1.6.
436 function wpbc_show_min_wp_version_error() {
437
438 $message_type = 'error';
439 $title = __( 'Error' , 'booking') . '!';
440
441
442 $message = 'Booking Calendar ';
443
444 $booking_version_num = get_option( 'booking_version_num');
445 if ( ! empty( $booking_version_num ) )
446 $message .= '<strong>' . $booking_version_num . '</strong> ';
447
448
449 global $wp_version;
450
451 $message .= sprintf( 'require minimum %s . You are using %s. '
452 , ' <strong>' . 'WordPress ' . WP_BK_MIN_WP_VERSION . '</strong>'
453 , ' <strong>' . 'WordPress ' . $wp_version . '</strong>' );
454 if ( current_user_can( 'update_core' ) ){
455 $message .= ' <a href="' . esc_url( self_admin_url( 'update-core.php' ) ) . '">' . 'Return to Dashboard &rarr; Updates' . '</a>';
456 }
457
458
459 $message_content = '';
460
461 $message_content .= '<div class="clear"></div>';
462
463 $message_content .= '<div class="updated wpbc-settings-notice notice-' . $message_type . ' ' . $message_type . '" style="text-align:left;padding:10px;">';
464
465 if ( ! empty( $title ) )
466 $message_content .= '<strong>' . esc_js( $title ) . '</strong> ';
467
468 $message_content .= html_entity_decode( esc_js( $message ) ,ENT_QUOTES) ;
469
470 $message_content .= '</div>';
471
472 $message_content .= '<div class="clear"></div>';
473
474 echo wp_kses_post( $message_content );
475 }
476
477 function wpbc_show_activation_error() {
478
479 $message_type = 'error';
480 $title = __( 'Error' , 'booking') . '!';
481 $message = 'Please deactivate previous old version of' . ' ' . 'Booking Calendar';
482
483 $booking_version_num = get_option( 'booking_version_num');
484 if ( ! empty( $booking_version_num ) )
485 $message .= ' <strong>' . $booking_version_num . '</strong>';
486
487
488 $is_delete_if_deactive = get_bk_option( 'booking_is_delete_if_deactive' ); // check
489
490 if ( $is_delete_if_deactive == 'On' ) {
491
492 $message .= '<br/><br/> <strong>Warning!</strong> ' . 'All plugin data will be deleted when plugin had deactivated.' . ' '
493 . sprintf( 'If you want to save your plugin data, please uncheck the %s"Delete plugin data"%s at the', '<strong>', '</strong>') . ' ' . __( 'Settings' , 'booking' ) . '.';
494 }
495
496 $message_content = '';
497
498 $message_content .= '<div class="clear"></div>';
499
500 $message_content .= '<div class="updated wpbc-settings-notice notice-' . $message_type . ' ' . $message_type . '" style="text-align:left;padding:10px;">';
501
502 if ( ! empty( $title ) )
503 $message_content .= '<strong>' . esc_js( $title ) . '</strong> ';
504
505 $message_content .= html_entity_decode( esc_js( $message ) ,ENT_QUOTES) ;
506
507 $message_content .= '</div>';
508
509 $message_content .= '<div class="clear"></div>';
510
511 echo wp_kses_post( $message_content );
512 }
513
514
515 if ( ! $min_wp_version ) // FixIn: 7.0.1.6.
516 add_action('admin_notices', 'wpbc_show_min_wp_version_error');
517 else
518 add_action('admin_notices', 'wpbc_show_activation_error');
519
520 return; // Exit
521
522 endif;
523
524
525 /**
526 * The main function responsible for returning the one true Instance to functions everywhere.
527 *
528 * Example: <?php $wpbc = WPBC(); ?>
529 */
530 function WPBC() {
531 return Booking_Calendar::init();
532 }
533
534
535
536 // Start
537 WPBC();
538
539
540
541 //if ( ! defined( 'SAVEQUERIES') ) define('SAVEQUERIES', true);
542
543 //add_action( 'admin_footer', 'show_debug_info', 130 );
544 function show_debug_info() {
545
546 $server_request_uri = ( ( isset( $_SERVER['REQUEST_URI'] ) ) ? sanitize_text_field( $_SERVER['REQUEST_URI'] ) : '' ); /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.MissingUnslash */ /* FixIn: sanitize_unslash */
547 $request_uri = $server_request_uri; //FixIn:5.4.1
548 if ( strpos( $request_uri, 'page=wpbc') === false ) {
549 return;
550 }
551 echo '<div style="width:800px;margin:10px auto;"><style type="text/css"> a:link{background: inherit !important; } pre { white-space: pre-wrap; }</style>';
552 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure_phpinfo
553 phpinfo(); echo '</div>'; return;
554
555 ?><div style="width:auto;margin:0 0 0 215px;font-size:11px; "><?php
556
557 // SYSTEM INFO SHOWING ////////////////////////////////////////////////////////
558
559 //Note firstly need to define this in functions.php file: define('SAVEQUERIES', true);
560 global $wpdb;
561 echo '<div class="clear"></div>START SYSTEM<pre>';
562 $qq_kk = 0;
563 $total_time = 0;
564 $total_num = 0;
565 foreach ( $wpdb->queries as $qq_k => $qq ) {
566 if (
567 ( strpos( $qq[0], 'booking') !== false )
568
569 ) {
570 if ( $qq[1] > 0.002 ) { echo '<div style="color:#A77;font-weight:bold;">'; }
571 debuge($qq_kk++, $qq);
572 $total_time += $qq[1];
573 $total_num++;
574 if ( $qq[1] > 0.002 ) { echo '</div>'; }
575 }
576 }
577
578 echo '<div><pre class="prettyprint linenums" style="font-size:18px;">[' . esc_html( $total_num . '/' . $total_time ) . '] WPBC Requests TOTAL TIME</pre></div>';
579
580 echo '<div class="clear"></div>';
581
582 echo '<div><pre class="prettyprint linenums" style="font-size:18px;">' . esc_html( get_num_queries() . '/' . timer_stop( 0, 3 ) ) . 'qps</pre></div>';
583
584 echo '<div class="clear"></div>';
585
586 echo "</pre>";
587 ?><br/><br/><br/><br/><br/><br/><?php
588 echo '<div class="clear"></div>';
589
590 ////////////////////////////////////////////////////////////////////////////////
591 ?></div><?php
592
593 echo '</div>';
594 }
595
596