Well, I did track this down to Wishlist as I suspected. In their main wpm.php
file they have this code:
// Do not allow access to Dashboard for non-admins
if ($wpm_current_user->ID && basename(dirname($_SERVER['PHP_SELF'])) . '/' . basename($_SERVER['PHP_SELF']) == 'wp-admin/index.php' && !(current_user_can('edit_post') || current_user_can('edit_posts')) && !current_user_can('level_8')) {
header('Location:profile.php');
exit;
}
This logic will let you get to the Connections Link admin profile page, but that is about it. This code runs early in the WP process. The init
hook to be exact. Connections processes its actions add/edit and such on the admin_init
action which comes well after the init
action.
On your site I made a tweak so the add/edit action happens on the init
hook to but at priority 9
this runs before WishList. This allows allows the add/edit actions to run it it seems to work fine but honestly I’m not sure if making this change will break something else in Connections.
Ideally WishList would add a filter so exceptions could be added. But the code as it is is pretty the great wall, nothing is getting around it. Maybe you could communicate that to them???
What I can do… I can create a little code snippet for you that makes the Connections code run sooner and install it tomorrow. Right now, the code was changed in the files which is not a good way to do it because the next Connections update would overwrite the change. The code snippet would be update safe. Does that sound good?