Расширенная регистрация и профиль пользователя


В  WordPress версии 3. x  регистрация проходит по простой форме. Вы указываете логин и свою почту, и на нее приходит Ваш пароль от аккаунта.  Многим это администраторам сайта это подходит и устраивает. А кто хочет большего, тогда данной видеоурок, для Вас.  Мы и рассмотрим,  как расширить регистрацию дополнительными полями и вывести их при  редактирование в профиле пользователя.

Видеоурок: Расширенная регистрация и профиль пользователя

Необходимые данныеДля открытия - нажмите

1. Добавляем дополнительные поля в профиль пользователя:

Делать мы буде это без планигов, редактированием файла  functions.php и так как в большинстве случаев стандартные контакты( aim,jabber)никому не нужны мы не будем их удалять и добавлять нужные нам. Мы просто подменим их на нужные нам, вот пример кода:

2. Добавляем дополнительные поля при регистрации.

Если Вы хотите что бы пользователи сразу заполняли дополнительные поля, вставим эти поля при регистрации. Делать мы  это будем так же  без планигов, редактированием файла  functions.php вот пример кода:

По аналоги добавляем и другие поля.

Продолжение цикла смотрите здесь Выводим дополнительные поля профиля в worpress

Не забываем оставлять свои комментарии : )


Понравился пост, подпишись на обновления

Понравилась статья? Получай свежие статьи первым по e-mail

[newsletter_signup_form id=0]

78 раз(а) написали о “Расширенная регистрация и профиль пользователя

  1. Спасибо огромнейшее за то, что Вы есть, и что помогли отыскать лабиринтах сети среди разного мусора такой бриллиант, как Ваш ресурс!!! просто и гениально, без всяких плагинов! замечательно!!!

    Ответить
    • Спасибо за такой теплый отзыв. Но самое интересное еще впереди. Так что подписывайтесь на обновления что быть в курсе новинок.

      Ответить
  2. Здравствуйте, Игорь. Как сделать расширенные поля — понятно, а вот как сделать чтобы при регистрации не на wp-login перекидывало а на скажем отдельную созданную страницу, где пользователь сможет зарегистрироваться, без перенаправления к wp-admin. Встроить нужно форму регистрации на сайте в дизайн сайта.

    Ответить
    • Здравствуйте,Виталий.

      1. Вам можно сделать блок авторизации, где указать ссылку на выбор:

      а. Авторизация и возврат на текущую страницу:

      б. Авторизация и переход на главную страницу:

      2. Или же если не разбираетесь в коде то можно воспользоваться плагинами:

      Theme My Login — отвечает за переадресовку(и не только) для разных групп пользователей
      Theme My Profile — это собственно блок входа(есть и другие надо только искать)

      Ответить
      • Спасибо за помощь, это то что надо =)

        Ответить
  3. Здравствуйте! А как можно поля aim,jabber спрятать, а два дополнительных поля создать не в разделе Контакты, а например в разделе География? Ну чтобы визуально оно так все отображалось.

    Ответить
    • В редактирование профиля не вижу смысла мудрить, в данном посте представлен оптимальный код.Раздел география и так подходит под раздел контакты. А вот в выводе шаблона там можно настроить как вам угодно. как это сделать смотрите здесь Выводим дополнительные поля профиля в worpress

      Ответить
  4. Игорь, поставила второй код в «функции темы».
    В самом начале. Сайт вообще перестал открываться!
    Пришлось обращаться в техподдержку хоста, восстановили из предыдущей версии.
    В чем может быть причина?

    Ответить
    • Марина, я не могу сказать в чем причина не видя функции вашей темы, т.к. они у всех разные разные. Из самого простейшего, что могу посоветовать поставить код в другом месте например в самый низ.

      Ответить
    • Марина, Марина. Вы ходите, что бы у меня был вывих мозга. Как я должен разобраться в этом во всем (с функцией в комментарии не заключенной в теги кода, и ссылкой на ваш блог). Скиньте архивом вашу тему мне на почту и тогда я смогу нормально глянуть что по чем.

      Ответить
  5. Хорошо. А как поставить в теги кода? Я нажала Code — потом php. и там где мерцал курсор вставила код. Но он почему-то отобразился сплошняком, без абзацев.

    Ответить
    • Судя как вы пишите — вы все делали правильно. Может не сработало потому, что большой код, а может что-то другое. Но что бы лучше разобраться в вашей теме, пришлите мне на почту ваш шаблон.

      Ответить
  6. Тема называется Admired, Ваш емейл не нашла, архив положила сюда>>.

    Ответить
    • Е-mail можно посмотреть в разделе «о нас». А я завтра постараюсь глянуть вашу тему.

      Ответить
    • Марина, все у вас работает в вашей теме. Просто вы наверное плохо разбираетесь в коде. Запомните любой файл php должен начинаться с

      < ?php

      и заканчиваться

      ?>

      . И второй код из данного урока можно поставить либо после открывающего тега либо перед закрывающим тегом.

      Ответить
  7. Да, Игорь, я, увы, почти не разбираюсь в коде. Код вставляла после <?php. сделала переход на след.строку и вставила. Попробую на каком-нибудь тренировочном сайте (создам на поддомене).

    Ответить
  8. Все сработало. 🙂 Может быть я не скопировала последнюю фигурную скобочку… ❓
    Или вставила после <?php /**… 😈

    А как же добавить еще поля? Например Фамилия, номер телефона… ?

    Ответить
    • А как же добавить еще поля? Например Фамилия, номер телефона… ?

      Марина, для чего я снимал видеоурок, там все рассказано. Делается все по аналоги как и с страной, и с городом.

      Ответить
  9. ОК, посмотрела. Вижу, что смогу!!! 🙂
    Игорь, скажите, а нельзя сделать так, чтоб пользователь свой пароль вводил при регистрации, а не получал на почту?
    Как везде почти сделано. Это наверное трудно?

    Ответить
    • Возможно можно, только я не искал. Не вижу в этом особо глубокого смысла, что бы копаться с движком. Кому надо всегда могут поменять в профиле пароль на свой.

      Ответить
      • Они не меняют в большинстве своем. Потом не помнят, и регятся заново! Эхе-хе…))

        Ответить
  10. Игорь, а как какому-то полю задать условие — например, регистрирующийся должен ввести особый код. И он — определенное количество цифр. И если он ошибся в количестве, то ему выдавалось бы предупреждение — некорректный код.

    Подобное делают в поле с номером телефона, например.

    Ответить
    • Вот еще вопрос остался… ?

      Ответить
      • На данный вопрос у меня пока нет ответа, т.к. php я еще сам тока изучаю и мои знания к сожалению пока не сильно глубоки. Как у меня получится я сразу напишу.

        Ответить
        • Ну хорошо. Подпишусь на ваши новости.

          Ответить
          • Вот такой код надо прописать для проверки написания телефона.

            Ответить
  11. А что будет, если я при регистрации добавлю поля — Имя, Фамилия, а
    они ведь есть в профиле (только никто их не заполняет потом).
    Они там второй раз не появятся?

    Ответить
    • Что поля не дублировались в профиле, надо и брать те значение которые там уже используются. Для имени — first_name, для фамилии — last_name.

      Ответить
      • Точно. Но ведь там не видно названия полей по латыни? Только по-русски.
        Я щелкнула правой кнопкой по страничке и выбрала «показать код». Так искать? Или есть другой способ?

        Ответить
        • Впрочем, кроме этих двух полей там нечему повторяться. Вопрос снят. 🙂

          Ответить
        • Да, можете воспользоваться этим способом, хотя есть и другие.

          Ответить
  12. И еще вопрос — а нужно вручную добавлять вот в эту строчку новые поля, или они добавятся сами?
    global $user_city, $user_strana, $user_imya, $user_familija;
    ?

    Ответить
    • Делайте по аналоги как вышеуказанном коде. Если вам надо, что бы выводилась сообщение об ошибке то в ф-цию global надо заносить значения нужного вам поля. Делайте на примере полей $user_city и $user_strana.

      Ответить
      • Да, я так и сделала. Спасибо! Все работает. Класс, чувствую себя, с Вашей помощью, волшебником. ))

        Ответить
  13. Я уже явно превысила лимит «почувствуй себя дураком на пять минут»… ))
    Что-то у меня фамилию никак не принимает. Я ввожу, а он мне пишет: Ошибка! Не указана фамилия!
    Вроде все одинаково для всех полей делала…
    Если есть возможность, посмотрите? Вот мой код в блокноте здесь>>
    Реализовывала на этом сайте.

    Ответить
    • У вас 2 ошибки в коде:

      1. где выводиться поле фамилия, у переменой допущен лишний пробел

      user_ last_name

      . Поэтому и выдает постоянно ошибку.
      2. Я же написал надо использовать для имени — first_name, для фамилии — last_name, без user_ иначе у вас поля будут дублироваться в профиле.

      Ответить
  14. Ошибки исправила. Все работало. Регистрация прошла.
    Но. Поля — город и страна в профиле не отображаются. Для этого же надо тот, верхний кусочек кода добавить?

    Результат — Сайт опять перестал открываться! Что ж теперь не так? Или обращаться на хостинг, чтоб откатали назад? Или можно что-то исправить в коде?
    Код поставила вначале, после <?php

    Ответить
    • А как должна срабатывать кнопка «код»? Что-то опять все в кучу сбилось, хотя вставляла в теги .

      Ответить
      • Надо выделить весь код и нажать на кнопку «код».

        Ответить
    • Результат — Сайт опять перестал открываться! Что ж теперь не так?

      Марина, не пойму что вы делаете не так. Я только что вставил этот код в вашей теме, сразу после

      Ответить
  15. Сделала еще раз. Все получилось. причины неудачи, к сожалению, не узнала.
    Теперь поля отображаются в профиле, все нормально.
    Спасибо Вам за помощь и терпение!

    PS: А они (новые поля) не должны появиться в таблице «Все пользователи»?
    Нужно заходить в профиль, чтоб увидеть?

    Ответить
    • нет в таблице они не появятся, только в самом профиле.

      Ответить
  16. Добавила еще одно поле, и опять сайт мой исчез!
    выдает строку — «неверный синтаксис кода, строка такая-то…»
    Я действительно поискала, и убрала два лишних пробела.
    После этого — все глаза проглядела — не могу найти ошибки!
    Обратилась в службу хостинга, они исправили, но причину, увы, я так и не узнала…

    Вижу, что надо изучать основы — какой-нибудь учебник по php.
    Вы можете что-то посоветовать? Какой-то курс, или учебник по которому можно выучить основы?

    Ответить
    • Хороший видеокурс есть у Попова Евгения PHP+MySQL для начинающих. Из книжек не знаю, что порекомендовать т.к. их целое море и читать их времени нет.

      Ответить
  17. Вот такой код надо прописать для проверки написания телефона.

    Ух ты! Круто! А где его вставить нужно?

    Ответить
    • Все делать надо по аналогии, рассмотреть можно на примере поля «Город» для этого замените:

      на код

      где 6 — количество знаков

      Ответить
  18. Здравствуйте Игорь. Если Вас не затруднит, буду благодарен за помощь. Необходимо реализовать дополнительное поле СТРАНА но чтоб пользователь выбирал страну из выпадающего списка стран свою. Буду очень признателен за помощь. С уважением Влад.

    Ответить
    • Влад, раньше я делал такое такое, но сейчас забыл как это у меня получилось. К сожалению поколдовав с кодом так и не добился нужного результата. 🙁

      Ответить
  19. Здравствуйте Игорь!!! Не получается поменять в админке дополнительные поля. Первый код ставил, никаких изменений вообще в профиле. Второй код ставлю, сайт не открывается, выдаёт ошибку. Помогите…

    Ответить
    • Обновил вордпресс до последней версии. Первый код нормально вставился, поля в админке отображаются. Второй код никак не хочет вставать, даёт синтаксическую ошибку. Как исправить ???

      Ответить
      • Вопрос снят, методом тыка разобрался. Код заработал

        Ответить
  20. Доброго времени суток. Подскажите пожалуйста, как можно сделать так, чтобы при регистрации, пользователь мог согласиться или отказаться от почтовой рассылки новостей сайта?

    Ответить
    • Данный вопрос я не исследовал, так что подсказать не могу.

      Ответить
  21. Ну а радиокнопку как вставить?

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

      Ответить
  22. Мне кажется что во втором коде у вас опечатка:

    я убрал этот бэкслеш и код заработал, так же и во второй строке

    Ответить
    • Спасибо, да была опечатка ?/> … ох уж эти плагины форматирования кода

      Ответить
  23. Как сделать так, чтобы над формой регистрации висело сообщение с выбранным мною текстом ??

    Ответить
      • Это не совсем то… Мне нужно чтобы там висело сообщение подобно вашего «ОШИБКА: Не указан город!»
        Хочу сделать предупреждение о том что использовать почту @ukr.net не рекомендуется

        Ответить
  24. и ещё, не сталкивались ли вы с подобной проблемой:
    на почду @ukr.net письма не приходят…
    Как её можна решить ?

    Ответить
    • нет данной почтой не пользовался

      Ответить
  25. Всем привет. Вот наконец и я внесу вклад в ваш сайт. Наверно многих интересует как изменить в форме входа а особенно в форме регистрации поле «Имя пользователя»
    Так как там таких два и при регистрации пользователей часто смущает это они не понимают в каком из полей писать свое имя или почему 2 раза надо писать. 😳
    Поле «Имя пользователя» это логин который вы будете использовать для входа на сайт (оно заполняется латиницей и цифрами). Итак сам код 😉

    Ответить
    • BASoftWARe, спасибо за вклад для нашего блога, действительно это может кому-нибудь пригодится.

      Ответить
  26. Подскажите как вывести профиль пользователя на отдельную страницу?
    Что бы пользователь вообще не попадал в админ панель, то есть если он захочет посмотреть свой профиль или отредактировать его то при нажатие на ссылку «Мой профиль» он не попадал в админку а профиль его загружался на обычной странице и там он мог менять его или как полностью скрыть админ панель ДЛЯ ПОЛЬЗОВАТЕЛЯ? (как скрыть саму панель я знаю, но тогда и админ не сможет её видеть, если кто знает как скрыть её только для пользователя буду признателен если поделетись

    Ответить
    • Theme My Login — с помощью этого плагина можно сделать профиль пользователя на самом плагине, настройки под каждую группу пользователей.

      Ответить
  27. Дико извиняюсь, сразу не написал, как это можно реализовать без плагинов? Уже привык, что тут обсуждаем напрямую коды. А так с плагинами конечно можно всё, даже не париться, поставил настроил (drag and drop так сказать) и забыл. Просто меня интересует без плагинов всё это делать, хочу, чтобы на сайте были только те плагины без которых ну никак 🙂

    Ответить
  28. Извиняюсь если не по теме. Как можно сделать так, чтобы после регистрации на сайте, пароль не высылался автоматически. А приходил мне на почту, после проверки всех данных, я бы высылал его сам.
    Заранее спасибо.

    Ответить
    • Не могу вам подсказать, не сталкивался с таким решением.

      Ответить
  29. Подскажите, пожалуйста, в чем ошибка.
    пытаюсь модифицировать код, чтобы вывести в форму регистрации предустановленное в ВП поле «О себе», но чтобы оно было обязательным..

    Пробелы+звездочки вставила чтобы код здесь не читался, в файле их нет, ессно.

    Попробовала — зарегилось с пустым :(..

    Ответить
    • Не совсем понял, что Вы от меня хотите и почему ваш код не работает.

      Могу Вам посоветовать не мучатся и воспользоваться моим кодом. А то есть убрать поле о себе и создать новое обязательное поле «цель регистрации».

      Ответить
      • Моя логика (может быть и женская) — зачем делать два действия — удалять, потом новое создавать, когда можно одним действием просто переименовать существующее поле.
        Сравнив коды, я решила вопрос, оказывается пропустила add_action(‘register_post’,’check_fields’,10,3);

        Ответить
  30. Здравствуйте как сделать так чтобы пользователь зарегился и не мог редактировать свой профиль только редактировал админ?

    Ответить
    • Слету не скажу, надо искать плагин отвечающий за права пользователей. Видел такие в интернете, точно как называется не скажу.

      Ответить
  31. Спасибо за ваш урок, по нему сделал, все заработало.
    Остался вопрос.
    Как добавить данное поле на страницу wp-admin/user-new.php.

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.