I haven't tried this at all, but if I had to guess I'd say your code should be something like:
PHP Code:
// Get the value for field
$user = $db->query_first("
SELECT field7
FROM " . TABLE_PREFIX . "userfield
WHERE userid = " . $vbulletin->userinfo['userid'] . "
");
// change user groups
if ($user['field7'] == 'yes')
$newgroup = 23;
else
$newgroup = 24;
$getusergroupid = iif($userinfo['displaygroupid'] != $userinfo['usergroupid'], $userinfo['displaygroupid'], $newgroup);
$user_usergroup =& $vbulletin->usergroupcache["$newgroup"];
$display_usergroup =& $vbulletin->usergroupcache["$getusergroupid"];
$userdata->set('usergroupid', $newgroup);
$userdata->set_usertitle(
$user['customtitle'] ? $user['usertitle'] : '',
false,
$display_usergroup,
($user_usergroup['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canusecustomtitle']) ? true : false,
($user_usergroup['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cancontrolpanel']) ? true : false
);
if ($user['userid'] == $vbulletin->userinfo['userid'])
{
$vbulletin->userinfo['usergroupid'] = $newgroup;
$vbulletin->userinfo['displaygroupid'] = $newgroup;
}
ETA: (oops - posted this before I read Lynne's. Maybe there is an existing mod).