Actually I think this is to do with your PHP version/setup. I think later versions of PHP throw an error when you try to do something like:-
if ( in_array( $role_name, $main_pp_only ) ) {
do something
}
and the variable to be searched is not an array- which is what is happening on line 56 (roughly) when I get errors thrown.
This is because the plugin looks to see if the paid version of the plugin is installed and if it is it defines two variables in includes > network.php which are $blog_pp_only and $main_pp_only. If you simply instantiate these variables as arrays at the start of the code on that page, the errors go away, so add:-
$blog_pp_only = array();
$main_pp_only = array();
at line 14 in includes > network.php and that will solve the issue.
Hopefully the developers will see this post and update the plugin accordingly…
Stumbled on this post, I had the same problem. That did the trick for me. Thank you @davidosullivan !!!
For future reference for anyone else, the errors were:
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /path/to/domain/wp-content/plugins/capability-manager-enhanced/includes/network.php on line 58
Warning: array_diff() [function.array-diff]: Argument #1 is not an array in /path/to/domain/wp-content/plugins/capability-manager-enhanced/includes/network.php on line 62
Warning: Cannot modify header information – headers already sent by (output started at /path/to/domain/wp-content/plugins/capability-manager-enhanced/includes/network.php:58) in /path/to/domain/wp-includes/pluggable.php on line 1121