Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- add_filter('map_meta_cap', function($caps, $cap, $user_id, $args) {
- if($cap === 'edit_user') {
- $subject = get_userdata($user_id);
- $target = get_userdata($args[0]);
- if(in_array('subject_role_to_allow', $subject->roles)
- && in_array('target_role', $target->roles)) {
- /**
- * We use edit_others_posts because the subject_role_to_allow
- * edit users of a dependent role, is a superset of Editor role
- * maybe any other already granted capability to this user/role
- * could work
- */
- return array_merge(['edit_others_posts'],
- array_filter($caps, function($role) {
- return $role !== 'edit_users';
- }));
- }
- }
- return $caps;
- }, 13, 4);
Add Comment
Please, Sign In to add comment