如何解决“该电子邮件地址已被使用”的错误?

时间:2015-12-22 作者:here

如果以前的注册仍然挂起,并且电子邮件地址冲突,则可能会发生以下错误。

该电子邮件地址已被使用。请检查您的收件箱中是否有激活电子邮件。如果你什么都不做,它将在几天内可用。

相关用户名错误如下所示。

该用户名目前已被保留,但可能在几天后可用。

4 个回复
SO网友:here

以WordPress管理员身份登录,导航添加新用户复选框以绕过电子邮件确认,添加具有不同电子邮件地址的用户,将用户的电子邮件地址编辑为所需结果,有关类似的用户名错误,请参阅How can I un-reserve a pending username registration?

超时时间为冲突发生后2天,目前存在澄清此过程的trac票据herehere.

SO网友:Marty

当我添加一个具有不同电子邮件地址的新用户时,我会收到错误消息:该用户名当前已保留,但可能在几天后可用。

对于我来说,我从wp\\u signups表中的数据库中删除了该行,其中user\\u login等于用户名。基本上:

delete from wp_signups where user_login = \'abc\';
然后我可以重新添加用户。

@aubreypwd编辑建议:此外,管理员(仅在MU或网络安装中的网络管理员)可以选择添加用户而不发送电子邮件。如果选中该选项,则可以避免此过程。

SO网友:Nathan Johnson

为了解决“该电子邮件地址已被使用”错误,我们可以创建一个有效绕过检查的插件。该插件将分为三个部分,利用三个不同的挂钩。

pre_user_login 在清理用户名后对其进行筛选。我们将使用这个钩子来抓取用户,特别感兴趣的是电子邮件。

pre_user_email 在创建或更新用户之前过滤用户的电子邮件。我们将使用此挂钩将电子邮件修改为一些随机字符。

user_register 注册新用户后立即激发。我们将使用此挂钩在用户注册后手动更新用户电子邮件。

add_filter( \'pre_user_email\', [ new wpse_212671(), \'pre_user_login\' ] );
class wpse_212671 {
  protected $user;
  public function pre_user_login( $user ) {
    $this->user = $user;
    if( isset( $user[ \'ID\' ] ) || ! get_user_by( \'email\', $user[ \'user_email\' ] ) {
      return $user;
    }
    add_filter( \'pre_user_email\', [ $this, \'pre_user_email\' ] );
    add_action( \'user_register\',  [ $this, \'user_register\' ] );
  }
  public function pre_user_email( $email ) {
    return $this->generate_random_string();
  }
  public function user_register( $user_id ) {
    global $wpdb;
    $table = $wpdb->prefix . \'users\';
    $wpdb->query( $wpdb->prepare(
      "UPDATE %s 
      SET user_email = %s
      WHERE user_login = %s", 
      $table,
      $this->user[ \'user_email\' ], 
      $this->user[ \'user_login\' ]
    ) );
  }
  //* Code slightly modified from http://stackoverflow.com/a/13212994/6077935
  protected function generate_random_string( $length = 40 ) {
    return substr( str_shuffle( str_repeat( 
      $x=\'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\',
      ceil( $length / strlen( $x ) )
    ) ), 1, $length );
  }
}

SO网友:jeffmcneill

有一个名为“用户激活密钥”的有用插件,它向网络用户界面添加了一个菜单项:

https://wordpress.org/plugins/user-activation-keys/

这允许编辑/删除/批准用户激活请求以及随后保留的电子邮件地址/用户名。

相关推荐

使WordPress在USERS屏幕上显示wp_USERS表时,将默认用户元与另一个表中的列联接

我正在创建一个插件,将自定义的可排序列(声誉分数)添加到admin page>users中显示的users表中,问题是该列的数据应该从MySQL表wp\\U user\\U Reputation中提取(userid,user_reputation_score) [为我们自己的目的而创建]。我的评估是,我需要在查询中显示该列,以便为其添加排序功能。如何使make WordPress以wp\\u user\\u信誉加入wp\\u users表。我感谢你的帮助。