在您的功能中。php文件执行以下操作:
add_action(\'register_form\',\'register_role_field\');
add_action(\'register_post\',\'check_fields\',10,3);
add_action(\'user_register\', \'register_role_fieldforuser\');
// This will register new field in registration form
function register_role_field(){ ?>
<label>Choose your role:<br/>
<!--- Let\'s check if there role already set. If $_GET[\'role\'] = 0 -then this is teacher if 1 = student --->
<?php if ( isset( $_GET[\'role\'] ) ) { ?>
<select id="role" class="checkboxas" name="role">
<option value="0" <?php if( $_GET[\'role\'] == \'0\' ) echo \'selected="selected"\';?>>Teacher</option>
<option value="1" <?php if( $_GET[\'role\'] == \'1\' ) echo \'selected="selected"\';?>>Student</option>
<?php } else { ?>
<!--- Incase we don\'t get role ---->
<select id="role" class="checkboxas" name="role">
<option value="0">Teacher</option>
<option value="1" selected="selected">Student</option>
<?php } ?>
</select>
</label>
<?php }
// Here we will check fields in this case only one
function check_fields( $login, $email, $errors ) {
if( !is_numeric( $_POST[\'role\'] ) )
$errors->add( \'bad_role\', "ERROR: You have to select role" );
}
function register_role_fieldforuser( $user_id, $password="", $meta=array() ) {
if( is_numeric( $_POST[\'role\'] ) ) {
$userdata = array();
$userdata[\'ID\'] = $user_id;
$userdata[\'first_name\'] = $_POST[\'first\'];
$userdata[\'last_name\'] = $_POST[\'last\'];
if( $_POST[\'role\'] == 0 )
$userdata[\'role\'] = \'teacher\';
else $userdata[\'role\'] = \'student\';
wp_update_user($userdata);
}
}
您可以在网站中创建2个链接:1个用于教师:
http://yourwebsite.com/wp-login.php?action=register&role=0还有一个是给学生的
http://yourwebsite.com/wp-login.php?action=register&role=1因此,注册表自动根据uer中的角色集选择用户角色。