web-dev-qa-db-fra.com

Masquer le nom d'utilisateur de la liste des utilisateurs

J'ai caché la colonne du nom d'utilisateur à l'administration des utilisateurs avec le code suivant:

function modify_user_columns($column) {
    $column = array(
        "cb" => "<input type=\"checkbox\" />",
        "username" => __('Username'),
        "name" => __('Name'),
        "email" => "E-mail",
        "birthdate" => "Narozeniny",
        "sleva_moto" => "Sleva moto"


    );
    return $column;
}
add_filter('manage_users_columns','modify_user_columns');

Le problème est que je ne peux pas entrer les détails d'un utilisateur pour le moment, car normalement les détails de l'utilisateur sont accessibles en cliquant sur le nom d'utilisateur. Existe-t-il un moyen d’ajouter le lien vers la page de détail à la colonne Name?

3
user1049961

Il n’existe aucun filtre direct permettant de modifier le contenu de la colonne Nom. Donc, pour obtenir ce que vous voulez, nous devrions aussi supprimer la colonne 'Nom' et créer notre propre colonne Nom. Par conséquent, la fonction modify_user_columns sera comme ceci

function modify_user_columns($column) {
    $column = array(
        "cb" => "<input type=\"checkbox\" />",
        "wdm_name" => __('Name'),
        "email" => "E-mail",
        "birthdate" => "Narozeniny",
        "sleva_moto" => "Sleva moto"


    );
    return $column;
}

Nous contrôlons maintenant ce que nous pouvons afficher dans la colonne Nom. Nous pouvons ajouter du contenu dans cette colonne Nom en utilisant le filtre manage_users_custom_column.

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

function wdm_display_name_with_edit_link($content, $column_name, $user_object_id){
    if ($column_name == 'wdm_name' && 
        current_user_can( 'edit_user',  $user_object_id) ) {

        //get info of user
        $user_object = get_userdata($user_object_id); 

        //generate edit link
        $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_object->ID ) ) ); 

        //Generate the complete Name with edit link
        $content = "<strong><a href=\"$edit_link\">$user_object->first_name $user_object->last_name</a></strong><br/>"; 
    } else {
        //If logged in user does not have rights 
        //to edit users, just show Name of users
        $content = "<strong>$user_object->first_name $user_object->last_name</strong><br />"; 
    }

    return $content;
}

Maintenant, il affichera les noms avec le lien Modifier. J'espère que cela t'aides. :)

1
WisdmLabs