如何在WordPress中为特定用户角色挂钩注销函数?

时间:2021-06-24 作者:mike

我正在使用插件进行登录/注销(https://wordpress.org/plugins/login-logout-menu/) 导航链接是动态的。一旦用户角色登录,他们将重定向到特定页面,功能正常。对于注销,应重定向到特定角色的主页。我试过使用提供的挂钩,但不起作用。当前管理员和普通用户角色已注销到wordpress中的默认登录重定向链接。

 function redirect_after_logout() {

        $current_user   = wp_get_current_user();
        $role_name      = $current_user->roles[0];

        if($role_name == \'employee\'){
            $redirect_url = site_url();
            wp_safe_redirect( $redirect_url );
            exit;
        } 

    }
    add_action( \'wp_logout\', \'redirect_after_logout\'  );

1 个回复
SO网友:Pat J

这个wp_logout 操作在用户注销后激发。他们不再扮演角色。

然而,自WordPress 5.5.0以来,挂钩采用了一个参数:正在注销的用户的ID。因此,您可以通过使用该ID而不是wp_get_current_user().

function redirect_after_logout( $user_id ) {

    $current_user   = get_user_by( \'id\', $user_id );
    $role_name      = $current_user->roles[0];

    if($role_name == \'employee\'){
        $redirect_url = site_url();
        wp_safe_redirect( $redirect_url );
        exit;
    } 

}
add_action( \'wp_logout\', \'redirect_after_logout\'  );
如果您至少没有使用WordPress 5.5.0,这将不起作用(您可能也应该更新)。

参考文献wp_logout
  • get_user_by()