Поддержка Проблемы и решения Проверка зарегистрированного пользователя !

  • Решено lemonl

    (@lemonl)


    Все зарегистрированы пользователи в WordPress-е на находятся в таблице
    wp_users. Какой из параметров в таблице user_status или user_activation_key — отвечает, что пользователь подтвердил свою регистрацию через письмо которое ему отправляется на емейл.

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Вордпресс не требует от пользователей подтверждения регистрации на емейл. Поле user_status уже много лет ни для чего не используется. user_activation_ley используется при восстановлении забытого пароля. 🙂

    Автор lemonl

    (@lemonl)

    Спасибо! А где проходит проверка на корректность введенного логина и пароль. Я хотел бы еще добавить проверку на подтверждение регистрации через письмо которое ему отправляется на емейл. Например проверять еще по user_status или в другую колонку.

    Другими словами если user_status = 1 — пускаем пользователя, а если user_status = 0 тогда просим подтверждения регистрации через письмо.

    Попробуйте поискать соответствующий плагин.

    Автор lemonl

    (@lemonl)

    Может посоветуете какой?

    ПО описанию подходит этот:
    http://wordpress.org/extend/plugins/theme-my-login/

    Автор lemonl

    (@lemonl)

    ПО описанию подходит этот:
    http://wordpress.org/extend/plugins/theme-my-login/

    Очень много всего, сложно разобраться. Может уже кто-то делал подобное или подскажет где проходит проверка на корректность введенного логина и пароль, и производится вход.

    ^^ Всё это происходит в файле wp-login.php, но я очень не советую жтот файл редатировать, можно что-нибудь поломать. 😉 Тем более, что всё равно изменения, которые ты внесёшь в этот файл, потеряются после очередного обновления вордпресса. Так что для реализации дополнительного функционала придётся писать свой собственный плагин. 😉 Я рекомендую всё-таки воспользоваться существующим плагином. 🙂

    Можете посмотреть специализированные плагины на эту тему, может что и подберете себе в коллекцию…

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Может уже кто-то делал подобное или подскажет где проходит проверка на корректность введенного логина и пароль, и производится вход.

    Можно скопировать функцию wp_authenticate() из wp-includes/pluggable.php в собственный плагин и внести необходимые изменения. Там есть и пример возврата ошибки.

    Автор lemonl

    (@lemonl)

    Спасибо!!!

    Выяснил некоторые подробности, оказывается после регистрации пользователя (по умолчанию) в WordPress-е отправляется письмо, уже с генерированным паролем для пользователя.

    Где происходит генерация таких паролей и где происходит отправка таких писем?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    В функциях wp_generate_password() и wp_new_user_notification().

    Обе функции расположены в том же файле, т.е. их также можно копировать в собственный плагин и вносить изменения уже туда.

    Это только набросок плагина, сильно не «пинать» ))
    Юзер зарегистрировался и к нему пришло письмо, что ему надо активировать себя, он проходит по ссылке и попадает в свой профиль, где ему предлагается активация. Он берет ключ из письма ( в моем случае из БД :)) и копирует его в поле и нажимает «сохранить». В итоге он счастливчик! (подробнее в комментариях к коду)
    Вот набросок кода. Из доработки осталось только добавить в письмо $meta_value (ключ активации) и так, по мелочи… 🙂
    То бишь, у кого $meta_value = 1, то они читали письмо и все-таки зашли 🙂

    Автор lemonl

    (@lemonl)

    И еще, в таблице wp_users в колонке user_pass присутствуют пароли пользователей, они зашифрованы каким то образом.

    Как мне зашифровать пароль так чтобы при при входе такой пароль воспринимается системой? И где шифрует их WordPress? )

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    С помощью функции wp_hash_password(). Есть также wp_set_password(), которая шифрует пароль и сразу присваивает его пользователю.

    Если есть возможность — смотрите код, там есть ответы на все вопросы 🙂

    Автор lemonl

    (@lemonl)

    Когда использую

    <?php echo wp_hash_password(«password»); ?>

    Каждый раз меняется значение шифровки. Тут что-то не то!

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Тема «Проверка зарегистрированного пользователя !» закрыта для новых ответов.