I can make my own tests with custom roles in case you provide me access to this theme copy (via DropBox, Google Drive or similar service): support [at-sign] role-editor.com
Sent, thanks again. Attached some images. Also got a bit mixed up and overcomplicated sending you the theme. You should have a second message with a Drive link to the file instead.
Nothing mysterious. This theme developer just apparently restricts access to some WP features for his own criteria. He uses not user capabilities but role IDs for that. Look at functions.php file for the direct answer on your question:
Line # 3678:
if (!current_user_can('administrator') && !current_user_can('editor') && !current_user_can('author')) {
remove_menu_page( 'index.php' ); //Dashboard
remove_menu_page( 'edit.php' ); //Posts
remove_menu_page( 'upload.php' ); //Media
remove_menu_page( 'edit.php?post_type=page' ); //Pages
remove_menu_page( 'edit.php?post_type=team' ); //Teams
remove_menu_page( 'edit-comments.php' ); //Comments
remove_menu_page( 'themes.php' ); //Appearance
remove_menu_page( 'plugins.php' ); //Plugins
remove_menu_page( 'users.php' ); //Users
remove_menu_page( 'tools.php' ); //Tools
remove_menu_page( 'options-general.php' ); //Settings
}
There are a lot of other access restrictions through the theme’s functions.php file according to which only user with ‘administrator’ role can access some key features. For example, according to the code from line #3097 even shop_manager will not see some WooCommerce elements, etc.
So you have a starting point to discuss with developer.
The best practice is never use a role name inside current_user_can(). Use user capability instead and add it to the existing roles if required. Final user will be capable to decide himself grant or not that capability to another role(s) beyond a list for which a developer made this already.
Thank you so very much for your help, though it is disappointing to hear its somewhat deliberate. They’re either oblivious to it or being deceptive for some reason, which is not great to hear. I’m not really sure how they could not know about the problem, so I’ll discuss it some more with them, and see if they’re willing to do anything about it.
Thanks again for your time, it was very generous of you.