Creeu els vostres propis camps de contacte d’usuaris de WordPress

Avui he creat un nou complement per a vosaltres. Un complement que tracta els mètodes de contacte dels usuaris. Bàsicament quan editeu un usuari a l’administració, hi ha un bloc “informació de contacte”. Bé, voldria mostrar-vos com afegir els vostres propis camps i anar una mica més enllà, com mostrar (o no) aquests nous camps a la pàgina de registre.


Aquí teniu una vista prèvia del que crearem:

edit-custom-camps

Nous camps d’usuari a la pàgina d’edició

camps personalitzats

Camps personalitzats a la pàgina de registre

I per fer-ho, com de costum, crearem un complement senzill i agradable!

Pas 1: crea el connector

Creeu una carpeta nova a wp-content / plugins i truqueu-la com a “mètodes personalitzats-usuaris-contactes”. Dins d’aquesta carpeta de nova creació, creeu un fitxer anomenat “rc-custom-user-contact-method.php” i obriu-lo al programari d’editor favorit..

Col·loca aquest contingut al fitxer buit. Aquest codi només registra el complement:

Pas 2: definiu els vostres camps personalitzats

A continuació, hem de crear una variable que contingui els nostres camps personalitzats, els que s’utilitzaran a la pàgina d’edició de l’usuari i també a la pàgina predeterminada de registre. Emmagatzemem aquests camps en una variable anomenada $ extra_fields.

$ extra_fields = matriu (
matriu ("facebook", __ ("nom d'usuari de Facebook", "rc_cucm"), cert),
matriu ("twitter", __ ("Nom d'usuari de Twitter", "rc_cucm"), cert),
matriu ("googleplus", __ ("identificador de Google+", "rc_cucm"), cert),
matriu ('linkedin', __ ('Identificació enllaçada', 'rc_cucm'), fals),
matriu ('pinterest', __ ('Nom d'usuari de Pinterest', 'rc_cucm'), fals),
matriu ('wordpress', __ ('Nom d'usuari de WordPress.org', 'rc_cucm'), fals),
matriu ("telèfon", __ ("Número de telèfon", "rc_cucm"), cert)
);

Emmagatzemem tots els camps dins d’una matriu que té 3 paràmetres, el primer és l’ID de camp, el segon és l’etiqueta de camp i l’últim és una informació booleana que defineix si el camp es mostra a la pàgina de registre o no. . Podeu afegir tants paràmetres com vulgueu, per exemple, un marcador de posició o una informació necessària.

Pas 3: enganxeu el filtre adequat

Ara hem de connectar una funció al filtre adequat. En el nostre cas concret, el filtre és "user_contactmethods" i el nom de la funció que crearem és "rc_add_user_contactmethods".

// Utilitzeu els user_contactmethods per afegir nous camps
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Pas 4: crea els nostres camps personalitzats

Ara hem de crear la funció "rc_add_user_contactmethods". És el que afegirà els nostres camps personalitzats a la pàgina d’edició d’usuaris. La bona notícia és que emmagatzemem els nostres camps dins d’una matriu, vol dir que la següent funció serà totalment dinàmica i serà bastant fàcil afegir nous camps només modificant la variable $ extra_fields..

/ **
* Afegiu usuaris personalitzats mètodes de contacte personalitzats
*
* @access public
* @since 1.0
* @return nul
* /
function rc_add_user_contactmethods ($ user_contactmethods) {

// Obtenir camps
camps de camp extra $ $;

// Mostra cada camp
foreach ($ extra_fields com $ camp) {
if (! isset ($ contactmethods [$ camp [0]])))
$ user_contactmethods [$ camp [0]] = $ camp [1];
}

// Retorna els mètodes de contacte
retornar $ user_contactmethods;
}

En aquest pas, si deseu i activeu el complement, hauríeu de veure els vostres camps personalitzats a la pàgina d'edició de l'usuari. Com que utilitzem el ganxo correcte, no hem de crear dades de camps “desats”. Per tant, el connector està funcionant molt bé de moment. Però voldria anar una mica més enllà i afegir l’opció de mostrar aquests camps a la pàgina de registre. Si us plau, marca la casella de selecció "Qualsevol persona es pot registrar", en cas contrari, no podreu veure l'enllaç "Registre".

Pas 5: enganxaments de pàgina de registre

Per afegir els nostres camps a la pàgina de registre, hem d’accedir a almenys dos ganxos i crear dues funcions. Un per mostrar els camps i el segon per desar les dades dels camps a la base de dades.

Anem a connectar les nostres funcions:

// Afegiu els nostres camps al procés de registre
add_action ('registre_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Pas 6: Mostra la pàgina de registre de camps personalitzats

Al codi anterior vam declarar dues funcions. El primer és mostrar els camps a la pàgina de registre. En aquesta part, hem de tenir cura del tercer paràmetre de cada matriu en $ extra_fields. Aquest paràmetre booleà indica si s’han de mostrar o no els camps. És cert: el camp es mostra, fals: el camp no es mostra.

/ **
* Mostra camps personalitzats a la pàgina de registre
*
* Mostra els camps personalitzats en el registre si el tercer paràmetre del camp està ajustat a true
*
* @access public
* @since 1.0
* @return nul
* /
function rc_register_form_display_extra_fields () {

// Obtenir camps
camps de camp extra $ $;

// Mostra cada camp si el 3è paràmetre es defineix com a "veritable"
foreach ($ extra_fields com $ camp) {
if ($ camp [2] == true) {
$ field_value = isset ($ _POST [$ camp [0]])? $ _POST [$ camp [0]]: '';
ressò '

'; } // endif } // final predach }

Pas 7: Emmagatzema els valors de camps al procés de registre

Ara que els nostres camps es mostren a la pàgina de registre, hem de guardar els seus valors a la base de dades. Aquest és el moment de la funció "rc_user_register_save_extra_fields". Per fer-ho, hem d’utilitzar el "wp_update_user ()”Funció.

/ **
* Desa els valors del camp
*
* @access public
* @since 1.0
* @return nul
* /
function rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Obtenir camps
camps de camp extra $ $;

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

// Desa cada camp
foreach ($ extra_fields com $ camp) {
if ($ camp [2] == true) {
$ userdata [$ camp [0]] = $ _POST [$ camp [0]];
} // endif
} // final predach

$ new_user_id = wp_update_user ($ userdata);
}

Conclusió

Doncs bé, vam veure els conceptes bàsics sobre com afegir nous camps als mètodes de contacte amb els usuaris, però tot plegat. Podeu, per exemple, suprimir camps existents com "Yahoo IM", "AIM" i "Jabber" fent un simple desactivació (). Però també podeu afegir algunes funcions per a desinfectar els vostres camps personalitzats per comprovar, per exemple, si el número de telèfon té un format adequat, si un camp és obligatori o no, etc. etc ...!

Ah, i una última cosa ... si voleu mostrar les dades de qualsevol camp, només cal que utilitzeu:

// El paràmetre 1 és l'ID d'usuari
// El paràmetre 2 és un camp d’identificació
// El paràmetre 3 hi ha per obtenir un var o una matriu
eco get_user_meta (1, "twitter", cert);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

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