web-dev-qa-db-fra.com

Comment ajouter des champs personnalisés à la page de tous les utilisateurs

Je travaille actuellement sur un projet dans lequel je crée un formulaire d’inscription personnalisé. Ce formulaire après soumission ajoute les données utilisateur à la table des utilisateurs wp, puis insère l’ID utilisateur dans la table des options wp. Je peux voir tous les utilisateurs qui s'inscrivent. Mais j'aimerai personnaliser le tableau qui répertorie tous les utilisateurs pour afficher les champs personnalisés. Et aussi un lien que je peux utiliser pour activer les utilisateurs (Modification d'un champ défini dans la table d'options wp en true).
S'il vous plaît, j'ai besoin d'aide

1
Sylvester hillary

Pour la première partie de votre question, vous pouvez ajouter de nouvelles colonnes à la table des utilisateurs.

Son en deux étapes: vous devez d'abord enregistrer les colonnes, puis en sortie des informations pour chaque ligne.

Pour ajouter de nouvelles colonnes, connectez-vous au filtre manage_users_columns:

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

Ensuite, vous devez générer votre champ personnalisé à l'aide du filtre manage_users_custom_column:

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

En ce qui concerne l'activation de l'utilisateur:

Peut-être que la table WP_options n'est pas la meilleure façon de s'y prendre, car elle se développera rapidement, ralentirait la maintenance de votre site Web.

Vous voudrez peut-être créer un nouveau rôle d'utilisateur pour les utilisateurs non activés et le définir par défaut; que vous pouvez changer facilement via l'interface d'administration.

Si vous ajoutez ce code via un plugin, vous pouvez faire:

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

Consultez le codex pour une liste (longue) de rôles et de capacités utilisateur: https://codex.wordpress.org/Roles_and_Capabilities

J'espère que cela pourra aider!

1
Pedro Coitinho