更改discuz!3.4注册后用户所在用户组

打开 source/class/class_member.php 文件,查找:

if($invite && $this->setting['inviteconfig']['invitegroupid']) {
$groupinfo['groupid'] = $this->setting['inviteconfig']['invitegroupid'];
}




在其下方加入:

if(!$invite && !$this->setting['regverify']) {
$groupinfo['groupid'] = 46; //自定义用户组编号
}



测试以下各种情况均正常:



  • 无邀请码注册,正常进入自定义用户组。
  • 使用邀请码注册,正常进入标准用户组或所设置的邀请组。
  • 验证情况下,进入等待审核组,审核通过后转为标准用户组。
  • 激活情况下,有邀请码进入标准组/邀请组,无邀请码进入自定义用户组。

发现一处异常,检查发现可能是Discuz本身的BUG:

若开启人工验证的同时设置了邀请组,当有人使用邀请码注册后,会提示“……开启了人工审核……”,但事实上已经进入邀请组。管理员在后台发现产生了待审核用户记录,点开却为空。

所以应避免在开启验证的同时设置邀请组。一般这种情况是比较少见的。