Създайте свои собствени полета за контакт на WordPress

Днес създадох нов плъгин за вас. Плъгин, който се занимава с методи за контакт на потребителите. По принцип, когато редактирате потребител в администрацията, има блок „информация за контакт“. Е, искам да ви покажа как да добавите свои собствени полета там и да отида малко по-нататък, как да покажете (или не) тези нови полета на страницата за регистрация.


Ето преглед на това, което ще създадем:

редактиране-персонализирани полета

Нови потребителски полета на страницата за редактиране

персонализирани полета

Персонализирани полета на страницата за регистрация

И за да направим това, както обикновено, ще създадем хубав и прост плъгин!

Стъпка 1: Създайте приставката

Създайте нова папка в wp-content / плъгини и я наречете „методи за контакт с потребител-потребител“. Вътре в тази новосъздадена папка създайте файл, наречен „rc-custom-user-contact-method.php“, и го отворете в любимия си софтуер за редактор.

Поставете това съдържание в празния си файл. Този код просто регистрира приставката:

Стъпка 2: Определете вашите персонализирани полета

След това трябва да създадем променлива, която ще съдържа нашите персонализирани полета, тези, които да се използват в страницата на потребителското издание, а също и на страницата за регистрация по подразбиране. Да съхраним тези полета в променлива, наречена $ extra_fields.

$ extra_fields = масив (
масив („facebook“, __ („Потребителско име във Facebook“, „rc_cucm“), вярно),
масив ('twitter', __ ('Потребителско име в Twitter', 'rc_cucm'), вярно),
масив („googleplus“, __ („ID на Google+“, „rc_cucm“), вярно),
масив ('linkedin', __ ('Свързан в ID', '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. Този булев параметър казва дали полетата трябва да бъдат показани или не. Вярно: полето е показано, невярно: полето не се показва.

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

// Получаване на полета
глобални $ extra_fields;

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

"; } // endif } // край foreach }

Стъпка 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) {
ако ($ поле [2] == вярно) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // endif
} // край foreach

$ new_user_id = wp_update_user ($ userdata);
}

заключение

Е, видяхме основите как да добавяте нови полета към методите за контакт с потребителя, но това е всичко. Можете например да премахнете съществуващи полета като "Yahoo IM", "AIM" и "Jabber", като направите просто изключване (). Но можете също така да добавите някои функции за саниране на вашите персонализирани полета, за да проверите например дали телефонният номер има подходящ формат, дали е необходимо поле или не и т.н. и т.н. ... Не се колебайте да попитате за конкретни функции в коментарите!

О, и последно нещо ... ако искате да покажете данните на което и да е от вашето поле, просто използвайте това:

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

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