您可以使用current_user_can()
检查用户是否具有编辑特定用户的权限。如果你想这么做的话。作为第二个参数,您需要获取相关的用户ID:
if ( current_user_can( \'edit_user\', $user_id ) ) {
// Do stuff.
}
因此,您可以通过表单发送相关的用户ID,可能作为隐藏字段,并使用该字段:
current_user_can( \'edit_user\', $_POST[\'user_id\'] )
或者您可以只使用当前用户的ID:
current_user_can( \'edit_user\', get_current_user_id() )
这些可能看起来是多余的,但从技术上讲,您可以不让用户编辑自己,因此这些方法仍然尊重网站所有者的编辑能力。
重要的一点是,如果你得到wp_get_current_user()
然后您就知道用户已登录,因此不需要检查密码/cookie等。这已经完成了。您只需检查当前用户是否具有执行某些操作的权限。
如果您试图再次检查用户的密码,那么您所拥有的应该可以工作。但我确实注意到,您的条件是这样写的,如果密码正确,它将被重定向到?validation=passwordincorrect
. 如果要在密码不正确时引发错误,应将条件更改为:
if ( $user && ! wp_check_password( $pass_check, $user->data->user_pass, $user->ID ) ) {
注意添加了!
.
另外,不要使用esc_attr
在提交的密码上。这可能会更改密码。如果用户已输入123<567
作为密码,您需要检查,而不是123<567
.
如果您试图创建登录表单,那么您应该只使用wp_login_form()
使用您自己的重定向。