Come Aggiungere Campi Personalizzati alla Pagina del Profilo Utente?
La pagina del profilo utente ha i seguenti campi:
Nome utente
Nome
Cognome
Soprannome
Nome visualizzato
Informazioni di contatto
Email
Sito web
AIM
Yahoo IM
Jabber / Google Talk
Come si possono aggiungere altri campi a questa sezione. Campi come numero di telefono, indirizzo o qualsiasi altra cosa.

È necessario utilizzare gli hook 'show_user_profile'
, 'edit_user_profile'
, 'personal_options_update'
e 'edit_user_profile_update'
.
Ecco del codice per aggiungere un numero di telefono:
add_action( 'show_user_profile', 'yoursite_extra_user_profile_fields' );
add_action( 'edit_user_profile', 'yoursite_extra_user_profile_fields' );
function yoursite_extra_user_profile_fields( $user ) {
?>
<h3><?php _e("Informazioni aggiuntive del profilo", "blank"); ?></h3>
<table class="form-table">
<tr>
<th><label for="phone"><?php _e("Telefono"); ?></label></th>
<td>
<input type="text" name="phone" id="phone" class="regular-text"
value="<?php echo esc_attr( get_the_author_meta( 'phone', $user->ID ) ); ?>" /><br />
<span class="description"><?php _e("Inserisci il tuo numero di telefono."); ?></span>
</td>
</tr>
</table>
<?php
}
add_action( 'personal_options_update', 'yoursite_save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'yoursite_save_extra_user_profile_fields' );
function yoursite_save_extra_user_profile_fields( $user_id ) {
$saved = false;
if ( current_user_can( 'edit_user', $user_id ) ) {
update_user_meta( $user_id, 'phone', $_POST['phone'] );
$saved = true;
}
return true;
}
Questo codice aggiungerà un campo alla schermata dell'utente che apparirà più o meno così:
Sono disponibili anche diversi articoli sull'argomento che potrebbero esserti utili:
- Aggiungere e utilizzare campi personalizzati nel profilo utente
- Aggiungere campi aggiuntivi al profilo utente di WordPress
Oppure, se preferisci non sviluppare da solo, ci sono plugin che aggiungono queste funzionalità come i seguenti (anche se sono sicuro che ce ne siano altri):

Mike, ho avuto molti problemi a salvare le mie modifiche. Alla fine ci sono riuscito facendo un completo "trova e sostituisci". Per riferimento futuro, i campi "name" e "title" devono corrispondere esattamente?

@Jonathan Wold - "i campi 'name' e 'title' devono corrispondere esattamente?" Non mi hai fornito abbastanza contesto per poter rispondere. Potresti voler creare una domanda completamente nuova.

// rimuovi aim, jabber, yim
function hide_profile_fields( $contactmethods ) {
unset($contactmethods['aim']);
unset($contactmethods['jabber']);
unset($contactmethods['yim']);
return $contactmethods;
}
// aggiungi altri campi
function my_new_contactmethods( $contactmethods ) {
//aggiungi Compleanno
$contactmethods['birthday'] = 'Compleanno';
//aggiungi Indirizzo
$contactmethods['address'] = 'Indirizzo';
//aggiungi Città
$contactmethods['city'] = 'Città';
//aggiungi Provincia
$contactmethods['state'] = 'Provincia';
//aggiungi CAP
$contactmethods['postcode'] = 'CAP';
//aggiungi Telefono
$contactmethods['phone'] = 'Telefono';
//aggiungi Cellulare
$contactmethods['mphone'] = 'Cellulare';
return $contactmethods;
}
add_filter('user_contactmethods','my_new_contactmethods',10,1);
add_filter('user_contactmethods','hide_profile_fields',10,1);
Spero che questo ti sia utile.
Fonte: WPBeginner
