Comment puis-je ajouter un champ de saisie à la section admin Utilisateurs -> Ajouter nouveau?
Je veux ajouter un champ pour un numéro de téléphone, mais je ne veux pas qu'un plugin le fasse.
Okay trouvé la réponse en fouillant dans le code
Un champ peut être ajouté en procédant comme suit:
add_action('user_new_form','myplugin_add_field');
function myplugin_add_field() {
// code to add field
}
Voici comment je l'ai toujours fait. Tout ce code va dans functions.php. Bien sûr, cela ajoute une nouvelle section au profil de l'utilisateur.
add_action( 'show_user_profile', 'be_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'be_show_extra_profile_fields' );
function be_show_extra_profile_fields( $user ) { ?>
<h3>Extra Contact Information</h3>
<table class="form-table">
<tr>
<th><label for="contact">Contact Number</label></th>
<td>
<input type="text" name="contact" id="contact" value="<?php echo esc_attr( get_the_author_meta( 'contact', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Please enter your phone number.</span>
</td>
</tr>
</table>
<?php }
add_action( 'personal_options_update', 'be_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'be_save_extra_profile_fields' );
function be_save_extra_profile_fields( $user_id ) {
if ( ! current_user_can( 'edit_user', $user_id ) ) {
return false;
}
update_usermeta( $user_id, 'contact', esc_attr( $_POST['contact'] ) );
}
Sinon, si vous souhaitez ajouter des méthodes de contact à la section déjà existante du profil utilisateur, vous pouvez utiliser ce qui suit et c'est un peu plus propre. Vous trouverez ci-dessous la fonction que j'utilise habituellement pour supprimer les plateformes sociales obsolètes et en ajouter de nouvelles pour les utilisateurs.
add_filter( 'user_contactmethods', 'be_hide_profile_fields', 10, 1 );
function be_hide_profile_fields( $contactmethods ) {
unset($contactmethods['aim']);
unset($contactmethods['Jabber']);
unset($contactmethods['yim']);
$contactmethods['Twitter'] = 'Twitter';
$contactmethods['facebook'] = 'Facebook';
$contactmethods['linkedin'] = 'LinkedIn';
return $contactmethods;
}
Si vous voulez ajouter un numéro de téléphone à cela, vous pouvez simplement ajouter quelque chose comme:
$contactmethods['phonenumber'] = 'Phone Number;
à la fonction ci-dessus et il va créer le champ pour vous.
in http://plugins.svn.wordpress.org/hrm-work-tracking/trunk/hrm-users.php J'ai trouvé une telle chose avec
add_action( 'show_user_profile', '' );
add_action( 'edit_user_profile', '' );
add_action( 'personal_options_update', '' );
add_action( 'edit_user_profile_update', '' );
Je ne connais pas d'autre moyen pour cela