I\'m looking for a method to keep users out of the wp_users table until they have confirmed their email address.
WordPress通过电子邮件向新用户发送密码,这实际上是电子邮件确认。但无论他们是否确认——即使电子邮件是假的——他们已经被添加到表中。你无法区分哪些人已经确认,因此他们会填写你的用户表,如果有人以后试图注册该电子邮件(如果他们从未收到该电子邮件,或从未回复,或其他人使用了他们的电子邮件地址等),则会造成混淆。我不希望未确认的用户/电子邮件出现在我的wp\\u users表中。
我在寻找一种方法
在48小时后清除未确认的帐户,或者更好的做法是将它们放在一个中间表中,直到确认为止,然后注册它们,并在48小时超时后清除条目,似乎没有基本插件可以做到这一点。有一个插件将“unconfirmed\\u user\\”添加到用户名的开头,直到他们确认,然后将其删除,但这仍然会将其保留在用户表中,并且在超时后不会将其删除。
BuddyPress做了我想做的一切,但是有很多膨胀,还有很多额外的桌子。
实现我的目标最优雅的方法是什么?我认为这将涉及(至少):
一个中间表,其中包含用户名、电子邮件、生成的密钥和时间戳,连接到注册函数并拦截注册,并将用户存储在表中(EDIT: 或者更简单地说,在本机注册过程之后,从wp\\u users表中删除并将其添加到signup表)。然后通过电子邮件发送确认,并将密钥附加到wp登录。php url截取具有有效密钥的登录并删除条目,并以编程方式注册用户(基本上与步骤2相反)
运行cron函数以在48小时后删除注册是否有我错过的无膨胀插件可以实现这一点,如果没有,我的方法听起来是否正确?涉及哪些关键挂钩?我是否错过了流程中的任何“陷阱”?