2014-09-11 191 views
0

我通过管理员批准使用主题我的登录插件用户审核功能。我想在管理员批准用户后将用户角色从待处理更改为我定义的用户。我使用这个钩子,它不能正常工作,代码如下:tml_new_user_activated挂钩不工作

function set_role_on_activation($user_id) { 
echo "<script>alert('hello');</script>"; 
} 

add_action('tml_new_user_activated', 'set_role_on_activation'); 

请帮

回答

0

我找到一个解决方案,而无需使用该挂钩。只要把寄存器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