Se volete aggiungere un campo personalizzato all’user di serie in WordPress, in questo caso un semplice checkbox, true e false, che permetta di settare una opzione all’utente, allora questo è il codice che fa per voi, è molto semplice e facile da inserire nel vostro tema o plugin, in particolare nel file function.php.
Prima di tutto inseriamo il codice che crea il campo:
/** * Inserire un custom field all'utente di tipo checkbox */ function mm_campo_checkbox_personalizzato( $user ) { // Controllo preferenza dell'utente $mm_opzione_utente = get_user_meta( $user->ID, 'mm_opzione_utente', true ); ?> <h2>Opzione utente</h2> <table class="form-table"> <tr> <th> <label for="mm_opzione_utente"><?php _e('Titolo per questa opzione', 'custoname'); ?></label> </th> <td> <label for="mm_opzione_utente"> <input name="mm_opzione_utente" type="checkbox" id="mm_opzione_utente" value="1" <?php checked( $mm_opzione_utente, 1, true ); ?>> <?php _e('Descrizione per questa ozpione', 'customname'); ?></label> </td> </tr> </table> <?php } add_action( 'show_user_profile', 'mm_campo_checkbox_personalizzato' ); add_action( 'edit_user_profile', 'mm_campo_checkbox_personalizzato' );
Ora che avete inserito la funzione per la creazione del campo andiamo ad inserire l’altra per il salvataggio del campo:
/** * Salvare il campo personalizzato dell'utente */ function mm_campo_checkbox_personalizzato_save( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) { return false; } // aggiorna la preferenza dell'opzione per questo utente update_user_meta( $user_id, 'mm_opzione_utente', $_POST['mm_opzione_utente'] ); } add_action( 'personal_options_update', 'mm_campo_checkbox_personalizzato_save' ); add_action( 'edit_user_profile_update', 'mm_campo_checkbox_personalizzato_save' );
Ora un esempio pratico su come usare sempre nel vostro tema o plugin questa opzione per l’utente:
// Prendo l'ID dell'utente corrente $user_id = get_current_user_id(); // Se è true allora mostra l'opzione dell'utente if ( get_user_meta( $user_id, 'mm_opzione_utente', true ) ) { echo 'Funziona!'; }