从前端登录的用户将自动注销访问wp-admin

时间:2016-04-01 作者:Sanjay Goswami

我遇到了严重的问题。我想创建一个文档,并在用户登录后从前端上传word文档。登录用户是管理员。插件bp doc使用WordPress默认媒体上传器上传文件。

插件命中.../wp-admin/async-upload.php, 但这会带来一个错误An error occurred in the upload. Please try again later, 在控制台中调试后,我发现302 Moved Temporarily 错误,响应为WordPress登录表单。

在做了一些研究之后,我发现了另一个错误,当我作为管理员从前端登录并返回到wp-admin 它让我退出并再次要求输入用户名和密码。

我无法通过错误,任何人都可以帮助我什么可能会出错?

我使用以下代码登录

$user_data = array();
$user_data[\'user_login\'] = $username;
$user_data[\'user_password\'] = $password;
$user_data[\'remember\'] = $remember; 

$user = wp_signon( $user_data, false );

if ( is_wp_error($user) ) {

$err = "<strong>ERROR!</strong> Invalid username or password";

} 
else {

  wp_set_current_user( $user->ID);

  do_action(\'set_current_user\');
  global $current_user;
  get_currentuserinfo();
  $redirect_to = home_url().\'/members/\'.$current_user->user_login.\'/profile\'; 
  wp_redirect($redirect_to);
  exit;
}
实时网站url:https://www.group50.com/g50consultants

2 个回复
SO网友:Kudratullah

您是否尝试过将第二个参数设置为wp_signon()true 还是空白?设置为false将阻止wp_signon() 设置安全cookie,这对于访问wp-admin 如果您使用ssl。我已经测试和$user = wp_signon( $user_data, true ); 按预期工作。

SO网友:Agustin Prosperi

也许你登录后从https切换到http,你可以试试这个插件https://wordpress.org/plugins/https-redirection/ 为了将您的所有站点重定向到https,我使用了一次,并将我的站点URL从http://...到https://....在wodpress设置中。

我发现您可以在以下几行中简化代码:

else {
  $redirect_to = home_url().\'/members/\'.$user->user_login.\'/profile\'; 
  wp_redirect($redirect_to);
  exit;
}
因为wp\\u signon函数创建所有会话并填充当前用户函数。

相关推荐

BuddyPress:只允许一个电子邮件域名注册

在BuddyPress中,我希望只允许使用一个电子邮件域进行注册和登录。例如,xxx@myemaildomain.com不允许全部还原。我已经检查了BuddyPress源,发现BuddyPress正在使用bp_core_validate_user_signup( $user_name, $user_email ) 用于具有筛选器的注册return apply_filters( \'bp_core_validate_user_signup\', $result ); 所以我尝试使用过滤器来修改us