抱歉,如果这个问题之前有人提过,我昨天找到了类似的内容,但今天的搜索词条却一无所获。
场景:
一个 Discourse 服务器想要设置一个字段,比如出生日期(Date of Birth),使其成为必填项。这个信息不应该在注册后需要编辑。因此,解决方案是将自定义字段设置为不勾选“注册后可编辑”(editable after signup),然后将该字段更改为“注册时必填”(Required on Signup)。这对于通过常规的电子邮件/用户名注册创建账户的用户是有效的。
问题 1:
通过 OAuth、DiscourseID、WP-Discourse 等方式创建账户的用户永远不会看到这些字段。为了让这些用户能够访问这些字段,它们必须被标记为“对所有人必填”(Required For All),这就引出了……
问题 2:
“对所有人必填”出于明显的原因,要求字段必须被标记为“注册后可编辑”(editable after signup)。不幸的是,这也允许用户随时更改该字段……但这完全不是我们想要的。
请求的功能:
添加逻辑,允许“对所有人必填”不需要勾选“注册后可编辑”。该逻辑会首先检查字段是否为空或“null”之前,再检查“注册后可编辑”的设置。它基本上会忽略任何空/null 的必填字段的“可编辑”复选框。这将允许自定义用户字段在被编辑一次后,一旦保存了值,就不再可编辑。