コード例 #1
0
 private static function _delete_userlabel_from_blog(&$userlabel)
 {
     global $wpdb;
     $post_status_sql = '';
     $default_post_status = get_option('wpaa_default_post_status');
     if ($default_post_status && in_array($default_post_status, UndisclosedSettings::get_post_stati())) {
         $post_status_sql = $wpdb->prepare(" , post_status=%s ", $default_post_status);
     }
     // delete everything from posts and restore usefull default values
     $query = $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET post_view_cap='exist' {$post_status_sql} WHERE post_view_cap=%s", $userlabel->capability));
     $query = $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET post_edit_cap='exist' WHERE post_edit_cap=%s", $userlabel->capability));
     // back to default
     $query = $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET post_comment_cap='exist',comment_status='closed' WHERE post_comment_cap=%s", $userlabel->capability));
     // back to default
     // set back options
     if (get_option('wpaa_default_view_cap') == $userlabel->capability) {
         update_option('wpaa_default_view_cap', 'exist');
     }
     if (get_option('wpaa_default_edit_cap') == $userlabel->capability) {
         update_option('wpaa_default_edit_cap', 'exist');
     }
     if (get_option('wpaa_default_comment_cap') == $userlabel->capability) {
         update_option('wpaa_default_comment_cap', 'exist');
     }
     if (is_multisite()) {
         $current_blog_id = get_current_blog_id();
     }
     // remove all caps from users
     $users = get_users();
     foreach ($users as $user) {
         if (is_multisite()) {
             $user->for_blog($current_blog_id);
         }
         $user->remove_cap($userlabel->capability);
     }
     self::_clear_cache();
 }