Site setting to hide custom user fields from signup page

I thought that I had seen such a feature request recently, but I can’t find it.

If you have a bunch of user custom fields, the login modal gets ugly. If there are 10 optional fields and 2 required fields, one has to scroll a bunch to find the one(s) that are required. This is a drag.

It’s possible to hide those fields with CSS like:

.create-account .user-fields .user-field {
    display: none;

    &:nth-of-type(4){
        display: block;
    }

}

It’s something of a bother, as you have to guess what nth-of-type to use by trial and error, but what I might suggest is a :bug: is that the CSS that worked to make that modal look the right way changes every now and again. It looks like it got changed in the recent beta6. It makes my client sad, as the required fields are not visible, so people couldn’t sign up. He found out only because someone emailed to complain.

Problem solved!

CSS Got added to those fields, so this isn’t a problem any more!

10 个赞

I don’t think it would be hard to add a class or data attribute that includes the custom field’s name, which would make it much less fragile to target with CSS. I can probably get to that within the next couple of days.

7 个赞

Took a quick look and it’s nearly identical to another PR I opened recently to add a class to tag groups. So here’s a PR for this… we might want to add a helper to sanitize class names before merging these?

9 个赞

I just realized that I never followed up after this was merged. Now on the signup page all user fields have a class in the form of user-field-name. So if you had a field with the name “terms and conditions” it would have the class user-field-terms-and-conditions.

You can also take a shortcut and hide all custom user fields at signup with

.d-modal.create-account div[class*="user-field-"] {
    display: none;
}
7 个赞

Thanks! I managed to get this done a week or two ago. You might edit that list to also include the css to un-hide a field or two after hiding the rest.

2 个赞

Here is a closed thread about solving this, which includes a css solution:

Right now for custom user fields, the options are:

Editable after signup?
Required at signup?
Show on public profile?
Show on user card?

I think another option would be quite useful:

Show on signup form?
or
Hide on signup form?

By default, without custom CSS modification, all custom fields (optional or not) will be displayed on the registration form. This somewhat limits the amount of custom fields that can be implemented as having too many will make the registration form overloaded and potentially intimidating to new users.

11 个赞

Sometimes it is nice to have a bunch of custom user fields to ask for information that you don’t want to bother people with on signup. For example, you might want to have the ability for someone to provide their address, zip code, or hair color, but on signup ask them only for their name and email address.

This is possible now by using a theme component to hide all custom fields and then un-hide the ones you want. It would be nice if there were a checkbox in the custom user field settings.

10 个赞

This would be great.

It would also be helpful to be able to differentiate sign-ups and invitees, especially if a field is mandatory for both or just for signups.

For example, we ask people to provide their “Reason for Joining” to help us decide their suitability and group. This is redundant when people arrive via an invite link, but it can’t be hidden if mandatory or it breaks the signup for them.

3 个赞

您好,

我的网站上有一些用户字段,例如社交媒体信息,在注册时其实并不需要填写。

我认为可以增加一个“注册时不显示”的选项,这样该字段在注册时会被隐藏,仅在编辑用户个人资料时可见。

6 个赞

您已经可以通过 CSS 实现此目的:

但是的,将其作为明确的选项会非常好!这已经被要求过几次了。

我已将所有关于此的 Feature 主题合并到此主题中。

4 个赞

它在这个主题中也获得了一些关注:

11 个赞

注册模态框是否有任何更改可能导致此 CSS 不再生效?

我无法使用 @pfaffman 在第一篇帖子中的代码隐藏注册页面上的任何自定义字段,也无法使用 @awesomerobot 的代码隐藏所有自定义字段:

我一直将 CSS 应用于 Themes > Common > CSS。

2 个赞

看起来 Discourse 的其他地方添加了一些更具体的 CSS,这覆盖了 display:none

.d-modal.create-account .user-field {
  display: flex;
}

我将快速查看 :point_up:,看看我们是否需要如此具体,但与此同时,这个 :point_down: 更新应该可以工作:

.d-modal.create-account div[class*="user-field-"] {
  display: none;
}
2 个赞

Confirmed, this worked perfectly to hide them all!

Thank you so much Kris @awesomerobot :smiley:

1 个赞

添加了一个隐藏用户字段的设置,使其不显示在注册表单上:

3 个赞

此主题在最后回复后 3 天自动关闭。不再允许新回复。