Control characters removed by kses (wp_kses_no_null: C0, \\0 sequences) or ControlChars (DEL) could hide a divi/* delimiter or an et_pb shortcode from the raw-input check. The shared DiviMarkup helper checks the raw and the normalized form and now guards every raw-content path: content-create/-update content and media-update description (attachment post_content). MediaImporter logs import failures with scheme, host, port and path only; uninstall.php lists the removed user meta. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01At3V6SjwbMe6eMzVGW3Hs7
29 lines
1.2 KiB
PHP
29 lines
1.2 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Uninstall WP-LIT-MCP: removes its own data only, on every site of a network.
|
|
*
|
|
* Removed: options lit_mcp_allowed_roles, lit_mcp_exposure, lit_mcp_limits, lit_mcp_db_version,
|
|
* transient lit_mcp_endpoint_check, cron hook lit_mcp_log_cleanup, table {prefix}lit_mcp_log, user meta
|
|
* lit_mcp_log_per_page (Protokoll screen option, removed once for all users).
|
|
*
|
|
* Kept on purpose: data of the bundled wp-media/mcp-oauth library (option mcp_jwt_secret,
|
|
* option wpmedia_mcp_oauth_rewrite_version, user meta mcp_refresh_jti_*, application passwords
|
|
* of connected clients). The library may be used by other plugins on this site; see readme.txt.
|
|
* Posts, attachments and revisions are never touched.
|
|
*
|
|
* The cleanup logic lives in src/Uninstaller.php, required directly below by path rather
|
|
* than through the Composer/Jetpack autoloader: WordPress core runs uninstall.php standalone
|
|
* without loading the plugin's main file, so that autoloader is not guaranteed to have run.
|
|
* tests/Unit/UninstallerTest.php unit-tests that class; tests/Unit/UninstallTest.php exercises
|
|
* this script's wiring to it.
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
defined('WP_UNINSTALL_PLUGIN') || exit;
|
|
|
|
require_once __DIR__ . '/src/Uninstaller.php';
|
|
|
|
\LIT\MCP\Uninstaller::run();
|