Praticamente não há documentação sobre isso, e o arquivo da API do plugin não tem um comentário explicando o uso desta função. Além disso, o único lugar onde posso vê-la sendo usada é em plugins, não no núcleo. Então, o que exatamente api.addSaveableUserOptionField() faz? É necessária alguma configuração adicional para usá-la?
Não sei, mas aqui está o que acho que descobri.
Mas antes - Minha pergunta é por que você se importa? Há algo que você está tentando fazer? Mas talvez se você estiver tentando criar um plugin que tenha opções de usuário, é assim que você faz isso. Ele não é usado no núcleo, pois é um hook especialmente para plugins poderem ter suas próprias opções de usuário.
Parece que é usado no plugin Chat, como aqui:
Parece que se o seu plugin tiver opções de usuário, você usará isso para estabelecer que é uma opção de usuário com o UserUpdater.
Sim, estou planejando ter uma configuração de usuário em um plugin. Vi anteriormente que o Chat e, se bem me lembro, a IA usaram essa função para adicionar configurações de usuário, então estava me perguntando se havia uma maneira documentada de fazer isso.
Voltando a este assunto, parece haver mais informações sobre isso.
Isso agora lista 3 funções: addSaveableUserField(), addSaveableUserOption() e addSaveableCustomFields().
Parece que a primeira se refere a adicionar e salvar campos de usuário personalizados definidos pelo administrador. No entanto, as duas seguintes não são tão claras. Elas exigem um plugin para usar register_custom_user_field :... no backend? É necessário fazer mais alguma coisa, ou pode funcionar em um TC (Tema Componente)?
Obrigado.
Parece que funciona tanto para campos personalizados adicionados na UX quanto via um plugin. Para campos personalizados, eles recebem nomes como user_field_1, tenho quase certeza. Você pode olhar na tabela com o explorador de dados, por exemplo. Ou talvez signifique apenas campos adicionados pela UX (“campos de perfil definidos pelo administrador”), caso em que você usaria o nome que deu a ele ao criá-lo. Eu tentaria das duas maneiras.
E o github está fora do ar, então não consigo olhar o código lá.