class-adbc-automation-endpoints.php
3 months ago
class-adbc-common-endpoints.php
4 months ago
class-adbc-cron-jobs-endpoints.php
3 months ago
class-adbc-general-cleanup-endpoints.php
3 months ago
class-adbc-info-endpoints.php
3 months ago
class-adbc-logs-endpoints.php
3 months ago
class-adbc-options-endpoints.php
3 months ago
class-adbc-post-types-endpoints.php
3 months ago
class-adbc-posts-meta-endpoints.php
3 months ago
class-adbc-settings-endpoints.php
3 months ago
class-adbc-tables-endpoints.php
3 months ago
class-adbc-transients-endpoints.php
3 months ago
class-adbc-users-meta-endpoints.php
3 months ago
class-adbc-info-endpoints.php
155 lines
| 1 | <?php |
| 2 | |
| 3 | // Exit if accessed directly |
| 4 | if ( ! defined( 'ABSPATH' ) ) |
| 5 | exit; |
| 6 | |
| 7 | /** |
| 8 | * ADBC Info Endpoints. |
| 9 | * |
| 10 | * This class provides the endpoints (controllers) for the info routes. |
| 11 | */ |
| 12 | class ADBC_Info_Endpoints { |
| 13 | |
| 14 | /** |
| 15 | * Get the system info. |
| 16 | * |
| 17 | * @return WP_REST_Response The system info. |
| 18 | */ |
| 19 | public static function get_system_information() { |
| 20 | |
| 21 | try { |
| 22 | |
| 23 | global $wpdb; |
| 24 | $settings = ADBC_Settings::instance()->get_settings(); |
| 25 | |
| 26 | // Get locale info. |
| 27 | $locale = get_locale(); |
| 28 | |
| 29 | // Get theme info |
| 30 | $theme_data = wp_get_theme(); |
| 31 | $theme = $theme_data->get( 'Name' ) . ' ' . $theme_data->get( 'Version' ); |
| 32 | $parent_theme = "N/A"; |
| 33 | if ( $theme_data->parent() ) { |
| 34 | $parent_theme_data = $theme_data->parent(); |
| 35 | $parent_theme = $parent_theme_data->get( 'Name' ) . ' ' . $parent_theme_data->get( 'Version' ); |
| 36 | } |
| 37 | |
| 38 | $adbc_plugin_type = ADBC_VERSION_TYPE; |
| 39 | $adbc_plugin_type = ADBC_IS_PRO_VERSION ? 'PRO' : $adbc_plugin_type; |
| 40 | |
| 41 | $data = array( |
| 42 | 'wordpress' => array( |
| 43 | 'title' => __( 'WordPress', 'advanced-database-cleaner' ), |
| 44 | 'generated_on' => date( 'Y-m-d H:i:s' ), |
| 45 | 'data' => array( |
| 46 | __( 'Version', 'advanced-database-cleaner' ) . ": " . get_bloginfo( 'version' ), |
| 47 | __( 'Site URL', 'advanced-database-cleaner' ) . ": " . site_url(), |
| 48 | __( 'Home URL', 'advanced-database-cleaner' ) . ": " . home_url(), |
| 49 | __( 'Multisite', 'advanced-database-cleaner' ) . ": " . ( is_multisite() ? __( 'Yes', 'advanced-database-cleaner' ) : __( 'No', 'advanced-database-cleaner' ) ), |
| 50 | __( 'Sites', 'advanced-database-cleaner' ) . ": " . ADBC_Sites::instance()->count_sites_in_multisite(), |
| 51 | __( 'Language', 'advanced-database-cleaner' ) . ": " . ( ! empty( $locale ) ? $locale : 'en_US' ), |
| 52 | __( 'Theme', 'advanced-database-cleaner' ) . ": " . $theme, |
| 53 | __( 'Parent theme', 'advanced-database-cleaner' ) . ": " . $parent_theme, |
| 54 | __( 'Memory limit', 'advanced-database-cleaner' ) . ": " . ( defined( 'WP_MEMORY_LIMIT' ) ? WP_MEMORY_LIMIT : 'N/A' ), |
| 55 | __( 'Autoload warning threshold', 'advanced-database-cleaner' ) . ": " . ADBC_Common_Utils::format_bytes( ADBC_Options::get_autoload_warning_limit() ) |
| 56 | ) |
| 57 | ), |
| 58 | 'database' => array( |
| 59 | 'title' => __( 'Database', 'advanced-database-cleaner' ), |
| 60 | 'data' => array( |
| 61 | __( 'Database size', 'advanced-database-cleaner' ) . ": " . ADBC_Database::get_database_size_sql(), |
| 62 | __( 'Total tables', 'advanced-database-cleaner' ) . ": " . ADBC_Tables::get_total_tables_count() . " (" . ADBC_Tables::get_total_tables_with_invalid_prefix_count() . " " . __( 'with invalid prefix', 'advanced-database-cleaner' ) . ")", |
| 63 | __( 'Total options', 'advanced-database-cleaner' ) . ": " . ADBC_Options::get_total_options_count(), |
| 64 | __( 'Total cron jobs', 'advanced-database-cleaner' ) . ": " . ADBC_Cron_Jobs::get_total_cron_jobs_count(), |
| 65 | __( 'Total transients', 'advanced-database-cleaner' ) . ": " . ADBC_Transients::get_total_transients_count(), |
| 66 | __( 'Total user meta', 'advanced-database-cleaner' ) . ": " . ADBC_Users_Meta::get_total_users_meta_count(), |
| 67 | __( 'Total post meta', 'advanced-database-cleaner' ) . ": " . ADBC_Posts_Meta::get_total_posts_meta_count(), |
| 68 | __( 'Total post types', 'advanced-database-cleaner' ) . ": " . ADBC_Post_Types::get_total_post_types_count(), |
| 69 | ) |
| 70 | ), |
| 71 | 'adbc' => array( |
| 72 | 'title' => 'Advanced DB Cleaner', |
| 73 | 'data' => array( |
| 74 | __( 'Version', 'advanced-database-cleaner' ) . ": " . ADBC_PLUGIN_VERSION . ' - ' . $adbc_plugin_type, |
| 75 | __( 'Installed on', 'advanced-database-cleaner' ) . ": " . ADBC_Common_Utils::format_date_friendly( $settings['installed_on'] ), |
| 76 | __( 'License status', 'advanced-database-cleaner' ) . ": " . ( ADBC_VERSION_TYPE === 'PREMIUM' ? ADBC_License_Manager::get_license_status() : 'adbc_hidden' ), |
| 77 | __( 'License plan', 'advanced-database-cleaner' ) . ": " . ( ADBC_VERSION_TYPE === 'PREMIUM' ? ADBC_License_Manager::get_plan_name() : 'adbc_hidden' ), |
| 78 | __( 'License expiry/renewal', 'advanced-database-cleaner' ) . ": " . ( ADBC_VERSION_TYPE === 'PREMIUM' ? ADBC_License_Manager::get_license_expiration() : 'adbc_hidden' ), |
| 79 | ) |
| 80 | ), |
| 81 | 'adbc_settings' => array( |
| 82 | 'title' => __( 'Settings', 'advanced-database-cleaner' ), |
| 83 | 'data' => array( |
| 84 | __( 'Cleanup method', 'advanced-database-cleaner' ) . ": " . $settings['sql_or_native_cleanup_method'], |
| 85 | __( 'Database rows batches', 'advanced-database-cleaner' ) . ": " . $settings['database_rows_batch'], |
| 86 | __( 'Reduce CPU usage', 'advanced-database-cleaner' ) . ": " . ( $settings['reduce_cpu_usage'] === '1' ? __( 'Yes', 'advanced-database-cleaner' ) : __( 'No', 'advanced-database-cleaner' ) ), |
| 87 | __( 'CPU work time', 'advanced-database-cleaner' ) . ": " . $settings['cpu_work_time_ms'], |
| 88 | __( 'CPU rest time', 'advanced-database-cleaner' ) . ": " . $settings['cpu_rest_time_ms'], |
| 89 | __( 'File line batches', 'advanced-database-cleaner' ) . ": " . $settings['file_lines_batch'], |
| 90 | __( 'File content chunks', 'advanced-database-cleaner' ) . ": " . $settings['file_content_chunks'], |
| 91 | __( 'Scan max execution time', 'advanced-database-cleaner' ) . ": " . $settings['scan_max_execution_time'], |
| 92 | __( 'Analytics enabled', 'advanced-database-cleaner' ) . ": " . ( $settings['analytics_enabled'] === '1' ? __( 'Yes', 'advanced-database-cleaner' ) : __( 'No', 'advanced-database-cleaner' ) ), |
| 93 | __( 'Addons activity enabled', 'advanced-database-cleaner' ) . ": " . ( $settings['addons_activity_enabled'] === '1' ? __( 'Yes', 'advanced-database-cleaner' ) : __( 'No', 'advanced-database-cleaner' ) ), |
| 94 | __( 'Show tables with invalid prefix', 'advanced-database-cleaner' ) . ": " . ( $settings['show_tables_with_invalid_prefix'] === '1' ? __( 'Yes', 'advanced-database-cleaner' ) : __( 'No', 'advanced-database-cleaner' ) ), |
| 95 | __( 'Last successful analytics execution', 'advanced-database-cleaner' ) . ": " . ADBC_Common_Utils::format_timestamp_friendly( $settings['analytics_execution']['success'] ), |
| 96 | __( 'Last failed analytics execution', 'advanced-database-cleaner' ) . ": " . ADBC_Common_Utils::format_timestamp_friendly( $settings['analytics_execution']['fail'] ), |
| 97 | __( 'Last successful addons activity execution', 'advanced-database-cleaner' ) . ": " . ADBC_Common_Utils::format_timestamp_friendly( $settings['addons_activity_execution']['success'] ), |
| 98 | __( 'Last failed addons activity execution', 'advanced-database-cleaner' ) . ": " . ADBC_Common_Utils::format_timestamp_friendly( $settings['addons_activity_execution']['fail'] ), |
| 99 | ) |
| 100 | ), |
| 101 | 'webserver' => array( |
| 102 | 'title' => __( 'Webserver', 'advanced-database-cleaner' ), |
| 103 | 'data' => array( |
| 104 | __( 'PHP version', 'advanced-database-cleaner' ) . ": " . phpversion(), |
| 105 | __( 'MySQL version', 'advanced-database-cleaner' ) . ": " . $wpdb->db_version(), |
| 106 | __( 'Server', 'advanced-database-cleaner' ) . ": " . ( isset( $_SERVER['SERVER_SOFTWARE'] ) ? sanitize_text_field( $_SERVER['SERVER_SOFTWARE'] ) : 'N/A' ), |
| 107 | "HTTPS: " . ( isset( $_SERVER['HTTPS'] ) ? __( 'Yes', 'advanced-database-cleaner' ) : __( 'No', 'advanced-database-cleaner' ) ), |
| 108 | ) |
| 109 | ), |
| 110 | 'php' => array( |
| 111 | 'title' => __( 'PHP', 'advanced-database-cleaner' ), |
| 112 | 'data' => array( |
| 113 | __( 'Memory Limit', 'advanced-database-cleaner' ) . ": " . ini_get( 'memory_limit' ), |
| 114 | __( 'Upload Max Filesize', 'advanced-database-cleaner' ) . ": " . ini_get( 'upload_max_filesize' ), |
| 115 | __( 'Post Max Size', 'advanced-database-cleaner' ) . ": " . ini_get( 'post_max_size' ), |
| 116 | __( 'Max execution time', 'advanced-database-cleaner' ) . ": " . ini_get( 'max_execution_time' ), |
| 117 | "cURL: " . ( function_exists( 'curl_init' ) ? __( 'Supported', 'advanced-database-cleaner' ) : __( 'Not supported', 'advanced-database-cleaner' ) ), |
| 118 | ) |
| 119 | ), |
| 120 | 'dropins' => array( |
| 121 | 'title' => __( 'Drop-ins', 'advanced-database-cleaner' ), |
| 122 | 'data' => ADBC_Plugins::instance()->get_dropins_list() |
| 123 | ), |
| 124 | 'muPlugins' => array( |
| 125 | 'title' => __( 'Must-use plugins', 'advanced-database-cleaner' ), |
| 126 | 'data' => ADBC_Plugins::instance()->get_mu_plugins_list() |
| 127 | ), |
| 128 | 'activePlugins' => array( |
| 129 | 'title' => __( 'Active plugins', 'advanced-database-cleaner' ), |
| 130 | 'data' => ADBC_Plugins::instance()->get_plugins_list( 'active' ) |
| 131 | ), |
| 132 | 'inactivePlugins' => array( |
| 133 | 'title' => __( 'Inactive plugins', 'advanced-database-cleaner' ), |
| 134 | 'data' => ADBC_Plugins::instance()->get_plugins_list( 'inactive' ) |
| 135 | ) |
| 136 | ); |
| 137 | |
| 138 | // If multisite, add the 'networkActivePlugins' key |
| 139 | if ( is_multisite() ) { |
| 140 | $data['networkActivePlugins'] = array( |
| 141 | 'title' => __( 'Network active plugins', 'advanced-database-cleaner' ), |
| 142 | 'data' => ADBC_Plugins::instance()->get_network_active_plugins_list() |
| 143 | ); |
| 144 | } |
| 145 | |
| 146 | return ADBC_Rest::success( "", $data ); |
| 147 | |
| 148 | } catch (Exception $e) { |
| 149 | |
| 150 | return ADBC_Rest::error_for_uncaught_exception( __METHOD__, $e ); |
| 151 | |
| 152 | } |
| 153 | } |
| 154 | |
| 155 | } |