1

毎回アクセスする前に電子メール アドレスを入力する必要があるサイトを希望するクライアントがいます。ユーザーログインに似ていますが、メールアドレスのみを使用します。基本的な考え方は、各電子メールがいつサイトにアクセスし、どこに送信されたかを確認できるようにすることです。これにより、サイトで表示されている内容に基づいて、そのアドレスに情報を送信できます。

私はワードプレスで作業しており、サイトを登録ユーザーのみが利用できるようにし、そのアクティビティを wp-activity などのプラグインで追跡することをお勧めします。しかし、彼は、サイトにアクセスする人がパスワードを覚える必要がないようにしたいと考えています。彼は、ユーザーの活動を電子メール アドレスで追跡できるようにしたいだけです。

ユーザーがメールアドレスとパスワードを登録する必要なく、これを達成する方法はありますか?

4

1 に答える 1

1

このようなものはうまくいくはずですが、私はそれをテストしませんでした:

function o99_my_email_login($user, $pass) {
    global $wpdb;
    if (is_email($user)) {
        $found = $wpdb->get_var($wpdb->prepare("SELECT user_login FROM $wpdb->users WHERE user_email = '%s'", $user));
        $user = $found ? $found : $user;
    } else {
        $user = 1; // or $username = 1; ??
    }
    return;
}
add_action('wp_authenticate', 'o99_my_email_login', 10, 2);

また、この同様の機能は機能しますが、セキュリティについてはわかりません..

add_action('wp_authenticate','o99_smsa_allow_email_login');


function o99_smsa_allow_email_login($username) {
 $user = get_user_by_email($username);
 if(!empty($user->user_login))
 $username = $user->user_login;
 return $username;
}

または、このような既製のプラグインを使用するだけです: CLICK

于 2013-04-03T05:19:27.200 に答える