39

There is default 5 columns named Username Name Email Role Posts in USERS. Now I want to add one more column with his contact number.

How can I achieve this??

Here where black box is shown

5
  • Do you have phone number setup? I mean can your user add phone numbers in their profile?
    – Robert hue
    Sep 6, 2014 at 11:08
  • no .. I just want to know how to add .. its not fix that contact number only .. its can b just a blank column also Sep 6, 2014 at 11:09
  • 1
    If your site had a lot of custom columns, you might be interested in a plugin called Admin Columns. Jun 1, 2016 at 19:13
  • you can see this blog with detailed explanation tekina.info/… Sep 12, 2017 at 17:20
  • For the non-coders, there is a plugin Advanced Custom Fields. (Google leads to this page, too. Newbies might not know all plugins of WordPress)
    – koppor
    Jul 12, 2020 at 13:37

1 Answer 1

62

Ok, Here is the code to allow your users to add phone numbers. Paste this full code in functions.php file. This will add new field on user profile for "Phone Number" and add a column user table on WordPress admin for phone.

function new_contact_methods( $contactmethods ) {
    $contactmethods['phone'] = 'Phone Number';
    return $contactmethods;
}
add_filter( 'user_contactmethods', 'new_contact_methods', 10, 1 );


function new_modify_user_table( $column ) {
    $column['phone'] = 'Phone';
    return $column;
}
add_filter( 'manage_users_columns', 'new_modify_user_table' );

function new_modify_user_table_row( $val, $column_name, $user_id ) {
    switch ($column_name) {
        case 'phone' :
            return get_the_author_meta( 'phone', $user_id );
        default:
    }
    return $val;
}
add_filter( 'manage_users_custom_column', 'new_modify_user_table_row', 10, 3 );

EDIT

To add two columns you need to make some changes. Compare both codes to understand.

function new_modify_user_table( $column ) {
    $column['phone'] = 'Phone';
    $column['xyz'] = 'XYZ';
    return $column;
}
add_filter( 'manage_users_columns', 'new_modify_user_table' );

function new_modify_user_table_row( $val, $column_name, $user_id ) {
    switch ($column_name) {
        case 'phone' :
            return get_the_author_meta( 'phone', $user_id );
        case 'xyz' :
            return '';
        default:
    }
    return $val;
}
add_filter( 'manage_users_custom_column', 'new_modify_user_table_row', 10, 3 );
17
  • Use code again. I changed it so you can see phone field on user list too.
    – Robert hue
    Sep 6, 2014 at 11:20
  • 3
    I would suggest this be added to a site-specific plugin since it has nothing to do with the theme's appearance. Sep 6, 2014 at 16:57
  • 2
    If it is a commercial (free or paid) theme then please don't put this code in theme's functions.php. Because, you can lose these changes if theme is updated. Make a small plugin for this.
    – Omar Tariq
    Apr 27, 2015 at 21:33
  • 2
    Finally $user = get_userdata( $user_id ); and return $return are absolutely not necessary. Variable $user is not used by the function and $return is not defined so it is returning nothing. Mar 30, 2016 at 10:03
  • 1
    hey @Robert hue thanks for the working code. I have one question. I don't see this column in my DB wp_users table. Why?
    – Ana DEV
    May 3, 2016 at 9:35

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