我会对用户切换插件进行反向工程,然后创建一个适合您的解决方案。幸运的是,没有太多的工作要做。大多数关键功能都在该功能中:
function switch_to_user( $user_id, $remember = false, $set_old_user = true ) {
if ( ! $user = get_userdata( $user_id ) ) {
return false;
}
$old_user_id = get_current_user_id();
if ( $set_old_user && $old_user_id ) {
user_switching_set_olduser_cookie( $old_user_id );
} else {
user_switching_clear_olduser_cookie( false );
}
wp_clear_auth_cookie();
wp_set_auth_cookie( $user_id, $remember );
wp_set_current_user( $user_id );
if ( $set_old_user ) {
do_action( \'switch_to_user\', $user_id, $old_user_id );
} else {
do_action( \'switch_back_user\', $user_id, $old_user_id );
}
return $user;
}
您可以为每个用户维护一个“链接帐户”列表,以确定是否允许用户切换到其他帐户。
伪代码:
$switch_to = 0; // some user id
$linked_accounts = get_linked_accounts( get_current_user_id() );
if(in_array($switch_to, $linked_accounts)) {
switch_to_user($switch_to)
}
您需要定义
get_linked_accounts
并设置一种实际执行链接的方法。你也应该这样做
a lot 测试,以确保用户将无法切换到任何任意帐户。