问题描述

我有一个非常大的多点。我有一个请求来启用多个用户可以使用相同电子邮件的选项。我发现一个插件 “允许多个帐户” 无法正常工作。我应该找出一些其他解决方案。我知道我可以使用像每个电子邮件一样添加+ sometext,所以它会显示与 WordPress 不同。你有其他解决方案吗?

最佳解决方案

您可以使用 wpmu_validate_user_signup 过滤器来删除错误,然后定义 WP_IMPORTING,以跳过 email_exist() wp_insert_user()功能中的 email_exist()检查:

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;
}

更新:对于非 Multi-site 设置,请尝试以下代码:

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

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。