I want to add some more profile fields to Wordpress. It works fine with normal text box:

<input type="text" name="gender" id="gender" value="<?php echo esc_attr( get_the_author_meta( 'gender', $user->ID ) ); ?>" class="regular-text" /><br />

But of cause I don't want my users to enter "male" or "female". So I need a select box! :)

May you please help me how I have to change the code above to get a select box?!

Thanks a lot!


Place the following code in your functions.php

    add_action( 'show_user_profile', 'show_extra_profile_fields' );
    add_action( 'edit_user_profile', 'show_extra_profile_fields' );

    function show_extra_profile_fields( $user ) { ?>
        <h3>Extra profile information</h3>
        <table class="form-table">
                <th><label for="gender">Gender</label></th>
                    <select name="gender" id="gender" >
                        <option value="Male" <?php selected( 'Male', get_the_author_meta( 'gender', $user->ID ) ); ?>>Male</option>
                        <option value="Female" <?php selected( 'Female', get_the_author_meta( 'gender', $user->ID ) ); ?>>Female</option>
    <?php }

    add_action( 'personal_options_update', 'save_extra_profile_fields' );
    add_action( 'edit_user_profile_update', 'save_extra_profile_fields' );

    function save_extra_profile_fields( $user_id ) {
        if ( !current_user_can( 'edit_user', $user_id ) )
            return false;

        //typo fix
        update_user_meta( $user_id, 'gender', $_POST['gender'] );
  • Perfect! Thank you very much! There was just a "save" to much - here: add_action( 'edit_user_profile_update', 'save_save_extra_profile_fields' ); – Philipp Nov 21 '11 at 9:23
  • how can we change the order of the extra fields? I like it to be the first even before Personal Options – alex May 17 '13 at 9:16
  • Thanks for working code @Joshua Abenazer. I need this field to be displayed in my woocommerse user edit account page. Any idea how i could do that please? – Anahit DEV Mar 25 '16 at 13:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.