Как добавить дополнительное поле в профиль пользователя WordPress

Возникла у меня необходимость добавить поле Предприятие, в профиль пользователя.

Добавить поле в профиль пользователя WordPress

Для решения данного вопроса можно воспользоваться двумя вариантами.
Первый, это использовать стандартное решение, а именно использовать таблицу wp_usermeta, где хранится дополнительна мета информация про пользователя, например имя или фамилия.  В таблице wp_usermeta, есть три основных поля: user_id, где указывается id пользователя, к которому относится мета поле; meta_key, здесь прописывается название мета поля и поле meta_value, здесь прописывается значения поля.   Т.е, когда мы создадим дополнительное поле, то появится еще одна строка в таблице wp_usermeta, где будет прописано наше поле и его значение.
За создание и обновление мета полей отвечает соответствующая функция в WordPress, а именно update_usermeta().

Второй вариант, это добавить поле в таблицу, например таблицу с пользователями wp_users.  Я опишу два варианта, отличие будет только в процессе записи данных, при обновлении профиля. А функция чтения будет одна, это стандартная функция получения мета данных пользователя: get_the_author_meta(). Дело в том, что функция get_the_author_meta() в начале читает таблицу wp_users, и ищет в этой таблице соответствующее поле, и если не находит, то ищет уже в wp_usermeta.

Все изменения и дополнения будем производить в файле functions.php нашей (вашей 🙂 ) темы. Для этого создадим функцию show_profile_fields () чтения данных из мета поля, таблицы wp_usermeta.

Этот код  создаст дополнительное поле Предприятие, и если есть заполненное поле company у пользователя, то отобразит его в настройках изменения профиля пользователя.

Для того, чтобы сохранить введенные данные нашего созданного поля,  создадим еще одну функцию в functions.php.

Функция save_profile_fields()  срабатывает, когда вы нажимаете Обновить профиль. В этот момент, данные передаются методом POST, это – $_POST[company]  значения которого перехватываются функцией save_profile_fields() , и сохраняются в wp_usermeta.

Если есть желание создать полноценное поле в таблице, то создавайте в wp_users, дополнительное поле, например с помощью phpMyAdmin, а далее изменим функцию сохранения save_profile_fields() , поменяем код.

Дополнение

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

Добавить поле в профиль пользователя WordPress

 

(Пока оценок нет)
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x