multiple-roles.php
63 lines
| 1 | <?php /** @version 7.1.1 **/ ?> |
| 2 | |
| 3 | <?php if (defined('AAM_KEY')) { ?> |
| 4 | <?php if ((!defined('IS_PROFILE_PAGE') || !IS_PROFILE_PAGE) && !is_network_admin() && (empty($user) || current_user_can('promote_user', $user->ID))) { ?> |
| 5 | <?php |
| 6 | $editable_role = get_option('default_role'); |
| 7 | $editable_roles = array_keys(get_editable_roles()); |
| 8 | |
| 9 | if (empty($editable_role) || !in_array($editable_role, $editable_roles)) { |
| 10 | $editable_role = !empty($editable_roles) ? $editable_roles[0] : ''; |
| 11 | } |
| 12 | ?> |
| 13 | <table class="form-table"> |
| 14 | <tr> |
| 15 | <th><?php echo __('User Roles', 'advanced-access-manager'); ?></th> |
| 16 | <td> |
| 17 | <div class="wp-tab-panel"> |
| 18 | <ul> |
| 19 | <?php $roles = (!empty($user) ? $user->roles : [ $editable_role ]); ?> |
| 20 | <?php foreach (get_editable_roles() as $id => $role) { ?> |
| 21 | <li> |
| 22 | <label for="aam_user_role_<?php echo esc_attr($id); ?>"> |
| 23 | <input |
| 24 | type="checkbox" |
| 25 | name="aam_user_roles[]" |
| 26 | value="<?php echo esc_attr($id); ?>" |
| 27 | <?php checked(in_array($id, $roles)); ?> |
| 28 | id="aam_user_role_<?php echo esc_attr($id); ?>" |
| 29 | /> |
| 30 | <?php echo esc_html(translate_user_role($role['name'])); ?> |
| 31 | </label> |
| 32 | </li> |
| 33 | <?php } ?> |
| 34 | </ul> |
| 35 | <input type="hidden" value="<?php echo esc_js($editable_role); ?>" name="role" /> |
| 36 | </div> |
| 37 | </td> |
| 38 | </tr> |
| 39 | </table> |
| 40 | |
| 41 | <!-- Remove standard WordPress roles selector--> |
| 42 | <script> |
| 43 | (function($) { |
| 44 | $(document).ready(function() { |
| 45 | // Remove default role drop-down from User Edit page |
| 46 | if ($('.user-role-wrap').length) { |
| 47 | $('.user-role-wrap').remove(); |
| 48 | } |
| 49 | |
| 50 | // Remove default role drop-down from Add New User page |
| 51 | if ($('#role').length) { |
| 52 | $('#role').parent().parent().remove(); |
| 53 | } |
| 54 | |
| 55 | // Remove default role drop-down from Add Existing User page |
| 56 | if ($('#adduser-role').length) { |
| 57 | $('#adduser-role').parent().parent().remove(); |
| 58 | } |
| 59 | }); |
| 60 | })(jQuery); |
| 61 | </script> |
| 62 | <?php } ?> |
| 63 | <?php } |