如何为多个用户使用同一封电子邮件


14

我有一个很大的多站点。我收到一个启用选项,要求多个用户可以使用同一封电子邮件。我发现一个插件“允许多个帐户”无法正常工作。我应该为此找到其他解决方案。我知道我可以在每封电子邮件中使用+ sometext之类的方式,因此它与Wordpress的显示方式有所不同。您还有其他解决方案可以在这里完成吗?


5
您需要注意这一点。如果您能够正常工作,并且尝试将同一封电子邮件用于多个不同的个人,则这些个人中的任何一个都将能够为使用共享电子邮件的任何或所有帐户重置密码。该电子邮件地址是安全系统的一部分。
s_ha_dum

是的,我知道,但是我仍在寻找这种解决方案
Boban 2012年

1
Parham的回答很简洁,但我也想指出,电子邮件地址不一定是真实的,因此您可以使用伪造的电子邮件地址创建帐户。用户可以在以后愿意时进行更改。这在安全方面具有优势,并防止了假设每个​​电子邮件地址只有一个用户名的WordPress插件和插件的问题。
wp-overwatch.com

正是我需要的先生。我只是想要将其用于测试目的。
LegendLength

Answers:


15

您可以使用wpmu_validate_user_signup过滤器消除错误,然后定义WP_IMPORTING只是跳过email_exist()签入wp_insert_user()功能:

add_filter('wpmu_validate_user_signup', 'skip_email_exist');
function skip_email_exist($result){
    if(isset($result['errors']->errors['user_email']) && ($key = array_search(__('Sorry, that email address is already used!'), $result['errors']->errors['user_email'])) !== false) {
        unset($result['errors']->errors['user_email'][$key]);
        if (empty($result['errors']->errors['user_email'])) unset($result['errors']->errors['user_email']);
    }
    define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' );
    return $result;
}

更新:对于非多站点安装,请尝试以下代码:

add_filter('pre_user_email', 'skip_email_exist');
function skip_email_exist($user_email){
    define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' );
    return $user_email;
}

我认为这是正确的答案。标记为正确。谢谢!
博班2012年

1
这在Wordpress 3.5中不起作用。
Guillochon

@Guillochon我看不到WP 3.5中的任何更改都会使此代码无法正常工作。这是针对多站点设置的,您是否正在WP MU设置上进行测试?
帕勒姆(Parham)2013年

我的错误,我正在尝试单个站点设置。单个站点的“多个帐户”插件不再起作用,因此我一直在寻找替代方案。
Guillochon

1
在多站点设置中丢失密码通知会怎样?如何处理?
Tiny Giant Studios
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.