Je ne suis pas très bon avec les ordinateurs/codes, etc. J'utilise un plugin qui crée un truc d'enregistrement et c'est sous cette forme que j'ai ajouté le pays, le groupe d'âge, le sexe, etc. Je clique sur l'option qui ajoutera l'enregistreur dans le truc d'utilisateur wordpress. Mais lorsque je l'essaie, seuls le nom d'utilisateur et l'adresse e-mail s'affichent dans la section Utilisateurs du backend. Les autres champs peuvent-ils être affichés dans la section Utilisateurs?
J'ai besoin d'eux pour montrer des utilisations statistiques.
Vous devez utiliser les points d'ancrage show_user_profile
, edit_user_profile
, personal_options_update
et edit_user_profile_update
.
Vous pouvez utiliser le code suivant pour ajouter des champs supplémentaires dans la section Utilisateur
Code pour l'ajout de champs supplémentaires dans la section Modifier l'utilisateur:
add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );
function extra_user_profile_fields( $user ) { ?>
<h3><?php _e("Extra profile information", "blank"); ?></h3>
<table class="form-table">
<tr>
<th><label for="address"><?php _e("Address"); ?></label></th>
<td>
<input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Please enter your address."); ?></span>
</td>
</tr>
<tr>
<th><label for="city"><?php _e("City"); ?></label></th>
<td>
<input type="text" name="city" id="city" value="<?php echo esc_attr( get_the_author_meta( 'city', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Please enter your city."); ?></span>
</td>
</tr>
<tr>
<th><label for="postalcode"><?php _e("Postal Code"); ?></label></th>
<td>
<input type="text" name="postalcode" id="postalcode" value="<?php echo esc_attr( get_the_author_meta( 'postalcode', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Please enter your postal code."); ?></span>
</td>
</tr>
</table>
<?php }
Code pour l'enregistrement des détails de champs supplémentaires dans la base de données :
add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );
function save_extra_user_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) ) {
return false;
}
update_user_meta( $user_id, 'address', $_POST['address'] );
update_user_meta( $user_id, 'city', $_POST['city'] );
update_user_meta( $user_id, 'postalcode', $_POST['postalcode'] );
}
Plusieurs articles de blog sur le sujet pourraient également être utiles:
Le Advanced Custom Fields plugin vous permettra d’ajouter des champs aux profils d’utilisateur sans codage.
Vous feriez mieux d'utiliserget_user_meta
au lieu deget_the_author_meta
:
function extra_user_profile_fields( $user ) {
$meta = get_user_meta($user->ID, 'meta_key_name', false);
}