【发布时间】:2014-07-10 21:45:03
【问题描述】:
我有什么:
- 我有一个常规的 WordPress wp-login.php 登录页面。
- 我已禁用用户请求重置密码的选项。
- 向用户显示一条错误消息,通知他们在尝试重置时重置被禁用。
我需要什么:
我需要更改/过滤显示“此用户不允许重置密码”的错误消息文本。
我的代码:
通常有效的过滤错误消息的常规方式:
add_filter( 'wp_login_errors', 'override_incorrect_password_msg', 10, 2 );
function override_incorrect_password_msg( $errors, $redirect_to ) {
if( isset( $errors->errors['incorrect_password'] ) ) {
$errors->errors['incorrect_password'][0] = '<span>Please provide the <strong>correct password</strong>.</span>';
}
return $errors;
}
为所需消息转置上述内容不起作用:
add_filter( 'wp_login_errors', 'noreset_msg', 10, 2 );
function noreset_msg( $errors, $redirect_to ) {
if( isset( $errors->errors['no_password_reset'] ) ) {
$errors->errors['no_password_reset'][0] = '<span>Password reset is not allowed for this user.</span>';
}
return $errors;
}
我的问题:
考虑到我很确定我有 the correct filter,为什么这不起作用?
【问题讨论】:
-
您链接到
retrieve_password过滤器,但您将函数连接到wp_login_errors过滤器。你为什么这样做? -
@henrywright - 我希望
wp_login_errors能够普遍处理登录和密码重置的错误。我尝试连接到retrieve_password,但我的代码仍然没有生效。我不知道以何种方式处理禁用密码重置的错误。 -
你在使用 WooCommerce 吗?
-
@doublesharp - 我的主题是为支持 WooCommerce 而构建的,但在我开发网站的其余部分时,插件本身目前已停用。
-
不确定...据我所知,该字符串仅在 WooCommerce 中找到。
标签: php wordpress error-handling