Require just email address to enter site
我有一个客户想要一个网站,该网站要求人们在每次输入之前都提供其电子邮件地址。有点像用户登录,但只有一个电子邮件地址。基本思想是能够查看每封电子邮件何时访问该站点以及去向何处,以便他可以根据它们在站点上查看的内容将信息发送到该地址。
我正在与wordpress合作,建议将网站仅提供给注册用户,然后使用wp-activity之类的插件跟踪该活动。但是,他不希望访问该网站的人必须记住密码。他只希望能够通过电子邮件地址跟踪用户活动。
有什么方法可以完成此操作而无需用户使用电子邮件地址和密码进行注册?
类似的东西应该可以工作,但是我没有对其进行测试:
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; } |
或仅使用像这样的现成插件:单击