web-dev-qa-db-fra.com

Ajout de fonctionnalités personnalisées

Donc, je ne suis pas sûr que cela soit possible, mais est-il possible d'ajouter des fonctionnalités personnalisées?

Donc, j'ai écrit une application de message de groupe, qui est liée à Wordpress. Je veux seulement que certains membres (définis via les options sur lesquelles je viens de poser des questions) puissent envoyer de tels messages. J'aimerais ajouter une fonctionnalité pour, par exemple "group_message", et l'ajouter à des utilisateurs spécifiques (car ce ne sont pas strictement les éditeurs/administrateurs qui ont le droit d'envoyer des messages).

Je sais à propos de:

wp_current_user()->add_cap()

Mais est la seule chose que je dois faire, disons: wp_current_user () -> add_cap ('group_message')?

1
Jeremy Dentel

Je viens de donner un petit exemple de configuration d’une capacité de rôle personnalisée (exemple et code) . Dans votre cas, cependant, vous souhaitez ajouter la possibilité à des utilisateurs particuliers - et non à des rôles.

Le code suivant peut être un point de départ pour ce que vous voulez faire:

// The IDs of the `privileged users`
$users = array( ... );

// Required arguments for the user query
$args = array(
    'include' => $users,
    'fields' => 'all_with_meta',
);

// Add the capability to privileged users
foreach ( get_users( $args ) as $user )
    $user->add_cap( 'group_message' );
// Check for the capability
if ( current_user_can( 'group_message') ) {
    // group message stuff
}
// Remove the capability
foreach ( get_users( 'fields' => 'all_with_meta' ) as $user )
    $user->remove_cap( 'group_message' );

Tout ce que vous devez faire maintenant, c'est penser à obtenir/fournir les ID utilisateur . Vous pouvez, par exemple, répertorier tous les utilisateurs sur la page de menu de votre plugin (si vous en avez un), puis sélectionner ceux que vous souhaitez utiliser pour la messagerie de groupe et enfin ajouter la capacité à ces utilisateurs.

1
tfrommen