【问题标题】:Require just email address to enter site只需要电子邮件地址即可进入网站
【发布时间】:2015-03-23 09:51:27
【问题描述】:

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

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

有没有什么方法可以做到这一点而无需用户使用电子邮件地址和密码进行注册?

【问题讨论】:

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

标签: wordpress email login analytics


【解决方案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 这样的现成插件

【讨论】:

    猜你喜欢
    • 2013-05-13
    • 2012-01-20
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多