码农家园

关闭
导航

关于wordpress:只需输入电子邮件地址即可进入网站


analyticsemailloginwordpress

Require just email address to enter site

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

我正在与wordpress合作,建议将网站仅提供给注册用户,然后使用wp-activity之类的插件跟踪该活动。但是,他不希望访问该网站的人必须记住密码。他只希望能够通过电子邮件地址跟踪用户活动。

有什么方法可以完成此操作而无需用户使用电子邮件地址和密码进行注册?

相关讨论

  • 他将得到很多[email protected] ..
  • 如果您希望用户使用电子邮件进行注册,请确保该电子邮件有效,并使用确认电子邮件进行验证
  • @Blorgbeard-wordpress具有通过发送验证邮件来激活用户的功能。因此所有假定的[email protected]都将为空
  • 您至少应在发送任何邮件之前验证电子邮件地址...


类似的东西应该可以工作,但是我没有对其进行测试:

1
2
3
4
5
6
7
8
9
10
11
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);

这个类似的功能也可以工作,但是我不确定它的安全性吗。.

1
2
3
4
5
6
7
8
9
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;
}

或仅使用像这样的现成插件:单击


Copyright ©  码农家园 联系:[email protected]