我在登录表单中添加了一个额外字段。当尝试获取该字段的用户值时(在检查是否相等之前),我有一个get_user_by(\'login\', $username);
. $用户名是电子邮件地址(这是我唯一允许的。)
具体错误是:Warning: trim() expects parameter 1 to be string, object given in /(removed for privacy)/public_html/wp-includes/class-wp-user.php on line 201
完整代码:(单击登录/wp登录后)
add_filter(\'wp_authenticate_user\', \'filter_login_auth\', 10, 3);
function filter_login_auth($username, $password) {
//get posted value
$value = $_POST[\'klantnr\'];
//get user object
$user = get_user_by(\'login\', $username);
//get stored klantnr
$stored = get_user_meta($user->ID, \'klantnr\', true);
if(!$user || empty($value) || $value != $stored) {
//No user, empty, or not correct
remove_action(\'authenticate\', \'wp_authenticate_username_password\', 20);
//Create error to return
$user = new WP_Error(\'denied\', __("<strong>ERROR</strong>: Je klantnummer is niet correct."));
}
// return null so if klantnr is correct the script continues.
return $user;
}