guard_admin(); if ( $check ) { return $check; } try { $request = new \WP_REST_Request( 'GET', '/booktics/v1/settings' ); $controller = new \Booktics\Settings\Controllers\Settings_Controller(); $settings = $this->extract_response( $controller->get_item( $request ), 'Failed to retrieve settings.' ); if ( isset( $settings['error'] ) ) { return $settings; } // Whitelist: only expose the safe keys, never credentials or secrets. $safe = array_intersect_key( $settings, array_flip( self::READABLE_KEYS ) ); return [ 'settings' => $safe ]; } catch ( \Throwable $e ) { Log::error( 'Booktics_Get_Settings_Tool error', [ 'error' => $e->getMessage() ] ); return [ 'error' => 'Failed to retrieve settings: ' . $e->getMessage() ]; } } }