it-swarm.com.de

So fügen Sie der Seite aller Benutzer benutzerdefinierte Felder hinzu

Ich arbeite derzeit an einem Projekt, bei dem ich ein benutzerdefiniertes Registrierungsformular erstelle. Dieses Formular fügt nach dem Absenden die Benutzerdaten zur WP-Benutzertabelle hinzu und fügt dann die Benutzer-ID in die WP-Optionstabelle ein. Ich kann alle Benutzer sehen, die sich registrieren. Ich möchte jedoch die Tabelle anpassen, in der alle Benutzer aufgeführt sind, um benutzerdefinierte Felder anzuzeigen. Und auch einen Link, über den ich Benutzer aktivieren kann (Ändern eines Felds in der wp options-Tabelle auf true).
Bitte ich brauche Hilfe

1

Im ersten Teil Ihrer Frage können Sie der Benutzertabelle neue Spalten hinzufügen.

Dies geschieht in zwei Schritten: Zuerst müssen Sie die Spalten registrieren und dann Informationen für jede Zeile ausgeben.

Um neue Spalten hinzuzufügen, schließen Sie sich dem manage_users_columns-Filter an:

function yourdomain_manage_users_columns( $columns ) {

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

    return $columns;
}

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

Dann müssen Sie Ihr benutzerdefiniertes Feld mit dem Filter manage_users_custom_column ausgeben:

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

    switch ( $column_key ) {

        // look for the slug you registered
        case 'custom_field' :

            // get your custom field, parse it however you want
            $value = get_user_meta( $user_id, 'custom_field', true );

            // return the value
            return $value;

            break;
        default: break;
    }

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

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

Wie für die Benutzeraktivierung:

Vielleicht ist die WP_options-Tabelle nicht der beste Weg, dies zu tun, da sie schnell wächst und die Pflege Ihrer Website schwierig ist.

Möglicherweise möchten Sie eine neue Benutzerrolle für nicht aktivierte Benutzer erstellen und als Standard festlegen. was Sie einfach über die Admin-Oberfläche ändern können.

Wenn Sie diesen Code über ein Plugin hinzufügen, können Sie Folgendes tun:

function yourdomain_add_user_role() {

    // capabilities
    $caps = array(                   
        'level_0'   => true,      // inherit subscriber capabilities
        'read'      => false      // but can't read posts, etc
    );

    // ads the inactive user role
    add_role( 
        'inactive',               // Role slug
        'Inactive Account',       // Role name
        $caps                     // capabilities
    );
}

register_activation_hook( __FILE__, 'yourdomain_add_user_role' );

Im Codex finden Sie eine (lange) Liste der Benutzerrollen und -funktionen: https://codex.wordpress.org/Roles_and_Capabilities

Hoffentlich hilft das!

1
Pedro Coitinho