web-dev-qa-db-fra.com

Ajouter un champ à la page d'administration 'Ajouter un utilisateur'

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.

1
Albert

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
}
2
Albert

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.

3
Brad Elsmore

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

0
seot