system(); foreach ( self::$status as $section_name => $section_statuses ) { ?>
'; break; case 'yellow': echo '
'; break; case 'red': echo '
'; break; case 'info': echo '
i
'; break; } ?>
array( 'href' => array(), 'title' => array(), ), 'br' => array(), 'em' => array(), 'strong' => array(), 'span' => array(), ) ); ?>
add( 'Plugin config', array( 'check_name' => 'Plugin name', 'tooltip' => '', 'value' => QUADMENU_PLUGIN_NAME, 'status' => 'info', ) ); // Plugin version $this->add( 'Plugin config', array( 'check_name' => 'Plugin version', 'tooltip' => '', 'value' => QUADMENU_PLUGIN_VERSION, 'status' => 'info', ) ); // Redux version if ( class_exists( 'ReduxFramework' ) ) { if ( version_compare( \ReduxFramework::$_version, '3.6.5' ) < 0 ) { $this->add( 'Plugin config', array( 'check_name' => 'Redux version', 'tooltip' => '', 'value' => sprintf( '%1$s - %2$s %4$s', \ReduxFramework::$_version, esc_html__( 'Your Redux version is outdated: ', 'quadmenu' ), 'https://es.wordpress.org/plugins/redux-framework/', esc_html__( 'Please install it as a plugin', 'quadmenu' ) ), 'status' => 'red', ) ); } else { $this->add( 'Plugin config', array( 'check_name' => 'Redux version', 'tooltip' => '', 'value' => \ReduxFramework::$_version, 'status' => 'green', ) ); } } else { $this->add( 'Plugin config', array( 'check_name' => 'Redux version', 'tooltip' => '', 'value' => esc_html__( 'Activate ReduxFramework', 'quadmenu' ), 'status' => 'red', ) ); } // Menu Locations if ( is_array( $quadmenu_active_locations ) ) { $this->add( 'Plugin config', array( 'check_name' => 'Active Locations', 'tooltip' => '', 'value' => sprintf( esc_html__( 'You have %s active menu locations', 'quadmenu' ), count( $quadmenu_active_locations ) ), 'status' => count( $quadmenu_active_locations ) ? 'green' : 'info', ) ); } // Server status // ----------------------------------------------------------------- // server info $this->add( 'php.ini configuration', array( 'check_name' => 'Server software', 'tooltip' => '', 'value' => esc_html( $_SERVER['SERVER_SOFTWARE'] ), 'status' => 'info', ) ); // php version $this->add( 'php.ini configuration', array( 'check_name' => 'PHP Version', 'tooltip' => '', 'value' => phpversion(), 'status' => 'info', ) ); // post_max_size $this->add( 'php.ini configuration', array( 'check_name' => 'post_max_size', 'tooltip' => '', 'value' => sprintf( '%1$s - %2$s', ini_get( 'post_max_size' ), esc_html__( 'You cannot upload images, themes and plugins that have a size bigger than this value', 'quadmenu' ) ), 'status' => 'info', ) ); // php time limit $max_execution_time = ini_get( 'max_execution_time' ); if ( $max_execution_time == 0 or $max_execution_time >= 300 ) { $this->add( 'php.ini configuration', array( 'check_name' => 'max_execution_time', 'tooltip' => '', 'value' => esc_html( $max_execution_time ), 'status' => 'green', ) ); } else { $this->add( 'php.ini configuration', array( 'check_name' => 'max_execution_time', 'tooltip' => '', 'value' => sprintf( '%1$s - %2$s %4$s', $max_execution_time, esc_html__( 'To import the demo content 300 seconds of max execution time is required. See: ', 'quadmenu' ), 'http://codex.wordpress.org/Common_WordPress_Errors#Maximum_execution_time_exceeded', esc_html__( 'Increasing max execution to PHP', 'quadmenu' ) ), 'status' => 'red', ) ); } // php max input vars $max_input_vars = ini_get( 'max_input_vars' ); if ( $max_input_vars == 0 or $max_input_vars >= 2000 ) { $this->add( 'php.ini configuration', array( 'check_name' => 'max_input_vars', 'tooltip' => '', 'value' => esc_html( $max_input_vars ), 'status' => 'green', ) ); } else { $this->add( 'php.ini configuration', array( 'check_name' => 'max_input_vars', 'tooltip' => '', 'value' => esc_html( $max_input_vars ), 'status' => 'yellow', ) ); } // suhosin if ( extension_loaded( 'suhosin' ) !== true ) { $this->add( 'php.ini configuration', array( 'check_name' => 'SUHOSIN Installed', 'tooltip' => '', 'value' => 'False', 'status' => 'green', ) ); } else { $this->add( 'php.ini configuration', array( 'check_name' => 'SUHOSIN Installed', 'tooltip' => '', 'value' => sprintf( '%1$s - %2$s', esc_html__( 'SUHOSIN is installed', 'quadmenu' ), esc_html__( 'It may cause problems with saving the plugin panel if it\'s not properly configured', 'quadmenu' ) ), 'status' => 'yellow', ) ); } $response_code = wp_remote_retrieve_response_code( wp_remote_get( QUADMENU_PLUGIN_URL . 'assets/frontend/less/quadmenu-locations.less', array( 'timeout' => 20, 'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0', ) ) ); // mime types if ( $response_code == 200 ) { $this->add( 'Compiler', array( 'check_name' => esc_html__( 'LESS files allowed', 'quadmenu' ), 'tooltip' => '', 'value' => $response_code, 'status' => 'green', ) ); } else { $this->add( 'Compiler', array( 'check_name' => esc_html__( 'Can\'t compile stylesheets', 'quadmenu' ), 'tooltip' => '', 'value' => sprintf( '%1$s error - %2$s', $response_code, esc_html__( 'Can\'t download LESS mime types', 'quadmenu' ) ), 'status' => 'red', ) ); } // mime types if ( wp_is_writable( QUADMENU_UPLOAD_DIR ) ) { $this->add( 'Compiler', array( 'check_name' => esc_html__( 'Folder is writable', 'quadmenu' ), 'tooltip' => '', 'value' => QUADMENU_UPLOAD_DIR, 'status' => 'green', ) ); } else { $this->add( 'Compiler', array( 'check_name' => esc_html__( 'Can\'t write uploads folder', 'quadmenu' ), 'tooltip' => '', 'value' => QUADMENU_UPLOAD_DIR, 'status' => 'red', ) ); } // WordPress // ----------------------------------------------------------------- // home url $this->add( 'WordPress and plugins', array( 'check_name' => 'WP Home URL', 'tooltip' => 'test tooltip', 'value' => home_url(), 'status' => 'info', ) ); // site url $this->add( 'WordPress and plugins', array( 'check_name' => 'WP Site URL', 'tooltip' => 'test tooltip', 'value' => site_url(), 'status' => 'info', ) ); // home_url == site_url if ( home_url() != site_url() ) { $this->add( 'WordPress and plugins', array( 'check_name' => 'Home URL - Site URL', 'tooltip' => 'Home URL not equal to Site URL, this may indicate a problem with your WordPress configuration.', 'value' => sprintf( '%1$s - %2$s', esc_html__( 'Home URL != Site URL', 'quadmenu' ), esc_html__( 'Home URL not equal to Site URL, this may indicate a problem with your WordPress configuration.', 'quadmenu' ) ), 'status' => 'red', ) ); } // version $this->add( 'WordPress and plugins', array( 'check_name' => 'WP version', 'tooltip' => '', 'value' => get_bloginfo( 'version' ), 'status' => 'info', ) ); // is_multisite $this->add( 'WordPress and plugins', array( 'check_name' => 'WP multisite enabled', 'tooltip' => '', 'value' => is_multisite() ? 'Yes' : 'No', 'status' => 'info', ) ); // language $this->add( 'WordPress and plugins', array( 'check_name' => 'WP Language', 'tooltip' => '', 'value' => get_locale(), 'status' => 'info', ) ); // theme locations if ( ! is_array( $_wp_registered_nav_menus ) || ! count( $_wp_registered_nav_menus ) ) { $this->add( 'WordPress and plugins', array( 'check_name' => 'WP Menu Locations', 'tooltip' => '', 'value' => esc_html__( 'Your theme doesn\'t natively support menus' ), 'status' => 'red', ) ); } else { $this->add( 'WordPress and plugins', array( 'check_name' => 'WP Menu Locations', 'tooltip' => '', 'value' => count( $_wp_registered_nav_menus ), 'status' => 'green', ) ); } // memory limit $memory_limit = $this->wp_memory_notation_to_number( WP_MEMORY_LIMIT ); if ( $memory_limit < 67108864 ) { $this->add( 'WordPress and plugins', array( 'check_name' => 'WP Memory Limit', 'tooltip' => '', 'value' => sprintf( '%1$s - %2$s %4$s', size_format( $memory_limit ) . '/request', esc_html__( 'We recommend setting memory to at least 64MB. The Plugin is well tested with a 40MB/request limit, but if you are using multiple plugins that may not be enough. See: ', 'quadmenu' ), 'http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP', esc_html__( 'Increasing memory allocated to PHP', 'quadmenu' ) ), 'status' => 'red', ) ); } else { $this->add( 'WordPress and plugins', array( 'check_name' => 'WP Memory Limit', 'tooltip' => '', 'value' => size_format( $memory_limit ) . '/request', 'status' => 'green', ) ); } // wp debug if ( defined( 'WP_DEBUG' ) and WP_DEBUG === true ) { $this->add( 'WordPress and plugins', array( 'check_name' => 'WP_DEBUG', 'tooltip' => '', 'value' => esc_html__( 'WP_DEBUG is enabled', 'quadmenu' ), 'status' => 'yellow', ) ); } else { $this->add( 'WordPress and plugins', array( 'check_name' => 'WP_DEBUG', 'tooltip' => '', 'value' => 'False', 'status' => 'green', ) ); } // caching $caching_plugin_list = array( 'wp-super-cache/wp-cache.php' => array( 'name' => 'WP super cache', 'status' => 'green', ), 'w3-total-cache/w3-total-cache.php' => array( 'name' => 'W3 total cache', 'status' => 'green', ), 'wp-fastest-cache/wpFastestCache.php' => array( 'name' => 'WP Fastest Cache (We haven\'t tested this plugin.)', 'status' => 'yellow', ), 'wp-rocket/wp-rocket.php' => array( 'name' => 'WP Rocket (We haven\'t tested this plugin.)', 'status' => 'yellow', ), ); $active_plugins = get_plugins(); $caching_plugin = esc_html__( 'No caching plugin detected', 'quadmenu' ); $caching_plugin_status = 'yellow'; foreach ( array_keys( $active_plugins ) as $active_plugin ) { if ( isset( $caching_plugin_list[ $active_plugin ] ) ) { $caching_plugin = $caching_plugin_list[ $active_plugin ]['name']; $caching_plugin_status = $caching_plugin_list[ $active_plugin ]['status']; break; } } $this->add( 'WordPress and plugins', array( 'check_name' => 'Caching plugin', 'tooltip' => '', 'value' => $caching_plugin, 'status' => $caching_plugin_status, ) ); } function wp_memory_notation_to_number( $size ) { $l = substr( $size, -1 ); $ret = substr( $size, 0, -1 ); switch ( strtoupper( $l ) ) { case 'P': $ret *= 1024; case 'T': $ret *= 1024; case 'G': $ret *= 1024; case 'M': $ret *= 1024; case 'K': $ret *= 1024; } return $ret; } public static function instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } }