12

wp user_IDのみを指定してWordpressユーザーをログインさせる方法はありますか?

私はユーザーに何かを確認するための電子メールを送信しています。ユーザーが指定されたリンクをクリックしてWebサイトにアクセスすると、ユーザーが移動しているページを表示するためにログインする必要があるため、ユーザーにログインしてから実行する必要があります。ヘッダーリダイレクト。

ワードプレスが提供するphp関数が必要です。これはphpで使用できますが、実装方法についての詳細を教えてください(ある場合)。

4

4 に答える 4

43

ここで、ユーザーを自動ログに記録する関数(テストされていません):

function auto_login() {
    if (!is_user_logged_in()) {
        //determine WordPress user account to impersonate
        $user_login = 'guest';

       //get user's ID
        $user = get_userdatabylogin($user_login);
        $user_id = $user->ID;

        //login
        wp_set_current_user($user_id, $user_login);
        wp_set_auth_cookie($user_id);
        do_action('wp_login', $user_login);
    }
}
于 2012-04-06T09:38:43.193 に答える
7

wp_loginフックで2つのパラメーターを渡す必要があります。Wpコーデックスを参照してください

wp_set_current_user( $user_id, $user->user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login, $user );
于 2015-12-31T13:49:50.497 に答える
2

送信したすべてのリンクとそれぞれの一時認証コードを保存するための個別のテーブルを作成します。これはしばらくの間のみ有効である可能性があり、その一時認証コードと電子メールをurlparamとして渡します-

ユーザーが電子メールをクリックするとすぐにリダイレクトできるように、一時認証コードに基づいてユーザーを検証するコードを記述します。

于 2012-04-06T09:41:08.100 に答える
-1

それは本当に悪い考えです。これを考慮してください:次のリンクを含む電子メールをユーザーAおよびBに送信します。

http://wordpressblog.exp/fromemail?user_id=A;
http://wordpressblog.exp/fromemail?user_id=B;

ユーザーBが自分のユーザーIDをAのuser_idに置き換えると、ユーザーAのアカウントにアクセスできます。そのようにユーザーをログに記録するためのハッシュを作成する方が良いでしょう

于 2012-04-06T09:33:35.130 に答える