Crea i tuoi campi di contatto utente WordPress

Oggi ho creato un nuovo plugin per te. Un plugin che si occupa dei metodi di contatto degli utenti. Fondamentalmente quando modifichi un utente nell’amministrazione, c’è un blocco “informazioni di contatto”. Bene, vorrei mostrarti come aggiungere i tuoi campi lì, e andare un po ‘oltre, come mostrare (o meno) questi nuovi campi nella pagina di registrazione.


Ecco un’anteprima di ciò che creeremo:

edit-custom-fields

Nuovi campi utente nella pagina di modifica

Campi personalizzati

Campi personalizzati nella pagina di registrazione

E per fare ciò, come al solito, creeremo un plugin piacevole e semplice!

Passaggio 1: creare il plug-in

Crea una nuova cartella in wp-content / plugins e chiamala “metodi di contatto utente personalizzati”. All’interno di questa cartella appena creata, crea un file chiamato “rc-custom-user-contact-method.php” e aprilo nel tuo software di editor preferito.

Inserisci questo contenuto nel tuo file vuoto. Questo codice registra semplicemente il plugin:

Passaggio 2: definire i campi personalizzati

Successivamente, dobbiamo creare una variabile che conterrà i nostri campi personalizzati, quelli da utilizzare nella pagina di edizione dell'utente e anche nella pagina predefinita di registrazione. Memorizziamo questi campi in una variabile chiamata $ extra_fields.

$ extra_fields = array (
array ('facebook', __ ('Username Facebook', 'rc_cucm'), true),
array ('twitter', __ ('Nome utente Twitter', 'rc_cucm'), true),
array ('googleplus', __ ('ID Google+', 'rc_cucm'), vero),
array ('linkedin', __ ('Linked In ID', 'rc_cucm'), false),
array ('pinterest', __ ('Username Pinterest', 'rc_cucm'), false),
array ('wordpress', __ ('Username di WordPress.org', 'rc_cucm'), false),
array ('phone', __ ('Numero di telefono', 'rc_cucm'), true)
);

Stiamo memorizzando tutti i campi all'interno di un array con 3 parametri, il primo è l'ID campo, il secondo è l'etichetta del campo e l'ultimo è un'informazione booleana che definisce se il campo è mostrato nella pagina di registrazione o meno . Puoi aggiungere tutti i parametri che desideri, ad esempio un segnaposto o le informazioni richieste.

Passaggio 3: agganciare il filtro giusto

Ora dobbiamo collegare una funzione al filtro giusto. Nel nostro caso specifico, il filtro è "user_contactmethods" e il nome della funzione che stiamo per creare è "rc_add_user_contactmethods".

// Utilizzare i metodi user_contact per aggiungere nuovi campi
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Passaggio 4: creare i nostri campi personalizzati

Ora dobbiamo creare la funzione "rc_add_user_contactmethods". È quello che aggiungerà i nostri campi personalizzati alla pagina di modifica dell'utente. La buona notizia è che abbiamo archiviato i nostri campi in un array, significa che la seguente funzione sarà completamente dinamica e sarà abbastanza facile aggiungere nuovi campi semplicemente modificando la variabile $ extra_fields.

/ **
* Aggiungi agli utenti metodi di contatto personalizzati
*
* @Accesso pubblico
* @since 1.0
* @return void
* /
funzione rc_add_user_contactmethods ($ user_contactmethods) {

// Ottieni campi
$ extra_fields globali;

// Visualizza ogni campo
foreach ($ extra_fields come $ field) {
if (! isset ($ contactmethods [$ field [0]]))
$ user_contactmethods [$ field [0]] = $ field [1];
}

// Restituisce i metodi di contatto
return $ user_contactmethods;
}

A questo punto, se salvi e attivi il plugin, dovresti vedere i tuoi campi personalizzati nella pagina di modifica dell'utente. Poiché stiamo utilizzando l'hook corretto, non è necessario creare un "salvataggio" dei dati dei campi. Quindi, il plugin sta funzionando benissimo per il momento. Ma vorrei andare un po 'oltre e aggiungere l'opzione per visualizzare quei campi nella pagina di registrazione. Assicurati di controllare sotto le impostazioni la casella di controllo "Chiunque può registrarsi", altrimenti non sarai in grado di vedere il link "Registrati".

Passaggio 5: hook della pagina di registrazione

Per aggiungere i nostri campi nella pagina di registrazione, dobbiamo accedere ad almeno due hook e creare due funzioni. Uno per visualizzare i campi e il secondo per salvare i dati dei campi nel database.

Agganciamo le nostre funzioni:

// Aggiungi i nostri campi al processo di registrazione
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Passaggio 6: visualizzare la pagina di registrazione dei campi personalizzati

Nel codice sopra abbiamo dichiarato due funzioni. Il primo è quello di visualizzare i campi nella pagina di registrazione. In questa parte dobbiamo occuparci del terzo parametro di ciascun array in $ extra_fields. Questo parametro booleano indica se i campi devono essere visualizzati o meno. Vero: il campo è mostrato, falso: il campo non è mostrato.

/ **
* Mostra campi personalizzati nella pagina di registrazione
*
* Mostra i campi personalizzati al momento della registrazione se il terzo parametro del campo è impostato su true
*
* @Accesso pubblico
* @since 1.0
* @return void
* /
funzione rc_register_form_display_extra_fields () {

// Ottieni campi
$ extra_fields globali;

// Visualizza ogni campo se il 3 ° parametro è impostato su "true"
foreach ($ extra_fields come $ field) {
if ($ field [2] == true) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ field [0]]: '';
eco '

'; } // finisci se } // end foreach }

Passaggio 7: memorizzare i valori dei campi durante il processo di registrazione

Ora che i nostri campi sono visualizzati nella pagina di registrazione, abbiamo bisogno di memorizzare i loro valori nel database. Questo è il tempo della funzione “rc_user_register_save_extra_fields”. Per fare ciò, dobbiamo utilizzare il "wp_update_user ()" funzione.

/ **
* Salva i valori dei campi
*
* @Accesso pubblico
* @since 1.0
* @return void
* /
funzione rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Ottieni campi
$ extra_fields globali;

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

// Salva ogni campo
foreach ($ extra_fields come $ field) {
if ($ field [2] == true) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // finisci se
} // end foreach

$ new_user_id = wp_update_user ($ userdata);
}

Conclusione

Bene, abbiamo visto le basi di come aggiungere nuovi campi ai metodi di contatto dell'utente, ma questo è tutto. Ad esempio, puoi rimuovere campi esistenti come "Yahoo IM", "AIM" e "Jabber" facendo unset semplice (). Ma puoi anche aggiungere alcune funzioni per sterilizzare i tuoi campi personalizzati al fine di verificare, ad esempio, se il numero di telefono ha un formato appropriato, se un campo è richiesto o meno, ecc. Ecc. ... Non esitare a chiedere funzionalità specifiche nei commenti!

Oh, e un'ultima cosa ... se vuoi visualizzare i dati di uno qualsiasi dei tuoi campi, usa semplicemente questo:

// Il parametro 1 è l'ID utente
// Il parametro 2 è l'ID campo
// Il parametro 3 è lì per ottenere una var o una matrice
echo get_user_meta (1, 'twitter', true);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

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