84 lines
3.0 KiB
PHP
84 lines
3.0 KiB
PHP
<?php
|
|
/**
|
|
* Tweaks for the health-check screens.
|
|
*
|
|
* @since 1.0.0
|
|
* @package wp-sqlite-integration
|
|
*/
|
|
|
|
/**
|
|
* Filter debug data in site-health screen.
|
|
*
|
|
* When the plugin gets merged in wp-core, these should be merged in src/wp-admin/includes/class-wp-debug-data.php
|
|
* See https://github.com/WordPress/wordpress-develop/pull/3220/files
|
|
*
|
|
* @param array $info The debug data.
|
|
*/
|
|
function sqlite_plugin_filter_debug_data( $info ) {
|
|
$db_engine = defined( 'DB_ENGINE' ) && 'sqlite' === DB_ENGINE ? 'sqlite' : 'mysql';
|
|
|
|
$info['wp-constants']['fields']['DB_ENGINE'] = array(
|
|
'label' => 'DB_ENGINE',
|
|
'value' => ( defined( 'DB_ENGINE' ) ? DB_ENGINE : __( 'Undefined', 'sqlite-database-integration' ) ),
|
|
'debug' => ( defined( 'DB_ENGINE' ) ? DB_ENGINE : 'undefined' ),
|
|
);
|
|
|
|
$info['wp-database']['fields']['db_engine'] = array(
|
|
'label' => __( 'Database type', 'sqlite-database-integration' ),
|
|
'value' => 'sqlite' === $db_engine ? 'SQLite' : 'MySQL/MariaDB',
|
|
);
|
|
|
|
if ( 'sqlite' === $db_engine ) {
|
|
$info['wp-database']['fields']['database_version'] = array(
|
|
'label' => __( 'SQLite version', 'sqlite-database-integration' ),
|
|
'value' => class_exists( 'SQLite3' ) ? SQLite3::version()['versionString'] : null,
|
|
);
|
|
|
|
$info['wp-database']['fields']['database_file'] = array(
|
|
'label' => __( 'Database file', 'sqlite-database-integration' ),
|
|
'value' => FQDB,
|
|
'private' => true,
|
|
);
|
|
|
|
$info['wp-database']['fields']['database_size'] = array(
|
|
'label' => __( 'Database size', 'sqlite-database-integration' ),
|
|
'value' => size_format( filesize( FQDB ) ),
|
|
);
|
|
|
|
unset( $info['wp-database']['fields']['extension'] );
|
|
unset( $info['wp-database']['fields']['server_version'] );
|
|
unset( $info['wp-database']['fields']['client_version'] );
|
|
unset( $info['wp-database']['fields']['database_host'] );
|
|
unset( $info['wp-database']['fields']['database_user'] );
|
|
unset( $info['wp-database']['fields']['database_name'] );
|
|
unset( $info['wp-database']['fields']['database_charset'] );
|
|
unset( $info['wp-database']['fields']['database_collate'] );
|
|
unset( $info['wp-database']['fields']['max_allowed_packet'] );
|
|
unset( $info['wp-database']['fields']['max_connections'] );
|
|
}
|
|
|
|
return $info;
|
|
}
|
|
add_filter( 'debug_information', 'sqlite_plugin_filter_debug_data' ); // Filter debug data in site-health screen.
|
|
|
|
/**
|
|
* Filter site_status tests in site-health screen.
|
|
*
|
|
* When the plugin gets merged in wp-core, these should be merged in src/wp-admin/includes/class-wp-site-health.php
|
|
*
|
|
* @param array $tests The tests.
|
|
* @return array
|
|
*/
|
|
function sqlite_plugin_filter_site_status_tests( $tests ) {
|
|
$db_engine = defined( 'DB_ENGINE' ) && 'sqlite' === DB_ENGINE ? 'sqlite' : 'mysql';
|
|
|
|
if ( 'sqlite' === $db_engine ) {
|
|
unset( $tests['direct']['utf8mb4_support'] );
|
|
unset( $tests['direct']['sql_server'] );
|
|
unset( $tests['direct']['persistent_object_cache'] ); // Throws an error because DB_NAME is not defined.
|
|
}
|
|
|
|
return $tests;
|
|
}
|
|
add_filter( 'site_status_tests', 'sqlite_plugin_filter_site_status_tests' );
|