1

我有一个客户想要一个要求人们在每次进入之前提供他们的电子邮件地址的网站。有点像用户登录,但只有一个电子邮件地址。基本想法是能够查看每封电子邮件何时访问该站点以及它的去向,以便他可以根据他们在该站点上查看的内容将信息发送到该地址。

我正在使用 wordpress,并建议使该站点仅对注册用户可用,然后使用诸如 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;
}

或者只使用像这样的现成插件:点击

于 2013-04-03T05:19:27.200 回答