Может кто-нибудь помочь мне исправить это? Uncaught Ошибка: вызов функции-члена существует () - PullRequest
0 голосов
/ 26 января 2020

У меня установлена ​​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);
    }


}

1 Ответ

0 голосов
/ 26 января 2020

Добавление FS_METHOD в wp-config. php решило проблемы.

// worked
define('FS_METHOD','direct');

Сначала я пошел по пути пользователя FTP, но блокировка доступа пользователя к подкаталогу снова прервалась, поскольку плагин продолжал запрашивая абсолютный путь, несмотря ни на что. Даже добавление путей в конфиге не помогло в моем случае.

// updating paths did not help
define( 'FTP_BASE', '/path/to/wordpress/' );
define( 'FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/' );
define( 'FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/' );
define( 'FTP_USER', 'username' );
define( 'FTP_PASS', 'password' );
define( 'FTP_HOST', 'ftp.example.org' );
define( 'FTP_SSL', false );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...