web-dev-qa-db-ja.com

フロントエンドからログインしたユーザーは自動的にログアウトされ、wp-adminにアクセスします。

私は深刻な問題で立ち往生しています。ユーザーログイン後にフロントエンドからドキュメントを作成してWordドキュメントをアップロードします。ログインユーザーはadminです。プラグイン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

4
PlanetHackers

wp_signon()の2番目の引数をtrueまたは空白に設定してみましたか? falseを設定すると、sslを使用している場合、wp_signon()wp-adminにアクセスするために不可欠なセキュアcookieを設定できなくなります。私はテストし、$user = wp_signon( $user_data, true );は期待通りに動作します。

1
Kudratullah

ログイン後にhttpsからhttpに切り替えた場合は、このプラグインを試してみることができます https://wordpress.org/plugins/https-redirection/ wodpressの設定でhttp:// ...からhttps:// ....への私のサイトのURL。

私はあなたがこれらの行であなたのコードを単純化できることがわかります:

else {
  $redirect_to = home_url().'/members/'.$user->user_login.'/profile'; 
  wp_redirect($redirect_to);
  exit;
}

Wp_signon関数を使用してすべてのセッションを作成し、現在のユーザー関数を埋めます。

0