Add Usergroup to User After Viewing a Page?


Active member
Is it possible in the PAGE NODE function (using the callback function) to add a usergroup to a user after that user has viewed a page node? Is there is a simple code? Or is this more complicated to do?

I'm looking to add a usergroup to users based on upon their viewing of a page. (Not a thread.)

For example:

ForumUser visits Terms Page.
Forum User now is a part of the "Read Terms" Usergroup.

Any direction (or resources/mods) would be appreciated! I did not find anything in my initial searches, both here and Google.



Active member
Or how about, after a user downloads a resource, it changes their usergroup?
Or after a user downloads an attachment, it changes their usergroup?

I'm at a loss at how to do this using the various built in options (user promotions, notices, upgrades) etc.


XenForo moderator
Staff member
It's not something you can do using the default options and functions - it would require custom development.
  • Like
Reactions: MJD

Mr Lucky

Well-known member
You can add a custom user filed checkbox (e.g. I have read there terms) and then at the bottom of the terms and conditions node have a link to their profile where they tick they have read the terms. Then have a user promotion that relies on that custom field.

This is not automatic like you want ,but has the advantage of them actually saying they've read (and agreed to) the terms.



  • SafariScreenshot012.png
    11.1 KB · Views: 5
  • Like
Reactions: MJD


Well-known member
@MJD you can extend userModel->
addUserGroupChange($userId, $key, $addGroups) function to your specific page
  • Like
Reactions: MJD