如何允许多个注册用户拥有相同的电子邮件?

时间:2013-12-11 作者:Michael

如果电子邮件已经注册,我如何允许用户在网站上注册并忽略WP抛出的错误-“此电子邮件已经注册,请选择另一封。”

我尝试编写自己的插件,但不起作用:

if($errors[\'field\'.$field->id] == \'This email is already registered, please choose another one.\')
unset($errors[\'field\'.$field->id]);
在此方面的任何帮助都将不胜感激。

附言

i) 我知道允许同一封电子邮件进行注册并不理想,但我看不到另一种解决方案,即允许同一家庭成员使用不同的用户名但使用同一封家庭电子邮件进行注册。

ii)使用代码,前一个问题的答案在单个站点上不起作用

add_filter(\'pre_user_email\', \'skip_email_exist\');
这就是为什么我要问这个问题来解决单站点问题。

2 个回复
SO网友:Nicholas Koskowski

不幸的是,如果不对代码和数据库结构进行重大修改,这是不可能的,因为WordPress将用户电子邮件存储在数据库中的“唯一”行中。仅仅取消设置错误消息并不能解决此问题,因为没有创建用户。

SO网友:TomC

我想你已经看过了wp-includes/user.php, 下面我指的是

最简单的方法:注释掉第1691行(EDIT : THIS METHOD IS NOT RECOMMENDED AS IT\'S EDITING CORE FILES AND ISN\'T FUTURE-PROOF AND SHOULD BE CONSIDERED A LAST RESORT)

替代方式:第1690行用户。php具有以下功能:

elseif ( email_exists( $user_email ) ) {
        $errors->add( \'email_exists\', __( \'<strong>ERROR</strong>: This email is already registered, please choose another one.\' ) );
    }
在代码示例中,您使用$errors[\'field\'.$field->id]你检查过了吗$errors[\'field\'.$field->id] 是否存在/是否已设置?不确定此处使用的语法是否正确,但您可以检查,然后取消设置如下内容$errors[\'email_exists\']

结束

相关推荐