I have tried everything and I don’t believe it is possible to give access to a single plugin. If someone knows of a method to accomplish this using the User Role Editor, please let me know. I have a feeling editing the base code is the only option.
Your feeling is correct.
coSchedule plugin uses directly these capabilities:
– edit_posts – for access to its menu and calendar page;
– activate_plugins – for setup token value via ajax;
– manage_options – for some plugin setup actions.
All 3 capabilities a directly written into PHP source code, so it’s not possible to change them via custom filter.
tm-scheduler.php:304: if ( ! current_user_can( 'edit_posts' ) ) {
tm-scheduler.php:812: if ( false === current_user_can( 'activate_plugins' ) ) {
plugin_setup.php:1:<?php if ( current_user_can( 'manage_options' ) ) { ?>
frame.php:3: if ( current_user_can( 'edit_posts' ) ) {
tm-scheduler.php:233: add_menu_page( 'CoSchedule', 'CoSchedule', 'edit_posts', 'tm_coschedule_calendar', array( $this, 'plugin_calendar_page' ),
tm-scheduler.php:243: add_submenu_page( 'tm_coschedule_calendar', 'Open In Web App', 'Open In Web App', 'edit_posts', 'tm_coschedule_new_window', array( $this, 'plugin_calendar_page' ) );
Thank you for the great customer service, Vladimir. We will give it a try.