我有一个客户想要一个网站,要求人们在每次进入之前提供他们的电子邮件地址。有点像用户登录,但只有一个电子邮件地址。基本的想法是能够看到每个电子邮件何时访问该网站以及它的去向,以便他可以根据他们在网站上查看的内容将信息发送到该地址。
我正在使用wordpress,并建议只为注册用户提供该网站,然后使用像wp-activity这样的插件跟踪该活动。但是,他不希望访问该网站的人必须记住密码。他只是希望能够通过电子邮件地址跟踪用户活动。
有没有办法在不要求用户注册电子邮件地址和密码的情况下完成此操作?
答案 0 :(得分: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;
}
或者只使用现成的插件this one : CLICK