PluginProbe
Booking Calendar / 11.7
Booking Calendar v11.7
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 10.12.0 10.12.1 All 199 releases
booking / core / wpbc.php

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

550 lines 21.9 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 $wpbc_min_wp_version = version_compare( WP_BK_MIN_WP_VERSION, $wp_version, '<=' ); // FixIn: 7.0.1.6.
19 if ( ( ! class_exists( 'Booking_Calendar' ) ) && ( $wpbc_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 $booking_menu_position = get_bk_option( 'booking_menu_position' );
131 switch ( $booking_menu_position ) {
132 case 'top':
133 $booking_menu_position = '3.3'; // FixIn: 8.7.7.16.
134 break;
135 case 'middle':
136 global $_wp_last_object_menu; // The index of the last top-level menu in the object menu group
137 $_wp_last_object_menu++;
138 $booking_menu_position = $_wp_last_object_menu; // 58.9;
139 break;
140 case 'bottom':
141 $booking_menu_position = '99.999';
142 break;
143 default:
144 /**
145 * 3.3 - top //( 58.9 ) // - middle
146 (Optional). Positions for Core Menu Items
147 2 Dashboard
148 4 Separator
149 5 Posts
150 10 Media
151 15 Links
152 20 Pages
153 25 Comments
154 59 Separator
155 60 Appearance
156 65 Plugins
157 70 Users
158 75 Tools
159 80 Settings
160 99 Separator
161 */
162 $booking_menu_position = '3.3';
163 break;
164 }
165
166 /**
167 // //FixIn: 9.0.1.7 //scale image by this params: viewBox="-2 -1 20 20"
168 // if( 0 ) {
169 // // calendar4-range https://icons.getbootstrap.com/icons/calendar4-range/
170 // $svg_icon_integarted = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="" 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 1v1h14V3a1 1 0 0 0-1-1H2zm13 3H1v9a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V5z"/>'
172 // . '<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"/>'
173 // . '</svg>';
174 //
175 // //calendar-range https://icons.getbootstrap.com/icons/calendar-range/
176 // $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">'
177 // . '<path d="M9 7a1 1 0 0 1 1-1h5v2h-5a1 1 0 0 1-1-1zM1 9h4a1 1 0 0 1 0 2H1V9z"/>'
178 // . '<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"/>'
179 // . '</svg>';
180 //
181 // //calendar2-range https://icons.getbootstrap.com/icons/calendar2-range/
182 // $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">'
183 // . '<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"/>'
184 // . '<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"/>'
185 // . '</svg>';
186 // }
187 // // calendar3-range https://icons.getbootstrap.com/icons/calendar3-range/
188 // $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">'
189 // . '<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"/>'
190 // . '<path d="M7 10a1 1 0 0 0 0-2H1v2h6zm2-3h6V5H9a1 1 0 0 0 0 2z"/>'
191 // . '</svg>';
192 */
193
194 $svg_icon_integarted = wpbc_get_svg_logo( '#aaa', '#aaa', '0.4' ); // '#aaa', '#aaa', '0.2' .
195
196 self::$instance->admin_menu['master'] = new WPBC_Admin_Menus( 'wpbc', array(
197 'in_menu' => 'root',
198 'mune_icon_url' => $svg_icon_integarted,
199 'menu_title' => $title,
200 'menu_title_second' => __( 'Bookings', 'booking' ),
201 'page_header' => __( 'Bookings Listing', 'booking' ),
202 'browser_header' => __( 'Bookings Listing', 'booking' ) . ' - ' . __( 'Booking Calendar', 'booking' ),
203 'user_role' => get_bk_option( 'booking_user_role_booking' ),
204 'position' => $booking_menu_position,
205 ) );
206
207 self::$instance->admin_menu['new'] = new WPBC_Admin_Menus( 'wpbc-new', array(
208 'in_menu' => 'wpbc',
209 'menu_title' => '+ ' . ucwords( __( 'Add booking', 'booking' ) ),
210 'page_header' => ucwords( __( 'Add booking', 'booking' ) ),
211 'browser_header' => ucwords( __( 'Add booking', 'booking' ) ) . ' - ' . __( 'Booking Calendar', 'booking' ),
212 'user_role' => get_bk_option( 'booking_user_role_addbooking' ),
213 ) );
214
215 self::$instance->admin_menu['resources'] = new WPBC_Admin_Menus( 'wpbc-resources', array(
216 'in_menu' => 'wpbc',
217 'menu_title' => __( 'Resources', 'booking' ),
218 'page_header' => ucwords( __( 'Booking resources', 'booking' ) ),
219 'browser_header' => __( 'Resources', 'booking' ) . ' - ' . __( 'Booking Calendar', 'booking' ),
220 'user_role' => ( ( class_exists( 'wpdev_bk_personal' ) ) ? get_bk_option( 'booking_user_role_resources' )
221 : get_bk_option( 'booking_user_role_settings' ) ),
222 ) );
223
224 self::$instance->admin_menu['availability'] = new WPBC_Admin_Menus( // FixIn: 9.3.0.1.
225 'wpbc-availability', array(
226 'in_menu' => 'wpbc',
227 'menu_title' => ucwords( __( 'Availability', 'booking' ) ),
228 'page_header' => ucwords( __( 'Availability', 'booking' ) ),
229 'browser_header' => ucwords( __( 'Availability', 'booking' ) ) . ' - ' . __( 'Booking Calendar', 'booking' ),
230 'user_role' => get_bk_option( 'booking_user_role_availability' ),
231 ) );
232
233 if ( class_exists( 'wpdev_bk_biz_m' ) ) {
234 self::$instance->admin_menu['prices'] = new WPBC_Admin_Menus( 'wpbc-prices', array(
235 'in_menu' => 'wpbc',
236 'menu_title' => __( 'Prices', 'booking' ),
237 'page_header' => ucwords( __( 'Booking Prices', 'booking' ) ),
238 'browser_header' => __( 'Prices', 'booking' ) . ' - ' . __( 'Booking Calendar', 'booking' ),
239 'user_role' => get_bk_option( 'booking_user_role_prices' ), //FixIn: 9.8.15.2.6
240 ) );
241 }
242
243 self::$instance->admin_menu['services'] = new WPBC_Admin_Menus( 'wpbc-services', array(
244 'in_menu' => 'wpbc',
245 'menu_title' => __( 'Services', 'booking' ),
246 'page_header' => __( 'Services', 'booking' ),
247 'browser_header' => __( 'Services', 'booking' ) . ' - ' . __( 'Booking Calendar', 'booking' ),
248 'user_role' => get_bk_option( 'booking_user_role_settings' ),
249 ) );
250
251 self::$instance->admin_menu['settings'] = new WPBC_Admin_Menus( 'wpbc-settings', array(
252 'in_menu' => 'wpbc',
253 'menu_title' => __( 'Settings', 'booking' ),
254 'page_header' => __( 'General Settings', 'booking' ),
255 'browser_header' => __( 'Settings', 'booking' ) . ' - ' . __( 'Booking Calendar', 'booking' ),
256 'user_role' => get_bk_option( 'booking_user_role_settings' ),
257 ) );
258
259 if ( ( wpbc_is_user_can_access_wizard_page() ) && ( ! wpbc_setup_wizard_page__is_all_steps_completed() ) ) {
260
261 $setup_steps = new WPBC_SETUP_WIZARD_STEPS();
262
263 self::$instance->admin_menu['setup'] = new WPBC_Admin_Menus( 'wpbc-setup', array(
264 'in_menu' => 'wpbc',
265 'menu_title' => $setup_steps->get_plugin_menu_title__setup_progress(),
266 'page_header' => ucwords( __( 'Setup', 'booking' ) ),
267 'browser_header' => ucwords( __( 'Setup', 'booking' ) ) . ' - ' . __( 'Booking Calendar', 'booking' ),
268 'user_role' => get_bk_option( 'booking_user_role_settings' ),
269 ) );
270 }
271
272
273 $simulate_user_id = wpbc_mu__is_simulated_login_as_user();
274 if ( ! empty( $simulate_user_id ) ) {
275
276 $custom_user = get_userdata( $simulate_user_id );
277
278 self::$instance->admin_menu['log_off'] = new WPBC_Admin_Menus( 'wpbc-log-off', array(
279 'in_menu' => 'wpbc',
280 'menu_title' => '<span style="color:#fffcdf;font-size: 11px;font-weight: 400;" title="' . esc_attr( __( 'Log out as regular user and login as super booking admin user', 'booking' ) ) . '">' . __( 'Back to Super Admin', 'booking' ) . '<span>',
281 'page_header' => ucwords( sprintf( __( 'Need even more functionality? Check %1$s higher versions %2$s', 'booking' ), '', '' ) ), /* translators: 1: ... */
282 'browser_header' => 'Log In as Super Admin',
283 'user_role' => get_bk_option( 'booking_user_role_booking' ),
284 ) );
285 }
286
287 }
288
289
290
291 /**
292 * Get Menu Object
293 *
294 * @param type - menu type
295 * @return boolean
296 */
297 public function get_menu_object( $type ) {
298
299 if ( isset( self::$instance->admin_menu[ $type ] ) )
300 return self::$instance->admin_menu[ $type ];
301 else
302 return false;
303 }
304
305
306 // Include Files
307 private function includes() {
308 require_once WPBC_PLUGIN_DIR . '/includes/wpbc-include.php' ;
309 }
310
311
312 private function define_version() {
313
314 // GET VERSION NUMBER
315 $plugin_data = wpbc_file__read_header_info( WPBC_FILE, array(
316 'Name' => 'Plugin Name',
317 'PluginURI' => 'Plugin URI',
318 'Version' => 'Version',
319 'Description' => 'Description',
320 'Author' => 'Author',
321 'AuthorURI' => 'Author URI',
322 'TextDomain' => 'Text Domain',
323 'DomainPath' => 'Domain Path',
324 ), 'plugin' );
325 if ( ! defined( 'WPDEV_BK_VERSION' ) ) {
326 define( 'WPDEV_BK_VERSION', $plugin_data['Version'] );
327 }
328 }
329
330
331 // Cloning instances of the class is forbidden
332 public function __clone() {
333
334 _doing_it_wrong( __FUNCTION__, esc_html__( 'Action is not allowed!', 'booking' ), '1.0' );
335 }
336
337
338 // Unserializing instances of the class is forbidden
339 public function __wakeup() {
340
341 _doing_it_wrong( __FUNCTION__, esc_html__( 'Action is not allowed!', 'booking' ), '1.0' );
342 }
343
344
345 // Initialization
346 private function start(){
347
348 if ( ( defined( 'DOING_AJAX' ) ) && ( DOING_AJAX ) ){ // New A J A X R e s p o n d e r
349
350 if ( 1 ) {
351 $wpdev_booking_obj_in_ajax = new wpdev_booking(); // GO
352 } else {
353 if ( class_exists( 'wpdev_bk_personal' ) ) {
354 $wpdev_bk_personal_in_ajax = new wpdev_bk_personal();
355 }
356 }
357
358 require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-ajax.php'; // Ajax
359
360 return false;
361 } else { // Usual Loading of plugin
362
363 // We are having Response, its executed in other file: wpbc-response.php
364 if ( WP_BK_RESPONSE )
365 return false;
366
367 if( is_admin() ) {
368 // Define Notices System
369 self::$instance->notice = new WPBC_Notices();
370 }
371
372 // Normal Start
373 self::$instance->booking_obj = new wpdev_booking(); // GO
374
375 // Cron Jobs ..... /////////////////////////////////////////////////
376 self::$instance->cron = new WPBC_Cron();
377 ////////////////////////////////////////////////////////////////////
378 }
379 return true;
380 }
381
382 }
383
384 else: // Its seems that some instance of Booking Calendar still activted!!!
385
386 // FixIn: 7.0.1.6.
387 global $wp_version;
388 $wpbc_min_wp_version = version_compare( WP_BK_MIN_WP_VERSION, $wp_version, '<=' );
389
390 // FixIn: 7.0.1.6.
391 function wpbc_show_min_wp_version_error() {
392
393 $message_type = 'error';
394 $title = __( 'Error' , 'booking') . '!';
395
396
397 $message = 'Booking Calendar ';
398
399 $booking_version_num = get_option( 'booking_version_num');
400 if ( ! empty( $booking_version_num ) )
401 $message .= '<strong>' . $booking_version_num . '</strong> ';
402
403
404 global $wp_version;
405
406 $message .= sprintf( 'require minimum %s . You are using %s. '
407 , ' <strong>' . 'WordPress ' . WP_BK_MIN_WP_VERSION . '</strong>'
408 , ' <strong>' . 'WordPress ' . $wp_version . '</strong>' );
409 if ( current_user_can( 'update_core' ) ){
410 $message .= ' <a href="' . esc_url( self_admin_url( 'update-core.php' ) ) . '">' . 'Return to Dashboard &rarr; Updates' . '</a>';
411 }
412
413
414 $message_content = '';
415
416 $message_content .= '<div class="clear"></div>';
417
418 $message_content .= '<div class="updated wpbc-settings-notice notice-' . $message_type . ' ' . $message_type . '" style="text-align:left;padding:10px;">';
419
420 if ( ! empty( $title ) )
421 $message_content .= '<strong>' . esc_js( $title ) . '</strong> ';
422
423 $message_content .= html_entity_decode( esc_js( $message ) ,ENT_QUOTES) ;
424
425 $message_content .= '</div>';
426
427 $message_content .= '<div class="clear"></div>';
428
429 echo wp_kses_post( $message_content );
430 }
431
432 function wpbc_show_activation_error() {
433
434 $message_type = 'error';
435 $title = __( 'Error' , 'booking') . '!';
436 $message = 'Please deactivate previous old version of' . ' ' . 'Booking Calendar';
437
438 $booking_version_num = get_option( 'booking_version_num');
439 if ( ! empty( $booking_version_num ) )
440 $message .= ' <strong>' . $booking_version_num . '</strong>';
441
442
443 $is_delete_if_deactive = get_bk_option( 'booking_is_delete_if_deactive' ); // check
444
445 if ( $is_delete_if_deactive == 'On' ) {
446
447 $message .= '<br/><br/> <strong>Warning!</strong> ' . 'All plugin data will be deleted when plugin had deactivated.' . ' '
448 . sprintf( 'If you want to save your plugin data, please uncheck the %s"Delete plugin data"%s at the', '<strong>', '</strong>') . ' ' . __( 'Settings' , 'booking' ) . '.';
449 }
450
451 $message_content = '';
452
453 $message_content .= '<div class="clear"></div>';
454
455 $message_content .= '<div class="updated wpbc-settings-notice notice-' . $message_type . ' ' . $message_type . '" style="text-align:left;padding:10px;">';
456
457 if ( ! empty( $title ) )
458 $message_content .= '<strong>' . esc_js( $title ) . '</strong> ';
459
460 $message_content .= html_entity_decode( esc_js( $message ) ,ENT_QUOTES) ;
461
462 $message_content .= '</div>';
463
464 $message_content .= '<div class="clear"></div>';
465
466 echo wp_kses_post( $message_content );
467 }
468
469
470 if ( ! $wpbc_min_wp_version ) // FixIn: 7.0.1.6.
471 add_action('admin_notices', 'wpbc_show_min_wp_version_error');
472 else
473 add_action('admin_notices', 'wpbc_show_activation_error');
474
475 return; // Exit
476
477 endif;
478
479
480 /**
481 * The main function responsible for returning the one true Instance to functions everywhere.
482 *
483 * Example: <?php $wpbc = WPBC(); ?>
484 */
485 function WPBC() {
486 return Booking_Calendar::init();
487 }
488
489
490
491 // Start
492 WPBC();
493
494
495
496 //if ( ! defined( 'SAVEQUERIES') ) define('SAVEQUERIES', true);
497
498 //add_action( 'admin_footer', 'wpbc_show_debug_info', 130 );
499 function wpbc_show_debug_info() {
500
501 $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 */
502 $request_uri = $server_request_uri; //FixIn:5.4.1
503 if ( strpos( $request_uri, 'page=wpbc') === false ) {
504 return;
505 }
506 echo '<div style="width:800px;margin:10px auto;"><style type="text/css"> a:link{background: inherit !important; } pre { white-space: pre-wrap; }</style>';
507 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure_phpinfo
508 phpinfo(); echo '</div>'; return;
509
510 ?><div style="width:auto;margin:0 0 0 215px;font-size:11px; "><?php
511
512 // SYSTEM INFO SHOWING ////////////////////////////////////////////////////////
513
514 //Note firstly need to define this in functions.php file: define('SAVEQUERIES', true);
515 global $wpdb;
516 echo '<div class="clear"></div>START SYSTEM<pre>';
517 $qq_kk = 0;
518 $total_time = 0;
519 $total_num = 0;
520 foreach ( $wpdb->queries as $qq_k => $qq ) {
521 if (
522 ( strpos( $qq[0], 'booking') !== false )
523
524 ) {
525 if ( $qq[1] > 0.002 ) { echo '<div style="color:#A77;font-weight:bold;">'; }
526 debuge($qq_kk++, $qq);
527 $total_time += $qq[1];
528 $total_num++;
529 if ( $qq[1] > 0.002 ) { echo '</div>'; }
530 }
531 }
532
533 echo '<div><pre class="prettyprint linenums" style="font-size:18px;">[' . esc_html( $total_num . '/' . $total_time ) . '] WPBC Requests TOTAL TIME</pre></div>';
534
535 echo '<div class="clear"></div>';
536
537 echo '<div><pre class="prettyprint linenums" style="font-size:18px;">' . esc_html( get_num_queries() . '/' . timer_stop( 0, 3 ) ) . 'qps</pre></div>';
538
539 echo '<div class="clear"></div>';
540
541 echo "</pre>";
542 ?><br/><br/><br/><br/><br/><br/><?php
543 echo '<div class="clear"></div>';
544
545 ////////////////////////////////////////////////////////////////////////////////
546 ?></div><?php
547
548 echo '</div>';
549 }
550