Autorise le membre à accéder uniquement au type de publication personnalisé. Autorisation de modifier uniquement leurs propres messages

25

OK, je cherche le meilleur moyen d’attaquer cela.

Je suis très à l'aise avec PHP et la création de types de posts personnalisés avec des méta-champs personnalisés dans WordPress.

Voici ce que je cherche à faire:

  1. L'utilisateur s'enregistre et est défini sur     abonné par défaut.
  2. demandes de l'utilisateur de l'administrateur à avoir     autorisation de type de publication personnalisée.
  3. Admin affecte un utilisateur à un autre     nom de permission du type "Propriétaire de la boutique".
  4. L'utilisateur peut maintenant voir le type de publication personnalisé et peut faire une entrée à ce post type.
  5. L'utilisateur peut uniquement voir et éditer ses propres poster.

J'ai besoin d'aide dans les domaines suivants:

  1. Comment créer un nouveau "rôle" appelé "Propriétaire du magasin",
  2. Comment donner la permission correcte à ce rôle de ne voir et d'avoir accès au type de message personnalisé.
  3. Autoriser uniquement l'utilisateur à voir et à modifier leurs propres messages à ce message personnalisé type.

Idéalement, je préférerais que tout cela ait été fait à partir de wp-admin, mais je suppose que je pourrais avoir besoin de construire un front-end pour obtenir le contrôle fini que je suis après.

Toute contribution est grandement appréciée.

Cordialement

    
posée Brady 12.04.2011 - 12:08

3 réponses

19

Utilisez le plugin de Justin Tadlock " Membres ". Il vous donne la possibilité de créer de nouveaux rôles et de modifier des rôles existants, ainsi que d'ajouter des fonctionnalités personnalisées. Tout ce que vous devez faire peut être réduit en quelques clics.

Je sais que vous avez dit dans votre commentaire sur la réponse de ZaMoose que vous "cherchez à écrire la fonctionnalité moi-même afin que je puisse tout contrôler." Cela manque l’intérêt des logiciels open source. Justin Tadlock a publié son plugin pour que vous puissiez l’utiliser avec précision de sorte que vous puissiez avoir un contrôle total sur tout.

Si vous voulez vraiment vraiment réinventer la roue en perdant potentiellement des centaines d'heures de votre temps, je ne peux pas vous en empêcher, mais vous pouvez au moins vous épargner le problème et utiliser le plug-in de Tadlock pour: Apprenez à faire ce que vous voulez.

Une fois que vous avez un plugin qui fait ce que vous voulez, vous devez changer le drapeau 'map_meta_cap' en true et le drapeau 'capability_type' dans votre fonction d’enregistrement de type post afin qu’il indique autre chose que 'post ',' page 'ou tout autre type' réservé '. Ensuite, dupliquez toutes les fonctionnalités liées aux publications (par exemple, edit_posts , edit_others_posts , publish_posts , etc.), en utilisant votre type de fonctionnalité au lieu de publications. Assurez-vous d'attribuer toutes ces autorisations aux administrateurs (vous ne pourrez pas voir le type de message jusqu'à ce que vous le fassiez), puis créez votre rôle en imitant les capacités du rôle de "contributeur" pour votre type de message.

Par exemple, disons que votre type de capacité était foobars , vous voudriez donner aux 'propriétaires de boutiques' les capacités edit_foobars , delete_foobars et read . De cette manière, ils peuvent créer leurs propres brouillons et les supprimer, mais comme ils ne disposent pas des capacités de publish_foobars , ils doivent les soumettre pour approbation. Parce qu'ils n'ont pas edit_published_foobars , toutes les modifications apportées à un objet multimédia approuvé doivent être approuvées.

    
réponse donnée John P Bloch 12.04.2011 - 16:49
16

Le type de poste de registre a un paramètre appelé "capacités" afin que vous puissiez avoir par exemple

'capability' => __('organize_shop'),

enlace

Pour créer un nouvel utilisateur / rôle / fonctionnalité, vous pouvez utiliser add_role, add_cap, par exemple, pour vous aider à démarrer:

add_role( 'shop_owner', 'Shop Owner', array( 'edit_posts' => true, ) );
$wp_roles->add_cap( 'Shop Owner', 'organize_shop' );
$role->add_cap( 'organize_shop' );
    
réponse donnée Wyck 12.04.2011 - 17:06
1

Avez-vous envisagé de consulter les Formulaires Gravity ou TDO Mini Forms pour gérer la soumission de contenu? Ils disposent tous de fonctionnalités qui vous permettraient de gérer de manière saine le contenu soumis par les utilisateurs.

    
réponse donnée ZaMoose 12.04.2011 - 15:37

Lire d'autres questions sur les étiquettes