私は自分の目的のために修正されたプラグインを使用しています。
私がやっているのは、ユーザーが自動的にログインして現在のページに戻るために登録した後です。現時点では、ユーザー名とパスワードを電子メールで送信しています。その後、それらの詳細を使用してログインする必要があります。
基本的にあなたのユーザーをログインさせるために使用することができます:
//Login the user
$creds = array();
$creds['user_login'] = $login;
$creds['user_password'] = $password;
if ( !empty( $remember ) ){
$creds['remember'] = true;
}
$user = wp_signon( $creds, true );
しかしそれはあなたがあなた自身の登録フォームを作成しそしてそれを処理しそしてあなた自身をユーザーを作成することができるようにあなたがパスワードとログインを持っているときだけです。
//Only after Everything has been validated, proceed with creating the user
//Create the user
$user_pass = wp_generate_password();
$user = array(
'user_login' => $username,
'user_pass' => $user_pass,
'first_name' => $firstname,
'last_name' => $lastname,
'user_email' => $email
);
$user_id = wp_insert_user( $user );
/*Send e-mail to admin and new user -
You could create your own e-mail instead of using this function*/
wp_new_user_notification( $user_id, $user_pass );
そしてここに私達はあなたがユーザーをログインできるようにログインとパスワードの両方を持っています。
お役に立てれば
登録プロセスを利用するのに理想的な場所はありません。ユーザー登録イベントアクションフックをコアに追加することは強力なケースだと思います。しかし、私はあなたがそれを偽物にすることができるかもしれないと、その間に思うと思います。ユーザーが正常に登録したときに起こる最後のことの1つは、 'default_password_nag'という名前のユーザーオプションの作成です。それを監視するアクションを作成し、設定されたときにユーザーを設定できます。
add_action('update_user_metadata', 'my_auto_login', 10, 4);
function my_auto_login( $metaid, $userid, $key, $value ) {
// We only care about the password nag event. Ignore anything else.
if ( 'default_password_nag' !== $key && true !== $value) {
return;
}
// Set the current user variables, and give him a cookie.
wp_set_current_user( $userid );
wp_set_auth_cookie( $userid );
}
テストされていませんが、理論上はうまくいくはずです。
何をすべきかがわかったので、これはセキュリティの観点からは悪い考えだと思います。迷惑メールのドロップボックスを設定する手間をかけずに、迷惑メールアカウントを作成することができます。 :)
私は user_registerフック と私の functions.php の以下のコードを使ってその機能を動かすことができたばかりです。
// auto log in a user who has just signed up
function auto_login_new_user( $user_id ) {
wp_set_auth_cookie( $user_id, false, is_ssl() );
}
add_action( 'user_register', 'auto_login_new_user' );
function login_after_register($userlogin,$userpass){
$credentials = array( 'user_login' => $userlogin, 'user_password' => $userpass, 'remember' => true );
$secure_cookie = is_ssl();
$secure_cookie = apply_filters('secure_signon_cookie', $secure_cookie, $credentials);
add_filter('authenticate', 'wp_authenticate_cookie', 30, 3);
$user = wp_authenticate($credentials['user_login'], $credentials['user_password']);
wp_set_auth_cookie($user->ID, $credentials["remember"], $secure_cookie);
do_action('wp_login', $user->user_login, $user);
}