我通过管理员批准使用主题我的登录插件用户审核功能。我想在管理员批准用户后将用户角色从挂起更改为我定义的用户角色。我正在使用这个钩子它不起作用,代码如下:
function set_role_on_activation( $user_id ) {
echo "<script>alert('hello');</script>";
}
add_action( 'tml_new_user_activated', 'set_role_on_activation' );
请帮忙
答案 0 :(得分:0)
我找到了一个没有使用这个钩子的解决方案。只需将下面提到的代码放在register-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' );
然后转到plugins / theme-my-login / modules / 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 );
现在,在管理员批准后,将为用户分配您选择的角色。
希望,此代码可以帮助某人。
由于 苏尼尔