namespace, '/errors/log', [ [ 'methods' => 'POST', 'callback' => [$this, 'handleErrorLog'], 'permission_callback' => '__return_true', // Allow anyone to log errors ] ]); } /** * @param WP_REST_Request $request * * @return WP_REST_Response */ public function handleErrorLog(WP_REST_Request$request):WP_REST_Response { $error_type = $request->get_param('error_type'); $message = $request->get_param('message'); $context = json_decode($request->get_param('context'), true); // Determine severity based on error type $severity = $this->getSeverityFromType($error_type); JVB()->error()->log( $context['component'] ?? 'client-js', $message, $context, $severity ); return new WP_REST_Response([ 'success' => true, 'message' => 'Error logged' ]); } /** * @param string $type * * @return string */ private function getSeverityFromType(string $type):string { $severity_map = [ 'network' => 'warning', 'timeout' => 'warning', 'offline' => 'info', 'auth' => 'warning', 'rate_limit' => 'warning', 'server' => 'error', 'client' => 'error', 'unknown' => 'error' ]; return $severity_map[$type] ?? 'error'; } }