> Concerned user's capabilities. */ public function filter_user_has_cap( array $user_caps, array $required_caps, array $args, WP_User $user ) { if ( 'view_query_monitor' !== $args[0] ) { return $user_caps; } if ( array_key_exists( 'view_query_monitor', $user_caps ) ) { return $user_caps; } if ( ! is_multisite() && user_can( $args[1], 'manage_options' ) ) { $user_caps['view_query_monitor'] = true; } return $user_caps; } /** * @return void */ public function action_plugins_loaded() { // Hide QM itself from output by default: if ( ! defined( 'QM_HIDE_SELF' ) ) { define( 'QM_HIDE_SELF', true ); } /** * Filters the collectors that are being added. * * @since 2.11.2 * * @param array $collectors Array of collector instances. * @param QueryMonitor $instance QueryMonitor instance. */ foreach ( apply_filters( 'qm/collectors', array(), $this ) as $collector ) { QM_Collectors::add( $collector ); } # Load dispatchers: foreach ( (array) glob( $this->plugin_path( 'dispatchers/*.php' ) ) as $file ) { include_once $file; } /** * Filters the dispatchers that are being added. * * @since 2.11.2 * * @param array $dispatchers Array of dispatcher instances. * @param QueryMonitor $instance QueryMonitor instance. */ foreach ( apply_filters( 'qm/dispatchers', array(), $this ) as $dispatcher ) { QM_Dispatchers::add( $dispatcher ); } } /** * @return void */ public function action_init() { load_plugin_textdomain( 'query-monitor', false, dirname( $this->plugin_base() ) . '/languages' ); } /** * @return void */ public static function symlink_warning() { $db = WP_CONTENT_DIR . '/db.php'; trigger_error( sprintf( /* translators: %s: Symlink file location */ esc_html__( 'The symlink at %s is no longer pointing to the correct location. Please remove the symlink, then deactivate and reactivate Query Monitor.', 'query-monitor' ), '' . esc_html( $db ) . '' ), E_USER_WARNING ); } /** * Registers the Query Monitor user capability group for the Members plugin. * * @link https://wordpress.org/plugins/members/ * * @return void */ public function action_register_members_groups() { members_register_cap_group( 'query_monitor', array( 'label' => __( 'Query Monitor', 'query-monitor' ), 'caps' => array( 'view_query_monitor', ), 'icon' => 'dashicons-admin-tools', 'priority' => 30, ) ); } /** * Registers the View Query Monitor user capability for the Members plugin. * * @link https://wordpress.org/plugins/members/ * * @return void */ public function action_register_members_caps() { members_register_cap( 'view_query_monitor', array( 'label' => _x( 'View Query Monitor', 'Human readable label for the user capability required to view Query Monitor.', 'query-monitor' ), 'group' => 'query_monitor', ) ); } /** * Registers the Query Monitor user capability group for the User Role Editor plugin. * * @link https://wordpress.org/plugins/user-role-editor/ * * @param array> $groups Array of existing groups. * @return array> Updated array of groups. */ public function filter_ure_groups( array $groups ) { $groups['query_monitor'] = array( 'caption' => esc_html__( 'Query Monitor', 'query-monitor' ), 'parent' => 'custom', 'level' => 2, ); return $groups; } /** * Registers the View Query Monitor user capability for the User Role Editor plugin. * * @link https://wordpress.org/plugins/user-role-editor/ * * @param array> $caps Array of existing capabilities. * @return array> Updated array of capabilities. */ public function filter_ure_caps( array $caps ) { $caps['view_query_monitor'] = array( 'custom', 'query_monitor', ); return $caps; } /** * @return void */ public function action_cease() { // iterate collectors, call tear_down // discard all collected data QM_Collectors::cease(); // remove dispatchers or prevent them from doing anything QM_Dispatchers::cease(); } /** * @param string $file * @return self */ public static function init( $file = null ) { static $instance = null; if ( ! $instance ) { $instance = new QueryMonitor( $file ); } return $instance; } }
Fatal error: Uncaught Error: Class 'QueryMonitor' not found in /home/mrfilame/public_html/wp-content/plugins/query-monitor/query-monitor.php:93 Stack trace: #0 /home/mrfilame/public_html/wp-settings.php(428): include_once() #1 /home/mrfilame/public_html/wp-config.php(96): require_once('/home/mrfilame/...') #2 /home/mrfilame/public_html/wp-load.php(50): require_once('/home/mrfilame/...') #3 /home/mrfilame/public_html/wp-blog-header.php(13): require_once('/home/mrfilame/...') #4 /home/mrfilame/public_html/index.php(17): require('/home/mrfilame/...') #5 {main} thrown in /home/mrfilame/public_html/wp-content/plugins/query-monitor/query-monitor.php on line 93