wordpress新用户注册时提示“您的密码重设链接无效”(代码片段)

dean0731 dean0731     2023-04-17     407

关键词:

在使用Wordpress密码找回功能及新用户注册邮件中的重置密码链接时,Wordpress提示“您的密码重设链接无效,请在下方请求新链接。”、“该key似乎无效”、“invalid key”。

技术图片

这个其实不是wordpress的问题,邮箱收到邮件后,会将密码重置链接地址及其前后的“<>”一起当成链接地址生成超链接,点击此超链接后,由于传给wordpress的参数不对(多了个>),例如把鼠标移到下图的红色框的连接上,并看到浏览器左下角的URL提示连接,会发现多了一个“>”,所以wordpress提示密码重设链接无效。

技术图片

  此问题主要影响忘记密码时的找回密码功能及新用户注册时,系统给新用户发送的密码设置功能。可通过以下两个步骤解决此问题:

 

  • 解决找回密码时提示“您的密码重设链接无效”:

  打开WP根目录下的 wp-login.php,找到如下代码(374行左右):

$message .= ‘<‘ . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), ‘login‘) . ">
";
  修改为:
$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), ‘login‘) . "
";

  即去掉两个尖括号即可。

 

  • 解决新用户注册时,点击邮件中的重置密码链接提示“您的密码重设链接无效”:

   打开WP安装目录下的/wp-includes/pluggable.php,找到如下代码(1741行左右):

$message .= ‘<‘ . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), ‘login‘) . ">

";

  修改为:

$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), ‘login‘) . "

";

  以上修改后,用户收到的密码重置及新用户收到的密码设置邮件将不会再包含“<>”,用户再邮箱中点击链接后即可正常重置或者设置密码。以上修改涉及到Wordpress源代码的修改,每次升级Wordpress后修改会被覆盖,必须重新进行以上修改。

  另一种解决方式:把下面的代码加入当前主题的functions.php里面就可以了。

技术图片
/**
* 修复WordPress找回密码提示“抱歉,该key似乎无效”问题 */ function reset_password_message( $message, $key )  if ( strpos($_POST[‘user_login‘], ‘@‘) )  $user_data = get_user_by(‘email‘, trim($_POST[‘user_login‘]));
 else  $login = trim($_POST[‘user_login‘]); $user_data = get_user_by(‘login‘, $login);
 $user_login = $user_data->user_login; $msg = __(‘有人要求重设如下帐号的密码:‘). "

"; $msg .= network_site_url() . "

"; $msg .= sprintf(__(‘用户名:%s‘), $user_login) . "

"; $msg .= __(‘若这不是您本人要求的,请忽略本邮件,一切如常。‘) . "

"; $msg .= __(‘要重置您的密码,请打开下面的链接:‘). "

"; $msg .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), ‘login‘) ; return $msg;

add_filter(‘retrieve_password_message‘, reset_password_message, null, 2);
技术图片
 

  这种办法的缺点是,每次换主题都要重新把代码添加到主题的function.php文件中。

在 WordPress 中以编程方式将文件上传给用户

】在WordPress中以编程方式将文件上传给用户【英文标题】:UploadfilesprogrammaticallytousersinWordPress【发布时间】:2016-02-0907:51:28【问题描述】:我正在使用pods插件向用户添加新的自定义字段,因此我添加了4个文件自定义字段,然后... 查看详情

提示音 新用户来了

】提示音新用户来了【英文标题】:alertbeepsoundnewusercomes【发布时间】:2010-06-2305:19:53【问题描述】:我正在做私人聊天的概念。我想在新用户进来时发出哔声。怎么办?当新用户进入时,我会显示所有内容,用户详细信息将出... 查看详情

Wordpress 用户角色/权限

】Wordpress用户角色/权限【英文标题】:Wordpressuserroles/permissions【发布时间】:2015-11-2613:13:23【问题描述】:我有一个管理员用户和一个贡献者用户。现在,当贡献者创建一个新页面时,它会被发送给管理员用户以供批准。这很... 查看详情

使用 WordPress 时 Tooltipster 工具提示内容为空

】使用WordPress时Tooltipster工具提示内容为空【英文标题】:TooltipstertooltipcontentsemptywhenusingWordPress【发布时间】:2018-07-1804:34:57【问题描述】:使用我们的WordPress网站实施Tooltipster,但遇到了障碍。工具提示正确打开,但工具提示... 查看详情

Wordpress:为用户创建一个新的 usermeta 字段

】Wordpress:为用户创建一个新的usermeta字段【英文标题】:Wordpress:Createanewusermetafieldforusers【发布时间】:2011-09-0217:54:28【问题描述】:如何使用下拉选择值创建新的用户元字段?我想为所有具有我想要的新自定义字段的特定值... 查看详情

sql添加新的wordpress用户(代码片段)

查看详情

使用 Python 和 MySQLdb 将新用户添加到 Wordpress

】使用Python和MySQLdb将新用户添加到Wordpress【英文标题】:AddnewusertoWordpressusingPythonandMySQLdb【发布时间】:2015-02-1616:51:19【问题描述】:我正在尝试从Python添加一个新的Wordpress用户。我创建了这个函数:defadduser(domain_ip,username,passw... 查看详情

php在wordpress中注册并输出一个新菜单(代码片段)

查看详情

php在wordpress中注册并输出一个新菜单(代码片段)

查看详情

php在wordpress中注册并输出一个新菜单(代码片段)

查看详情

如何从 FTP 创建新的 wordpress 管理员用户

】如何从FTP创建新的wordpress管理员用户【英文标题】:HowtocreatenewwordpressadminuserfromFTP【发布时间】:2018-11-1307:02:47【问题描述】:我已经有几年没有登录过我网站的wordpress后端了。然而,现在我使用的密码似乎都不起作用。我要... 查看详情

wordpress3让新用户和旧用户完全一样

Gothroughalltheauthorsofawordpressimportandmakethemthesameasthepreviousauthors(Wordpress3.3).(function($){$('#authors').children('li').each(function(i,el){varnm=$(this).children('strong').text();$(this).children('i... 查看详情

如何将 WordPress 用户角色添加到 Woocommerce 新管理员订单电子邮件主题

】如何将WordPress用户角色添加到Woocommerce新管理员订单电子邮件主题【英文标题】:HowtoaddWordPressUserRoletoWoocommerceNewAdminOrderEmailSubject【发布时间】:2019-01-2719:52:57【问题描述】:我正在构建的Woocommerce网站具有零售客户和批发客... 查看详情

php禁用新wordpress用户注册的电子邮件要求-register_new_user(代码片段)

查看详情

微信小程序发布新版本时自动提示用户更新(代码片段)

...通过已打开的小程序进入(未手动删除),则会弹出这个提示,提醒用户更新新的版本。用户点击确定就可以自动重启更新,点击取消则关闭弹窗,不再更新。官方给的示例代码:constupdateManager=wx.getUpdateManager()updateManager.onCheckFo... 查看详情

将其他帐单注册字段与 WooCommerce 中的默认 Wordpress 字段同步

...04-2616:52:18【问题描述】:我已将以下代码添加到Woocommerce用户注册表单中,以在注册页面上获取帐单详细信息。现在当新用户注册时会发生什么,名字和姓 查看详情

导航到 Wordpress 中的新页面时无法清除 WooCommerce 购物车 [重复]

】导航到Wordpress中的新页面时无法清除WooCommerce购物车[重复]【英文标题】:UnabletoclearWooComercecartwhennavigatingtoanewpageinsideWordpress[duplicate]【发布时间】:2020-11-1818:39:12【问题描述】:每当访问者导航到特定页面(ID#1)时,我都会... 查看详情

新表字段上的 Wordpress user_login 字段

】新表字段上的Wordpressuser_login字段【英文标题】:Wordpressuser_loginfieldonnewtablefield【发布时间】:2011-12-1008:03:51【问题描述】:我正在使用wordpress,并且在wordpress数据库中创建了一个新表。我创建了一个包含用户ID字段的新表我的... 查看详情