get_plugins()' ); SucomUtil::safe_error_log( $error_pre . ' ' . $error_msg ); } return $local_cache; } /* * IS CHECK METHODS: * * is_plugin_active() * is_plugin_installed() * * Returns true/false. */ public static function is_plugin_active( $plugin_base, $read_cache = true ) { $active_plugins = self::get_active_plugins( $read_cache ); if ( isset( $active_plugins[ $plugin_base ] ) ) { // Associative array of true/false values. return $active_plugins[ $plugin_base ]; // Return true/false. } return false; } /* * Returns true/false. */ public static function is_plugin_installed( $plugin_base, $read_cache = true ) { static $local_cache = array(); // Associative array of true/false values. if ( $read_cache ) { if ( isset( $local_cache[ $plugin_base ] ) ) { return $local_cache[ $plugin_base ]; } } if ( empty( $plugin_base ) ) { // Just in case. return $local_cache[ $plugin_base ] = false; } elseif ( validate_file( $plugin_base ) > 0 ) { // Contains invalid characters. return $local_cache[ $plugin_base ] = false; } $wp_plugins = self::get_plugins( $read_cache ); // Front-end safe and uses cache. if ( ! empty( $wp_plugins[ $plugin_base ] ) ) { // Check for a valid plugin header. return $local_cache[ $plugin_base ] = true; } return $local_cache[ $plugin_base ] = false; } /* * PLUGIN UPDATE METHODS: * * get_update_count() * have_plugin_update() * * Get the 'update_plugins' site transient and return the number of pending updates for a given slug prefix. * * Example: $plugin_prefix = 'wpsso' */ public static function get_update_count( $plugin_prefix = '' ) { $updates_count = 0; $update_plugins = get_site_transient( 'update_plugins' ); if ( ! empty( $update_plugins->response ) ) { foreach ( $update_plugins->response as $plugin_base => $data ) { if ( ! empty( $plugin_prefix ) ) { /* * Example: * * $plugin_base = wpsso/wpsso.php * * $data->slug = wpsso */ if ( isset( $data->slug ) && strpos( $data->slug, $plugin_prefix ) === 0 ) { $updates_count++; } } else $updates_count++; } } return $updates_count; } /* * Returns true/false. */ public static function have_plugin_update( $plugin_base ) { static $local_cache = array(); // Associative array of true/false values. if ( isset( $local_cache[ $plugin_base ] ) ) { return $local_cache[ $plugin_base ]; } elseif ( empty( $plugin_base ) ) { // Just in case. return $local_cache[ $plugin_base ] = false; } elseif ( ! self::is_plugin_installed( $plugin_base ) ) { return $local_cache[ $plugin_base ] = false; } $update_plugins = get_site_transient( 'update_plugins' ); if ( isset( $update_plugins->response ) && is_array( $update_plugins->response ) ) { if ( isset( $update_plugins->response[ $plugin_base ] ) ) { return $local_cache[ $plugin_base ] = true; } } return $local_cache[ $plugin_base ] = false; } } }