So you want new users to go to different user groups depending on which form they fill out? I don't know if I know the "right" way to do it, but if you create a plugin using hook location
register_addmember_process you can set $newusergroupid to the user group you want to put the new user in, if you are not using email verification. If you are using email verification, you can check using hook location
register_addmember_complete and change the useractivation table so that the user will be put in the desired user group on activation.
So, at
register_addmember_process
Code:
if(!$vbulletin->options['verifyemail'])
{
// do some check to figure out usergroupid (X)
$newusergroupid = X;
}
and/or at
register_addmember_complete
Code:
if(!$vbulletin->options['verifyemail'])
{
// do some check to figure out usergroupid (X)
$newusergroupid = X;
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "useractivation
SET usergroupid = '".$newusergroupid."'
WHERE activationid = '".$activateid."' LIMIT 1 ");
}
As far as what to check, I'm not sure, but I'd recommend against simply putting a usergroupid field or other hidden field in the registration form, since a user can change that pretty easily. You'd have to do something like check how much they've actually paid (assuming they're paying), or some other thing that they can't fake by changing the submitted form data.
Anyway, I hope this at least begins to answer your question. And thanks to user ForumsMods mod here:
https://vborg.vbsupport.ru/showthread.php?t=188684 where I pretty much got the above hooks and code from.