Add custom meta meta to user admin page in WordPress

I have created a special form on my site that allows my users to enter a key. I am using add_user_meta()

to add metadata to a database. I want to see this key when I click on users in the admin center.

How can I add to this column?

Below is the metadata information im using

add_user_meta($userId,'code','12345');

      

We just want to add it to the view on user.php in a table with the username and user role.

I used code like this to display the user id, but I can't figure out how to display their meta.

add_filter('manage_users_columns', 'pippin_add_user_id_column');
function pippin_add_user_id_column($columns) {
    $columns['user_id'] = 'User ID';
    return $columns;
}

add_action('manage_users_custom_column',  'pippin_show_user_id_column_content', 10, 3);
function pippin_show_user_id_column_content($value, $column_name, $user_id) {
    $user = get_userdata( $user_id );
    if ( 'user_id' == $column_name )
        return $user_id;
    return $value;
}

      

+3


source to share


3 answers


This example was created using these two pages from WordPress code.

https://codex.wordpress.org/Plugin_API/Action_Reference/edit_user_profile https://codex.wordpress.org/Plugin_API/Action_Reference/personal_options_update



It is designed to display and update custom metadata.

<?php

// Hooks near the bottom of profile page (if current user) 
add_action('show_user_profile', 'custom_user_profile_fields');

// Hooks near the bottom of the profile page (if not current user) 
add_action('edit_user_profile', 'custom_user_profile_fields');

// @param WP_User $user
function custom_user_profile_fields( $user ) {
?>
    <table class="form-table">
        <tr>
            <th>
                <label for="code"><?php _e( 'Custom Meta' ); ?></label>
            </th>
            <td>
                <input type="text" name="code" id="code" value="<?php echo esc_attr( get_the_author_meta( 'code', $user->ID ) ); ?>" class="regular-text" />
            </td>
        </tr>
    </table>
<?php
}


// Hook is used to save custom fields that have been added to the WordPress profile page (if current user) 
add_action( 'personal_options_update', 'update_extra_profile_fields' );

// Hook is used to save custom fields that have been added to the WordPress profile page (if not current user) 
add_action( 'edit_user_profile_update', 'update_extra_profile_fields' );

function update_extra_profile_fields( $user_id ) {
    if ( current_user_can( 'edit_user', $user_id ) )
        update_user_meta( $user_id, 'code', $_POST['code'] );
}

?>

      

+9


source


Realizing that this is a bit of an old thread, however, I got stuck with a very similar problem and thought I'd share what I found, which turned out to be a very simple solution.

<?php
add_filter('manage_users_columns', 'pippin_add_user_id_column');
function pippin_add_user_id_column($columns) {
    $columns['user_id'] = 'User ID';
    return $columns;
}    

add_action('manage_users_custom_column',  'pippin_show_user_id_column_content', 10, 3);
function pippin_show_user_id_column_content($value, $column_name, $user_id) {
    $user = get_userdata( $user_id );
    if ( 'user_id' == $column_name )
        return $user_id;
    return $value;
}
?>

      



Credit: https://pippinsplugins.com/add-user-id-column-to-the-wordpress-users-table/

0


source


To add custom fields user_meta to users.php, you need to do the following:

function yoursite_manage_users_columns( $columns ) {

    // $columns is a key/value array of column slugs and names
    $columns[ 'custom_field' ] = 'Subscription';

    return $columns;
}

add_filter( 'manage_users_columns', 'yoursite_manage_users_columns', 10, 1 );

function yoursite_manage_users_custom_column( $output, $column_key, $user_id ) {

    switch ( $column_key ) {
        case 'custom_field':
            $value = get_user_meta( $user_id, 'custom_field', true );

            return $value;
            break;
        default: break;
    }

    // if no column slug found, return default output value
    return $output;
}

add_filter( 'manage_users_custom_column', 'yoursite_manage_users_custom_column', 10, 3 );

      

0


source







All Articles