0

ユーザーのモデレートとブートストラップwpを組み込んだ簡単なログイン/登録ページを作成しています。

新しいユーザーをデータベースに追加すると、パスワードが作成されてハッシュ化されますが、そのアカウントでログインすると、パスワードが機能しません。私は困惑しています...

ただし、管理者アカウントで管理者にアクセスし、ユーザーのパスワードを変更すると、正常にログインできます...

誰かが私が欠けているものを見ますか?

require_once( ABSPATH . WPINC . '/registration.php' );
$user_pass = wp_generate_password();
$userdata = array(
  'user_pass' => $user_pass,
  'user_login' => esc_attr( $_POST['user_email'] ),
  'user_email' => esc_attr( $_POST['user_email'] ),
);

if( !$userdata['user_login'] )
  $error .= __('An Email Address is required for registration.', 'frontendprofile');
elseif ( username_exists( $userdata['user_login'] ) )
  $error .= __('Sorry, that Email Address is already in use for another account.', 'frontendprofile');
elseif ( !is_email( $userdata['user_email'] ) )
  $error .= __('You must enter a valid Email Address.', 'frontendprofile');
elseif ( email_exists( $userdata['user_email'] ) )
  $error .= __('Sorry, that Email Address is already for another account.', 'frontendprofile');

else{
  $new_user = wp_update_user( $userdata );
}
4

2 に答える 2

1

次に、これを使用する必要があります
。例:

$password   = wp_generate_password( 8, false );
wp_set_password( $password, $user->ID );
于 2020-04-24T16:24:51.807 に答える
0

とった。私が推測する新しい追加のためにwp_update_userを使用することはできません。

使用する必要があります:

wp_create_user( $userdata['user_login'], $userdata['user_pass'], $userdata['user_email'] );

于 2011-03-16T14:08:04.600 に答える