PDA

View Full Version : Auto move user from verification to a specific usergroup under condition?


Skyrider
05-15-2015, 02:18 PM
Is there anyway for me to add a PHP plugin code where a user has met a specific condition once they validated their email, it'll move him/her to another usergroup rather than the default registration group?

In this case, another plugin calls up $islinked is someone is linked or not. I'd like to have something that IF user $islinked and is in the email verification group that once he/she has his/her mail verified, that in combination with $islinked it'll move him to a specific usergroup.

EG:

if ($islinked) { && has just verified mail address -> move to usergroup

<if needed> add an ELSE code to continue normal verification to
registered usergroup if not islinked.

OR something like this:

if ($islinked) && ($vbulletin->options['verifyemail'])
{
$newusergroupid = X;
}
else
{
$newusergroupid = 2;
}

from register.php. I don't mind including the additional files to make this work in the register PHP file.

// get special data templates from the datastore
$specialtemplates = array('steam_softlinks');

// pre-cache templates used by all actions
$globaltemplates = array(
'register_rules',
'register_verify_age',
);

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
require_once(DIR . '/includes/functions_login.php');
require_once(DIR . '/includes/openid.php');
require_once(DIR . '/includes/functions_steamconnect.php');

^ From the steam login system.

I greatly appreciated the help.

Skyrider
05-17-2015, 02:13 PM
I was hoping at least 1 of you would know the answer. I'm already targeting the register_activate_x hook for this.

--------------- Added 1431943679 at 1431943679 ---------------

Okidoki.. I figured out the code that I need:

include_once(DIR . '/includes/functions_steamconnect.php');

if (!empty($vbulletin->userinfo['steam_link']))
{
XXXX
}
Where XXX should be the movement code.. I already tried a simple SQL movement code, of which works when I use eg, another hook like forumhome/forumdisplay. However, when I attempt to use the hook register_activate_process, the code is refusing to work and puts the user into default usergroup 2 after the user validated his email. while it should be moving him/her to another usergroup. Anyone can help me with this?

--------------- Added 1431955165 at 1431955165 ---------------

EDIT

From register.php

// ### DO THE UG/TITLE UPDATE ###


$getusergroupid = iif($userinfo['displaygroupid'] != $userinfo['usergroupid'], $userinfo['displaygroupid'], $user['usergroupid']);

$user_usergroup =& $vbulletin->usergroupcache["$user[usergroupid]"];
$display_usergroup =& $vbulletin->usergroupcache["$getusergroupid"];

// init user data manager
$userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
$userdata->set_existing($userinfo);

// Steam Validation Email Change
require_once(DIR . '/includes/functions_steamconnect.php');
if (!empty($vbulletin->userinfo['steam_link']))
{
$userdata->set('usergroupid', 9);
}
elseif (empty($vbulletin->userinfo['steam_link']))
{
$userdata->set('usergroupid', $user['usergroupid']);
}

^

If I alter

$userdata->set('usergroupid', $user['usergroupid']);

to

$userdata->set('usergroupid', 9);

without any of the if / else code, it works as a charm.. however, with the above code it appears to be using the default usergroupID 2 regardless.. I am confused, in why.