Delete a folder, get it back
Plathix Trash holds deleted folders and files until you restore them or they expire. These checks record what comes back after Restore, what happens to the files inside a deleted folder, where subfolders end up, and what stays outside the Trash. Ten checks passed; a fix and a re-run are scheduled for the other two. The Trash rows of the regression suite are listed below them.
The claim we are testing
“Plathix Trash gives you a place to look at what was deleted and bring it back before it’s gone for good. You also decide what happens to the files.”
Why this is worth testing
A trash that quietly loses the files, the subfolders or the folder’s place in the tree is not a way back, it is a slower delete. So the test restores folders in every shape we could think of and checks what the tree looks like afterwards, not just whether the folder reappears.
What we check
- Move a folder with subfolders and files to Trash, then restore it: structure, place in the tree, files.
- The same with “Delete files with folder” on and off.
- Move only the parent folder, leaving the subfolders in place.
- Restore a subfolder while its parent is still in Trash; delete a folder permanently.
- Restore a folder after a new folder with the same name was created.
- Trash and restore files from the Plathix sidebar; the native WordPress “Delete permanently” next to it.
- Folder color and Favorite status after Restore; the Trash contents after the plugin is deactivated and reactivated.
- The retention cleanup: the daily job, run on demand and on schedule.
Results
| What we checked | Result |
|---|---|
| Folder + subfolders → Trash | Passed |
| Restore a complete folder branch | Passed |
| Keep media with “Delete files with folder” off | Passed — files stay in the library, outside the folder |
| Move and restore files with the setting on | Passed |
| Restore child while parent is still trashed | Passed — child returns to the root |
| File Trash / Restore from Plathix | Passed |
| WordPress permanent delete bypasses Plathix Trash | Passed — deleted at once, as WordPress does |
| Color + Favorite survive Restore | Passed |
| Trash data survives deactivate / reactivate | Passed |
| Retention cleanup | Passed — daily job run on demand removed 100 expired folders |
| Restore when a same-name folder already exists | Scheduled — fix planned: the restored folder will get its own name, like “Summer (2)” |
| Scheduled retention cleanup | Scheduled — passed in the August run; a re-run on the current build is scheduled |
Earlier regression checks
Trash is also part of the Free regression suite that runs before a release. These are its Trash checks with the latest result, from the runs of 18 Aug and 9 Sep 2026 on the same live site with Plathix Free 1.0.0. Where the suite expected one thing and the product does another on purpose, the row says so.
| What we checked | Result |
|---|---|
| Restored folder returns to its original parent, not the root | Passed |
| Restoring a folder whose parent is also in Trash falls back to the root without an error | Passed |
| Permanently deleting a parent does not silently remove a separately trashed child | Passed |
| Deleting a folder with subfolders moves the whole branch to Trash | Passed |
| Folder positions and counters are right after a sequence of trash, move and restore | Passed |
| “Delete files with folder” on: files move to WordPress Trash with the folder | Passed |
| “Delete files with folder” off: files stay out of WordPress Trash when their folder is trashed | Passed |
| “Delete files with folder” off: files return to the restored folder | Partial — by design they stay in Uncategorized; files return only with the setting on |
| “Delete files with folder” on: files return from WordPress Trash with the folder | Passed |
| Restoring a child before its parent keeps the tree valid | Passed — the child stays at the root |
| Restore after a name clash with a newly created folder: no database error | Passed — a technical slug stays behind |
| Creating a folder that clashes with a trashed one performs a real insert | Passed |
| The database tells a trashed folder from a permanently deleted one | Passed |
| A permanently deleted folder does not linger in caches or on the front end | Passed |
| A provoked database conflict shows a readable message, not a raw error | Passed — could not be provoked at all |
| A duplicate name next to a live folder is blocked with a clear message | Passed |
| The same folder name is allowed under different parents | Passed |
| Drag a file onto the Trash node: it moves to Trash and counters update live | Passed |
| Drag a folder onto the Trash node | Partial — not supported: folders go to Trash from their menu or with Select folders |
| Bulk select to Trash works; dragging onto protected nodes is blocked | Passed |
| Server rejects retention values of 0 and −1 | Passed |
| Retention boundaries 1 and 180 are accepted, out-of-range values rejected | Passed |
| Auto-cleanup deletes trashed items once retention expires, not before | Passed — 18 Aug run; the 9 Sep run could not force the job |
| Auto-cleanup with the setting off: files survive the folder’s deletion and land in Uncategorized | Passed — 18 Aug run |
| Auto-cleanup with the setting on: files follow the Plathix retention, not the WordPress 30-day default | Passed — 18 Aug run |
| Restoring a file whose folder was auto-deleted succeeds, lands in Uncategorized | Passed |
| A folder with files in Trash is visible there and restorable | Passed — with the setting off the files themselves stay in the library |
| An empty folder restores without an error | Passed |
| Trashing files without their folder leaves the folder in place, empty | Passed |
| Trashing files from Uncategorized works the same as from a folder | Passed |
| Restoring files on their own returns them to their folder | Passed |
| Restoring files before their folder leaves no orphans or duplicates | Passed — the files stay in Uncategorized |
| Trash counter grows immediately when items are added | Passed |
| Trash counter shrinks on restore and on permanent delete | Passed |
| Trash counter reflects auto-cleanup, no phantom items | Passed — 18 Aug run |
| List view in Trash shows only trashed items, matching the grid and the badge | Passed |
| The Restore button never leads to a permanent delete | Passed |
| Dragging a file out of Trash onto a folder restores and moves it in one gesture | Passed |
How we tested
Latest run: 12 Oct 2026 on a live WordPress site with Plathix Free 1.0.0 (build b9d2149b), WordPress 7.1.3 and PHP 8.4, media Trash not enabled in wp-config. Folders and files were created for the test, every action went through the Plathix sidebar or the WordPress Media Library, and the result was read back from the database after each step. The retention job was run once on demand; the scheduled run is still to be confirmed.
Known limits
- Restoring a folder whose name has since been reused leaves two folders with the same name at the same level. A fix is scheduled: the restored folder will get its own name, like “Summer (2)”. Until then, rename one of the two.
- The scheduled daily cleanup passed the 18 Aug regression run. On the current build the job run on demand removed the expired folders; a re-run of the scheduled job is planned before an exact cleanup time is stated.
- The native WordPress “Delete permanently” actions still delete at once. Only the Plathix buttons and drag-and-drop go through Trash.
Not covered yet
- Danger Zone and “Start from scratch”: both delete outside the Trash and were not run on the live site.
- PRO: Activity history entries, role access to Trash, WP-CLI, folders for posts and pages.
- Retention for files on their own, apart from folders.
Related
Test it on your own site
Plathix Free installs in a minute and deactivates cleanly. Your library is the only benchmark that counts.