Пример #1
0
function ure_removeCapability()
{
    global $wpdb, $wp_roles;
    $mess = '';
    if (isset($_GET['removeusercapability']) && $_GET['removeusercapability']) {
        $capability = $_GET['removeusercapability'];
        $capsToRemove = ure_getCapsToRemove();
        if (!is_array($capsToRemove) || count($capsToRemove) == 0 || !isset($capsToRemove[$capability])) {
            return sprintf(__('Error! You do not have permission to delete this capability: %s!', 'ure'), $capability);
        }
        // process users
        $usersId = $wpdb->get_col($wpdb->prepare("SELECT {$wpdb->users}.ID FROM {$wpdb->users}"));
        foreach ($usersId as $user_id) {
            $user = get_user_to_edit($user_id);
            if (isset($user->roles[0]) && $user->roles[0] == 'administrator') {
                continue;
            }
            if ($user->has_cap($capability)) {
                $user->remove_cap($capability);
            }
        }
        // process roles
        foreach ($wp_roles->role_objects as $wp_role) {
            if ($wp_role->has_cap($capability)) {
                $wp_role->remove_cap($capability);
            }
        }
        $mess = sprintf(__('Capability %s is removed successfully', 'ure'), $capability);
    }
    return $mess;
}
Пример #2
0
function ure_deleteCapability()
{
    global $wpdb, $wp_roles;
    $mess = '';
    if (!empty($_POST['user_capability_id'])) {
        $capability_id = $_POST['user_capability_id'];
        $capsToRemove = ure_getCapsToRemove();
        if (!is_array($capsToRemove) || count($capsToRemove) == 0 || !isset($capsToRemove[$capability_id])) {
            return sprintf(__('Error! You do not have permission to delete this capability: %s!', 'ure'), $capability_id);
        }
        // process users
        $usersId = $wpdb->get_col("SELECT {$wpdb->users}.ID FROM {$wpdb->users}");
        foreach ($usersId as $user_id) {
            $user = get_user_to_edit($user_id);
            if ($user->has_cap($capability_id)) {
                $user->remove_cap($capability_id);
            }
        }
        // process roles
        foreach ($wp_roles->role_objects as $wp_role) {
            if ($wp_role->has_cap($capability_id)) {
                $wp_role->remove_cap($capability_id);
            }
        }
        $mess = sprintf(__('Capability %s is removed successfully', 'ure'), $capability_id);
    }
    return $mess;
}