<?php
$user = $hook->getValue('register.user');
$userGroup = $hook->getValue('register.usergroup');
// $userGroup = $hook->getValue('usergroup'); //??
$user->joinGroup($userGroup);
$user->save();
?>
<?php
$user = $hook->getValue('register.user');
$userGroup = $hook->getValue('register.product'); //Product is the name of my dropdown
// $userGroup = $hook->getValue('usergroup'); //??
$user->joinGroup($userGroup);
$user->save();
?>[[!Register? &submitVar=`registerbtn` &activationResourceId=`14` &activationEmailtpl=`My_lgnActivationEmailTpl` &activationEmailSubject=`Please activate your account` &submittedResourceId=`13` &activationttl=`10080` &postHooks=`UserGroup` &activation=`0` ]]
<div class="register">
<div class="registerMessage">[[+error.message]]</div>
<form class="form" action="[[~[[*id]]]]" method="post">
<input type="hidden" name="nospam:blank" value="" />
<ul>
<li>* indicates required fields</li>
<li>
<label for="username">[[%register.username? &namespace=`login` &topic=`register`]]* <span class="error">[[+error.username]]</span> </label>
<input type="text" name="username:required:minLength=6" id="username" value="[[+username]]" />
</li>
<li>
<label for="password">[[%register.password]]* <span class="error">[[+error.password]]</span> </label>
<input type="password" name="password:required:minLength=6" id="password" value="[[+password]]" />
</li>
<li>
<label for="password_confirm">[[%register.password_confirm]]* <span class="error">[[+error.password_confirm]]</span> </label>
<input type="password" name="password_confirm:password_confirm=`password`" id="password_confirm" value="[[+password_confirm]]" />
</li>
<li>
<label for="fullname">Forename* <span class="error">[[+error.fullname]]</span> </label>
<input type="text" name="fullname:required" id="fullname" value="[[+fullname]]" />
</li>
<li>
<label for="surname">Surname* <span class="error">[[+error.surname]]</span> </label>
<input type="text" name="surname:required" id="surname" value="[[+surname]]" />
</li>
<li>
<label for="email">[[%register.email]]* <span class="error">[[+error.email]]</span> </label>
<input type="text" name="email:email" id="email" value="[[+email]]" />
</li>
<li>
<label for="product">Product* <span class="error">[[+error.product]]</span> </label>
<select name="product:required" id="product">
<option selected="[[+product]]">[[+product]]</option>
<option value="Usergroup1">Usergroup1</option>
<option value="Usergroup2">Usergroup2</option>
<option value="Usergroup3">Usergroup3</option>
</select>
</li>
<li><label for="newsletter">Newsletter* <span class="error">[[+error.newsletter]]</span> </label>
<select name="newsletter:required" id="newsletter">
<option>[[+newsletter]]</option>
<option value="Yes" selected>Yes</option>
<option value="No">No</option>
</select>
</li>
</ul>
<br class="clear" />
<div class="form-buttons">
<input type="submit" name="registerbtn" value="Register" class="button" />
</div>
</form>
</div>
<select name="product" id="product">
<option value="Usergroup1" [[!+product:FormItIsSelected=`Usergroup1`]] >Usergroup1</option>
<option value="Usergroup2" [[!+product:FormItIsSelected=`Usergroup2`]]>Usergroup2</option>
<option value="Usergroup3" [[!+product:FormItIsSelected=`Usergroup3`]]>Usergroup3</option>
</select>
$user = $hook->getValue('register.user'); // the new registered user
$group = $hook->getValue('product');
$modx->log(modX::LOG_LEVEL_ERROR, 'group : '.$group); // this line just to return thr value in your error.log
if(isset($group)){
$user->joinGroup($group);
$modx->log(modX::LOG_LEVEL_ERROR, 'user as joined group : '.$group); // idem
}
return true;
<select name="product" id="product">
<option value="Usergroup1" [[!+product:FormItIsSelected=`Usergroup1`]] >Usergroup1</option>
<option value="Usergroup2" [[!+product:FormItIsSelected=`Usergroup2`]]>Usergroup2</option>
<option value="Usergroup3" [[!+product:FormItIsSelected=`Usergroup3`]]>Usergroup3</option>
</select>