我找到一个解决方案,而无需使用该挂钩。只要把寄存器form.php的下面提到的代码,如:
<p>
<label for="role<?php $template->the_instance(); ?>"><?php _e('Role', 'theme-my-login') ?></label>
<select id="role<?php $template->the_instance(); ?>" name="role">
<option value="author">Author</option>
<option value="subscriber">Subscriber</option>
</select>
</p>
然后把一个函数像function.php:
function set_role_on_registration($user_id) {
//$role = sanitize_text_field($_POST['role']);
$role = $_POST['role'];
if (in_array($role, array($role, 'bprofessional')))
add_user_meta($user_id, 'pending_role', $role);
}
add_action('tml_new_user_registered', 'set_role_on_registration');
然后去插件/主题我的登录/模块/user-moderation/admin/user-moderation-admin.php并找到approve_user函数。然后更换这行代码:
$approval_role = apply_filters('tml_approval_role', get_option('default_role'), $user->ID);
通过这条线:
$approval_role = apply_filters('tml_approval_role', get_user_meta($user->ID, 'pending_role', true), $user->ID);
现在,用户将被你所选择的角色admin批准后分配。
希望这段代码能帮助别人。
谢谢 Sunil