Come Aggiungere Campi Personalizzati alla Pagina del Profilo Utente?

14 nov 2010, 06:34:13
Visualizzazioni: 34.4K
Voti: 30

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.

0
Tutte le risposte alla domanda 2
3
39

È 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ì:

Campo telefono nel profilo utente

Sono disponibili anche diversi articoli sull'argomento che potrebbero esserti utili:

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):

14 nov 2010 06:52:53
Commenti

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 Jonathan Wold
28 mar 2011 19:43:47

@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.

MikeSchinkel MikeSchinkel
29 mar 2011 10:26:02

@MikeSchinkel Cimy User Extra Fields secondo me non è una buona raccomandazione. Il supporto non è veramente presente e il codice è... beh.

kaiser kaiser
26 ago 2011 01:07:47
0
// 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

2 dic 2010 00:06:23