isset( $d['hits'] ) ? (int) $d['hits'] : 0, 'misses' => isset( $d['misses'] ) ? (int) $d['misses'] : 0, 'updated' => isset( $d['updated'] ) ? (int) $d['updated'] : 0, ); } public function hit() { self::bump( 'hits' ); } public function miss() { self::bump( 'misses' ); } /** * @param string $key hits|misses. */ private static function bump( $key ) { $d = self::get(); $d[ $key ] = (int) $d[ $key ] + 1; $d['updated'] = time(); update_option( self::OPTION, $d, false ); } public function reset() { check_admin_referer( 'qwsc_reset_cache_stats' ); if ( ! current_user_can( 'manage_options' ) ) { wp_die( esc_html__( 'Unauthorized', 'qw-optimize' ), '', array( 'response' => 403 ) ); } delete_option( self::OPTION ); wp_safe_redirect( admin_url( 'admin.php?page=qw-speed-cache' ) ); exit; } /** * @return float 0-100 */ public static function hit_rate() { $d = self::get(); $t = $d['hits'] + $d['misses']; if ( $t <= 0 ) { return 0.0; } return round( 100 * $d['hits'] / $t, 1 ); } }