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!';
}