Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I have a WP site with a custom role (revisor) and a custom post type (events).

What I would like to do is allow my revisors to add new events, but not edit existing.

I'm already using the Members plugin, and i have 'edit_published_events' unchecked in it, but the users can still edit the events.

I think the problem is that I have another CPT that I want to let them edit (called listings), so I can't fully restrict 'edit_posts' in the capabilities.

Any ideas on how I can just remove the option for editing a published CPT? I did see a post about removing the 'edit' option that appears when you hover over the post's name in the list, but clicking on the post still lets you edit...

Thanks!!!

share|improve this question
    
Do you have the code you used to create the revisor role? –  Brad Dalton Feb 4 at 22:01
    
@BradDalton It is created via a plugin called Revisionary Plus, which makes a role that can't publish directly but has to be approved first, so I never created the role myself. –  Aaron Feb 5 at 2:41
    
You could simply use the native Contributor role or create your own using code which is very easy. More flexible this way for customization. wordpress.stackexchange.com/a/129534/9884 –  Brad Dalton Feb 5 at 7:10

1 Answer 1

Something like this (untested)

add_action( 'init', 'remove_revisor_cap_edit_posts' ); 

function remove_revisor_cap_edit_posts() {

if ( 'events' == get_post_type() ) {

$role = get_role( 'revisor' );
$role->remove_cap( 'edit_posts' );
    }
}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.