如何允许使用一次登录访问两个用户帐户?

时间:2015-06-09 作者:kat_indo

我花了两个小时寻找这个问题,但我找不到解决问题的方法。

我有一个运行WooCommerce的WP站点,允许用户创建自己的商店。

我的客户有一个场景,他需要两个商店,但无需每次登录和注销来检查此数据。

我已经查过了"User Switching" 但其功能有限。

它只允许您从后端切换到用户,这没有帮助,因为对WP Dashboard的访问被锁定repo 将用户开关添加到WP管理栏。但WP管理栏对用户不可见。即使我保持栏打开,问题是它允许您搜索所有用户并访问您想要的任何帐户,但我需要用户只能在特定帐户之间切换

如有任何建议,将不胜感激!

1 个回复
SO网友:Mathew Tinsley

我会对用户切换插件进行反向工程,然后创建一个适合您的解决方案。幸运的是,没有太多的工作要做。大多数关键功能都在该功能中:

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 测试,以确保用户将无法切换到任何任意帐户。

结束

相关推荐

User can not login

我成功地向WP数据库插入了一个新用户,我希望该用户在此之后立即登录。我是这样做的User Login Form <?php function dlf_form() { ?> <form method=\"post\" id=\"wp_login_form\" action=\"<?php echo $_SERVER[\'REQUEST_URI\']; ?>\"> <div clas