Fügen Sie benutzerdefiniertes Benutzer-Meta zur Benutzerverwaltungsseite in WordPress hinzu

Lesezeit: 4 Minuten

Benutzer-Avatar
James

Ich habe auf meiner Website ein spezielles Formular erstellt, das es meinen Benutzern ermöglicht, einen Schlüssel einzugeben. ich benutze add_user_meta() um die Metadaten in die Datenbank hinzuzufügen. Ich möchte diesen Schlüssel sehen können, wenn ich im Admin Center auf Benutzer klicke.

Wie würde ich vorgehen, um diese Spalte zu ergänzen?

Nachfolgend finden Sie die Metadateninformationen, die ich verwende

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

Wir möchten es nur der Ansicht auf users.php in der Tabelle hinzufügen können, die den Benutzernamen, die E-Mail-Adresse und die Rolle anzeigt.

Ich habe Code wie diesen verwendet, um die Benutzer-ID anzuzeigen, aber ich kann nicht herausfinden, wie ich ihr Meta anzeigen soll.

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;
}

Dieses Beispiel wurde mit Hilfe dieser beiden Seiten aus dem WordPress-Codex erstellt.

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

Es dient zum Anzeigen und Aktualisieren der benutzerdefinierten Benutzermetadaten.

<?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'] );
}

?>

  • Ich wollte das Feld zu users.php hinzufügen, wo es den Benutzernamen, die E-Mail-Adresse und die Rollen anzeigt. Wir wollen nicht die Möglichkeit, es zu bearbeiten.

    – James

    28. Mai 2015 um 0:58 Uhr


  • Verwenden Sie also einfach den ersten Teil des Codes, um ihn anzuzeigen, und ändern Sie das Eingabeelement in etwas, das nicht bearbeitet werden kann.

    – Daniel

    28. Mai 2015 um 1:02 Uhr

  • Ich möchte es nicht auf der user.php anzeigen Ich möchte es auf der users.php anzeigen. Dies wäre die Seite, die alle Benutzernamen, E-Mails und Rollen in einer Tabelle anzeigt.

    – James

    28. Mai 2015 um 1:15 Uhr

Die obige Antwort von Mordred funktionierte für mich, nachdem ich die zweite geändert hatte add_filter zu add_action. Hier ist der geänderte Code:

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_action( 'manage_users_custom_column', 'yoursite_manage_users_custom_column', 10, 3 );

Um benutzerdefinierte user_meta-Felder zu users.php hinzuzufügen, müssen Sie Folgendes tun:

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 );

Zu erkennen, dass dies ein bisschen wie ein alter Thread ist, aber ich steckte bei einem sehr ähnlichen Problem fest und dachte, ich würde teilen, was ich gefunden habe, was sich als sehr einfache Lösung herausstellte.

<?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;
}
?>

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

1384820cookie-checkFügen Sie benutzerdefiniertes Benutzer-Meta zur Benutzerverwaltungsseite in WordPress hinzu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy