У меня установлена WordPress на моем сайте, и у меня есть плагин, который берет имена пользователей из xenforo и импортирует их. Некоторые пользователи уже были созданы в WordPress, и теперь эти пользователи получают эту ошибку, если они пытаются войти в систему. Может ли кто-нибудь помочь с кодом, чтобы избежать этого?
Uncaught Error: Call to a member function exists() on string in /home/xxx/public_html/blog/wp-
includes/user.php on line 1365
clean_user_cache()
wp-includes/pluggable.php:2532
wp_set_password()
wp-content/plugins/xpress-forum-user-bridge/src/Filter/Authenticate.php:107
createUser()
wp-content/plugins/xpress-forum-user-bridge/src/Filter/Authenticate.php:94
authenticate()
wp-includes/class-wp-hook.php:288
apply_filters()
wp-includes/plugin.php:206
apply_filters()
wp-includes/pluggable.php:539
wp_authenticate()
wp-includes/user.php:95
wp_signon()
wp-login.php:1187
Вот Аутентификация. php из плагина
public static function authenticate($user, $login, $password)
{
if (get_option('xpress_lite_auth_with_xf', false) && $login && $password) {
if ($user instanceof \WP_User) {
return $user;
}
$apiClient = self::apiClient();
if (!$apiClient) {
return $user;
}
try {
$xfUser = $apiClient->xf->auth->auth($login, $password);
} catch (AbstractRequestException $e) {
return $user;
} catch (XFApiException $e) {
return $user;
}
if ($xfUser) {
return self::createUser($xfUser, $password, $login);
}
}
return $user;
}
protected static function createUser($xfUser, $password, $login)
{
if ($xfUser->email) {
$emailUser = get_user_by('email', $xfUser->email);
if ($emailUser) {
wp_set_password($emailUser->ID, $password);
return $emailUser;
}
}
$nameUser = get_user_by('login', $xfUser->username);
if ($nameUser) {
$newName = $xfUser->email;
} else {
$newName = $xfUser->username;
}
$userId = wp_create_user($newName, $password, $xfUser->email);
return get_user_by('ID', $userId);
}
}