Створіть власні поля контактів користувача WordPress

Сьогодні я створив для вас новий плагін. Плагін, який стосується методів контакту з користувачами. В основному, коли ви редагуєте користувача в адміністрації, існує блок “контактна інформація”. Ну, я хотів би показати вам, як додати туди свої власні поля та трохи пізніше, як показати (чи ні) ці нові поля на сторінці реєстрації.


Ось попередній перегляд того, що ми збираємось створити:

edit-custom-поля

Нові поля користувача на сторінці редагування

користувацькі поля

Спеціальні поля на сторінці реєстрації

І для цього, як завжди, ми створимо приємний і простий плагін!

Крок 1: Створіть плагін

Створіть нову папку у wp-content / plugins та назвіть її “власні-користувальницькі-контактні методи”. Всередині цієї новоствореної папки створіть файл під назвою “rc-custom-user-contact-method.php” і відкрийте його у вашому улюбленому програмному забезпеченні редактора.

Помістіть цей вміст у порожній файл. Цей код просто реєструє плагін:

Крок 2. Визначте власні поля

Далі нам потрібно створити змінну, яка буде містити наші власні поля, ті, які використовуватимуться на сторінці видання користувача, а також на сторінці реєстрації за замовчуванням. Давайте збережемо ці поля у змінній, що називається $ extra_fields.

$ extra_fields = масив (
масив ('facebook', __ ('ім'я користувача Facebook', 'rc_cucm'), правда),
масив ('twitter', __ ('ім'я користувача Twitter', 'rc_cucm'), правда),
масив ("googleplus", __ ("ідентифікатор Google+", "rc_cucm"), правда),
масив ('linkedin', __ ('Зв'язаний ідентифікатор', 'rc_cucm'), помилково),
масив ('pinterest', __ ('ім'я користувача Pinterest', 'rc_cucm'), помилково),
масив ('wordpress', __ ('ім'я WordPress.org', 'rc_cucm'), помилково),
масив ('телефон', __ ('Номер телефону', 'rc_cucm'), вірно)
);

Ми зберігаємо кожне поле в масиві, який має 3 параметри, перший - ідентифікатор поля, другий - мітка поля, а останній - булева інформація, яка визначає, чи відображається поле на сторінці реєстрації чи ні . Ви можете додати скільки завгодно параметрів, наприклад, заповнювач місця або потрібну інформацію.

Крок 3: Підключіть правий фільтр

Тепер нам потрібно підключити функцію до правого фільтра. У нашому конкретному випадку фільтр - це "user_contactmethods", а назва функції, яку ми створимо, - "rc_add_user_contactmethods".

// Використовуйте методи user_contactmethods для додавання нових полів
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Крок 4: Створіть наші власні поля

Тепер нам потрібно створити функцію "rc_add_user_contactmethods". Це те, що додасть наші користувацькі поля до сторінки редагування користувача. Хороша новина полягає в тому, що ми зберігали свої поля в масиві, це означає, що наступна функція буде повністю динамічною, і додавати нові поля буде досить просто, змінивши змінну $ extra_fields.

/ **
* Додайте спеціальні користувацькі методи контактів
*
* @ доступ громадськості
* @since 1.0
* @return void
* /
функція rc_add_user_contactmethods ($ user_contactmethods) {

// Отримати поля
глобальні $ extra_fields;

// Відображення кожного поля
foreach ($ extra_fields як $ field) {
if (! isset ($ contactmethods [$ field [0]]))
$ user_contactmethods [$ field [0]] = $ field [1];
}

// Повертає методи контакту
повернути $ user_contactmethods;
}

На цьому кроці, якщо ви збережете та активуєте плагін, вам слід побачити власні поля на сторінці редагування користувача. Оскільки ми використовуємо правильний гак, нам не потрібно створювати дані "збереження" полів. Отже, плагін на даний момент працює чудово. Але я хотів би піти трохи далі та додати можливість відображення цих полів на сторінці реєстрації. Переконайтеся, що ви встановите прапорець "Усі можуть зареєструватися", інакше ви не зможете побачити посилання "Зареєструватися"..

Крок 5: Гачки для реєстрації сторінки

Щоб додати наші поля до сторінки реєстрації, нам потрібно отримати доступ принаймні до двох гаків і створити дві функції. Одне для відображення полів, а друге для збереження даних про поля в базі даних.

Давайте підключимо наші функції:

// Додайте наші поля до процесу реєстрації
добавлення ('register_form', 'rc_register_form_display_extra_fields');
добавлення ("user_register", 'rc_user_register_save_extra_fields', 100);

Крок 6: Відображення сторінки реєстрації користувацьких полів

У наведеному вище коді ми оголосили дві функції. Перший - це відображення полів на сторінці реєстрації. У цій частині нам потрібно подбати про третій параметр кожного масиву в $ extra_fields. Цей булевий параметр вказує, чи потрібно показувати поля чи ні. Щоправда: поле відображається, помилково: поле не відображається.

/ **
* Показати спеціальні поля на сторінці реєстрації
*
* Показати власні поля при реєстрації, якщо для третього параметра поля встановлено значення true
*
* @ доступ громадськості
* @since 1.0
* @return void
* /
функція rc_register_form_display_extra_fields () {

// Отримати поля
глобальні $ extra_fields;

// Показувати кожне поле, якщо для 3-го параметра встановлено значення "true"
foreach ($ extra_fields як $ field) {
if ($ поле [2] == вірно) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ field [0]]: '';
відлуння '

'; } // ендіф } // закінчити передм }

Крок 7: Зберігайте значення полів під час реєстрації

Тепер, коли наші поля відображаються на сторінці реєстрації, нам потрібно зберігати їх значення в базі даних. Це момент функції "rc_user_register_save_extra_fields". Для цього нам потрібно використовувати “wp_update_user ()”Функція.

/ **
* Збереження значень поля
*
* @ доступ громадськості
* @since 1.0
* @return void
* /
функція rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Отримати поля
глобальні $ extra_fields;

$ userdata = array ();
$ userdata ['ID'] = $ user_id;

// Збережіть кожне поле
foreach ($ extra_fields як $ field) {
if ($ поле [2] == вірно) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // ендіф
} // закінчити передм

$ new_user_id = wp_update_user ($ userdata);
}

Висновок

Що ж, ми побачили основи того, як додати нові поля до методів контакту з користувачем, але це все. Наприклад, ви можете видалити існуючі поля, такі як "Yahoo IM", "AIM" та "Jabber", виконуючи просте скасування (). Але ви також можете додати деякі функції, щоб очистити свої власні поля, щоб перевірити, наприклад, чи номер телефону має відповідний формат, чи потрібне поле чи ні, і т. Д. Тощо.!

О, і остання річ… якщо ви хочете відобразити дані будь-якого свого поля, просто скористайтеся цим:

// Param 1 - ідентифікатор користувача
// Param 2 - ідентифікатор поля
// Param 3 є, щоб отримати var або масив
echo get_user_meta (1, 'щебетати', правда);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

    Like this post? Please share to your friends:
    Adblock
    detector
    map