$response Heartbeat response. * @param array $data Data the browser sent. * @return array */ public function send_generation( array $response, array $data ): array { if ( isset( $data['tinta_tree'] ) && current_user_can( 'tinta_access' ) ) { $response['tinta_tree'] = $this->tree->generation(); } return $response; } /** * Ticks every 15 seconds on the workspace screen (WordPress slows it down in background tabs). * Screens without admin screen functions, like the login page, are left alone. * * @param array $settings Heartbeat settings. * @return array */ public function set_interval( array $settings ): array { $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null; if ( 'toplevel_page_' . Screen::SLUG === $screen?->id ) { $settings['interval'] = self::INTERVAL; } return $settings; } }