What does api.addSaveableUserOptionField do?

There’s virtually no documentation on this, and the plugin API file doesn’t have a comment explaining the use of this function. Plus, the only place I can see it used is in plugins, not in core. So what does api.addSaveableUserOptionField() do exactly? Is there additional configuration needed to use it?

I don’t know, but here’s what I think I found out.

But first–My question is why do you care? Is there something you’re trying to do? But maybe if you’re trying to create a plugin that has user options, this is how to to do it. It’s not used in core since it’s a hook especially for plugins to be able to have their own user options.

Looks like it’s used in the Chat plugin like here:

Looks like if your plugin has user options then you use this to establish that it’s a user option with the UserUpdater.

1 Like

Yes, I’m planning to have a user setting in a plugin. I saw previosuly that Chat and IIRC AI used this function to add user settings, so I was wondering if there was a documentd way of doing it.

1 Like

Coming back to this, there seems to be more info on this.

This now lists 3 functions: addSaveableUserField(), addSaveableUserOption(), and addSaveableCustomFields().

It seems like the 1st refers to adding and saving admin-defined custom user fields. However, the next 2 aren’t so clear. Do they require a plugin to use register_custom_user_field :... in the backend? Does more need to be done, or can it work in a TC?

Thanks.

1 Like

It looks like it works for both custom fields added in the UX and via a plugin. For custom fields, they get names like user_field_1, I’m pretty sure. You can look in the table with data explorer, for example. Or maybe it means only fields added by the UX (“admin-defined profile fields”), in which case you’d use the name you gave it when you created it. I’d just try it both ways.

And github is down, so I can’t look at the code there.

1 Like