Aggiungere un campo personalizzato di tipo checkbox all’utente di WordPress

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *