Plugin Directory

Changeset 3495690


Ignore:
Timestamp:
03/31/2026 02:26:17 PM (4 days ago)
Author:
gfazioli
Message:

#### New Features

  • WordPress Settings: new Security options — disable file editor, author archives, Application Passwords
  • WordPress Settings: new Admin Menu options — toggle Media, Pages, Comments, Tools visibility
  • WordPress Settings: new Admin Notices options — disable update nags, admin email verification
  • WordPress Settings: new Writing options — disable self-pings, auto-empty trash with configurable days
  • WordPress Settings: new Reading options — disable emoji scripts, embed scripts, jQuery Migrate, RSS feeds
  • WordPress Settings: new Performance tab — Heartbeat control, Dashicons removal on frontend
  • WordPress Settings: new Media tab — disable big image scaling, custom JPEG quality
  • Cron: delete individual cron jobs with confirmation modal
  • Cron: bulk delete selected cron jobs
  • Cron: search/filter by hook name
  • Cron: sortable columns (hook name, next run, schedule)
  • Cron: row expansion showing signature, interval, and arguments
  • Cron: right-click context menu with Run and Delete actions
  • Cron: colored schedule badges (hourly, daily, weekly, one-time)
  • Cron: time-relative status indicators (overdue, soon, upcoming)
  • Overview: new Database Size quick card with link to Database section
  • Overview: new Scheduled Cron Jobs quick card with link to Cron section
  • Overview: clickable cards navigate to their corresponding section (Posts→Trash, Comments→Trash, Options→Trash)
  • Overview: refresh button to reload all overview data
  • Trash: bulk delete for unapproved, spam, and trashed comments
  • Trash: orphan term relationships listing, single and bulk delete
  • Duplicates: single and bulk delete for duplicate user meta
  • Duplicates: single and bulk delete for duplicate comment meta

#### Security

  • Fixed SQL injection in database optimize and auto-increment reset (table name whitelist)
  • Added schema validation and recursive sanitization for preferences update
  • Added esc_html() to all meta/option/comment values in JSON responses
  • Fixed Disk overview showing NaN for timed-out directory calculations
  • Fixed Disk overview crash when WordPress size data contains error strings
  • Fixed division by zero in Options overview when option count is zero
  • Fixed OverviewCard pulsing indicator on arbitrary >50% values
  • Fixed admin bar removal running too early (before scripts are registered)
  • Fixed XML-RPC error handler using PHP Error class instead of WP_Error
  • Fixed Reset to default not actually resetting options to defaults
  • Fixed each WordPress Settings tab creating a separate OptionsProvider (4 redundant fetches)
  • Fixed hardcoded wp_posts table prefix in SQL subqueries
  • Added $wpdb->prepare() to all orphan detection queries
  • Sanitized cron hook_name and signature inputs
  • Fixed transient query missing prepared statement

#### Improvements

  • Migrated from npm to Yarn
  • Updated @wordpress/scripts from 27.9.0 to 31.7.0
  • Updated Mantine from 7.14.0 to 8.3.18
  • Updated all dependencies to latest compatible versions
  • Migrated to React 18 createRoot API (replaced deprecated wp.element.render)
  • Modernized tsconfig.json (es2020, react-jsx, bundler)
  • Removed all unnecessary import * as React statements (30 files)
  • Removed deprecated MantineProvider withStaticClasses prop
  • Fixed Mantine 8 Image component width/height rendering in header logo
  • Fixed SWR mutate() not revalidating after bulk operations across all views
  • Fixed broken Refresh button in empty Trash/Duplicates view
  • Performance: replaced N+1 user queries with single count_users() call
  • Performance: removed repeated COUNT(*) subqueries in post/comment stats
  • Performance: added LIMIT 1000 to orphan detection queries
  • Fixed Terms crash when excluded term IDs array is empty
  • Removed esc_sql() mixing with prepare() in term relationships
  • Fixed translated strings interpolated in SQL (comments)
  • Fixed duplicate term meta deletion keeping wrong entry (array_pop after delete)
  • Cleaned up dead code: removed unused returnColumnsJson() from Cron and Shortcode providers
  • Cleaned up unused imports and variables in Shortcode component
  • Added error handling to Options/Preferences provider
  • Improved post.ts error throwing with structured status/statusText
Location:
scotty
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • scotty/tags/2.0.0/readme.txt

    r3495677 r3495690  
    22Contributors: gfazioli
    33Donate link: https://www.paypal.com/donate/?hosted_button_id=TBPD4R78VDMCJ
    4 Tags: cleanup, optimized, control
     4Tags: cleanup, optimization, database, security, maintenance
    55Requires at least: 6.2
    66Tested up to: 6.7
     
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
    1111
    12 Your WordPress engineer for superior site maintenance and optimization
     12Your WordPress engineer for superior site maintenance, optimization, and control.
    1313
    1414## Description
    1515
    16 Scotty is the ultimate solution for controlling, cleaning, repairing, and managing advanced settings in WordPress. Boasting a powerful feature suite, Scotty empowers you to analyze, optimize, and maintain your WordPress database, as well as fine-tune your site's functionality.
    17 
    18 ### Key Features:
    19 
    20 1. Database analysis and optimization
    21 2. Management of post revisions, auto drafts, and deleted content
    22 3. Comment management (non-approved, spam, and trash)
    23 4. Identification and removal of orphaned post meta and comment meta
    24 5. Cleanup of unnecessary options table entries
    25 6. Relationship integrity checks (users, posts, comments, categories, tags)
    26 7. Cron job management
    27 8. Shortcode registry management
    28 9. Useful Widget on the Dashboard
    29 10. Advanced settings control (e.g., disabling REST API, email login, dashboard menu customization)
     16Scotty is the all-in-one solution for controlling, cleaning, and optimizing your WordPress site. With a modern React-based dashboard and a powerful feature suite, Scotty empowers you to analyze and maintain your database, manage cron jobs, fine-tune security, and control dozens of hidden WordPress settings — all from a single, intuitive interface.
     17
     18### Cleaning
     19
     20* **Trash Management** — Delete post revisions, auto-drafts, trashed posts, unapproved/spam/trashed comments, orphaned metadata, and transient options in bulk or one by one.
     21* **Duplicates Detection** — Identify and remove duplicate entries across post meta, comment meta, user meta, and term meta tables.
     22* **Orphan Cleanup** — Find and delete orphaned records in postmeta, commentmeta, usermeta, termmeta, and term relationships.
     23
     24### Optimization
     25
     26* **Database** — View all database tables with engine, auto-increment, collation, and overhead info. Optimize tables and reset auto-increment values individually or in bulk.
     27* **Disk Usage** — Overview of WordPress installation size breakdown: core, themes, plugins, uploads, and database.
     28
     29### System
     30
     31* **Cron Manager** — View all scheduled cron jobs with next run time, schedule, interval, and arguments. Run, delete, search, sort, and bulk-manage cron jobs. Color-coded schedule badges and time-relative status indicators.
     32* **Shortcode Registry** — Browse all registered shortcodes with their callback functions and callable status.
     33
     34### WordPress Settings
     35
     36Control dozens of WordPress settings organized in 6 tabs:
     37
     38**General**
     39* Enable/disable REST API and XML-RPC
     40* Hide WordPress version from source code
     41* Hide detailed login error messages
     42* Disable email authentication
     43* Disable the built-in file editor
     44* Disable author archives (prevents user enumeration)
     45* Disable Application Passwords
     46
     47**Admin**
     48* Show/hide admin footer credit and version
     49* Show/hide the Welcome panel
     50* Toggle visibility of Dashboard, Posts, Media, Pages, Comments, and Tools menu items
     51* Disable update nags for non-admin users
     52* Disable the periodic admin email verification prompt
     53
     54**Writing**
     55* Limit the number of post revisions
     56* Disable self-pings
     57* Configure auto-empty trash interval
     58
     59**Reading**
     60* Set custom excerpt length
     61* Hide admin bar on frontend
     62* Disable emoji scripts and styles
     63* Disable embed scripts (wp-embed.js)
     64* Disable jQuery Migrate on frontend
     65* Disable RSS and Atom feeds
     66
     67**Performance**
     68* Disable Heartbeat API on frontend
     69* Set custom Heartbeat interval
     70* Remove Dashicons CSS from frontend for non-admin users
     71
     72**Media**
     73* Disable big image scaling (WordPress 5.3+)
     74* Set custom JPEG compression quality
     75
     76### Dashboard Widget
     77
     78A compact dashboard widget showing key site health notifications at a glance.
    3079
    3180## Changelog
     
    4493* WordPress Settings: new Performance tab — Heartbeat control, Dashicons removal on frontend
    4594* WordPress Settings: new Media tab — disable big image scaling, custom JPEG quality
     95* WordPress Settings: unified OptionsProvider with single fetch and shared Reset button
    4696* Cron: delete individual cron jobs with confirmation modal
    4797* Cron: bulk delete selected cron jobs
     
    54104* Overview: new Database Size quick card with link to Database section
    55105* Overview: new Scheduled Cron Jobs quick card with link to Cron section
    56 * Overview: clickable cards navigate to their corresponding section (Posts→Trash, Comments→Trash, Options→Trash)
     106* Overview: clickable cards navigate to their corresponding section
    57107* Overview: refresh button to reload all overview data
    58108* Trash: bulk delete for unapproved, spam, and trashed comments
    59109* Trash: orphan term relationships listing, single and bulk delete
    60 * Duplicates: single and bulk delete for duplicate user meta
    61 * Duplicates: single and bulk delete for duplicate comment meta
     110* Duplicates: single and bulk delete for duplicate user meta and comment meta
    62111
    63112#### Security
     
    66115* Added schema validation and recursive sanitization for preferences update
    67116* Added esc_html() to all meta/option/comment values in JSON responses
     117* Fixed hardcoded wp_posts table prefix in SQL subqueries
     118* Added $wpdb->prepare() to all orphan detection queries
     119* Sanitized cron hook_name and signature inputs
     120* Fixed transient query missing prepared statement
     121* Fixed XML-RPC error handler using PHP Error class instead of WP_Error
     122* Standardized LIKE clause syntax across all queries
     123* Fixed hardcoded commentmeta table prefix in orphan deletion
     124
     125#### Bug Fixes
     126
    68127* Fixed Disk overview showing NaN for timed-out directory calculations
    69128* Fixed Disk overview crash when WordPress size data contains error strings
     
    71130* Fixed OverviewCard pulsing indicator on arbitrary >50% values
    72131* Fixed admin bar removal running too early (before scripts are registered)
    73 * Fixed XML-RPC error handler using PHP Error class instead of WP_Error
    74132* Fixed Reset to default not actually resetting options to defaults
    75133* Fixed each WordPress Settings tab creating a separate OptionsProvider (4 redundant fetches)
    76 * Fixed hardcoded wp_posts table prefix in SQL subqueries
    77 * Added $wpdb->prepare() to all orphan detection queries
    78 * Sanitized cron hook_name and signature inputs
    79 * Fixed transient query missing prepared statement
     134* Fixed SWR mutate() not revalidating after bulk operations across all views
     135* Fixed broken Refresh button in empty Trash/Duplicates view
     136* Fixed Terms crash when excluded term IDs array is empty
     137* Fixed translated strings interpolated in SQL (comments)
     138* Fixed duplicate term meta deletion keeping wrong entry
     139* Fixed Features popover Overview link not working
     140* Fixed "Database Sneak Peak" typo (now "Sneak Peek")
     141* Fixed getOptions crash on undefined path segments when new options are not yet in database
    80142
    81143#### Improvements
     
    86148* Updated all dependencies to latest compatible versions
    87149* Migrated to React 18 createRoot API (replaced deprecated wp.element.render)
    88 * Modernized tsconfig.json (es2020, react-jsx, bundler)
     150* Modernized tsconfig.json (es2020, react-jsx, bundler resolution)
    89151* Removed all unnecessary `import * as React` statements (30 files)
    90 * Removed deprecated MantineProvider `withStaticClasses` prop
    91 * Fixed Mantine 8 Image component width/height rendering in header logo
    92 * Fixed SWR mutate() not revalidating after bulk operations across all views
    93 * Fixed broken Refresh button in empty Trash/Duplicates view
     152* Removed deprecated MantineProvider withStaticClasses prop
     153* Fixed Mantine 8 Image component rendering in header logo
    94154* Performance: replaced N+1 user queries with single count_users() call
    95155* Performance: removed repeated COUNT(*) subqueries in post/comment stats
    96156* Performance: added LIMIT 1000 to orphan detection queries
    97 * Fixed Terms crash when excluded term IDs array is empty
    98157* Removed esc_sql() mixing with prepare() in term relationships
    99 * Fixed translated strings interpolated in SQL (comments)
    100 * Fixed duplicate term meta deletion keeping wrong entry (array_pop after delete)
    101 * Cleaned up dead code: removed unused returnColumnsJson() from Cron and Shortcode providers
    102 * Cleaned up unused imports and variables in Shortcode component
     158* Cleaned up dead code and unused imports across Cron, Shortcode, and Options components
    103159* Added error handling to Options/Preferences provider
    104 * Improved post.ts error throwing with structured status/statusText
     160* Improved AJAX error throwing with structured status/statusText
    105161
    106162### 1.1.0
    107163
    108 - ♻️ Refactor code in TypeScript
    109 - ✨ Add internalization support
    110 - ✨ Add the total number of items in the CRON view
    111 - ✨ Add the total number of items in the Shortcode view
    112 - ✨ Add links in the left sidebar
    113 - ✨ Disable the admin notices for the Scotty view
    114 - 🐛 Fix unused terms view to enable deletion of unused terms
     164* Refactored code in TypeScript
     165* Added internationalization support
     166* Added total item count in Cron and Shortcode views
     167* Added links in the left sidebar
     168* Disabled admin notices for the Scotty view
     169* Fixed unused terms view to enable deletion of unused terms
    115170
    116171### 1.0.0
    117172
    118 - First public release
    119 
    120 ## Coming Soon in the Next Version
    121 
    122 - Database rename table
    123 - Database truncate table
    124 - Database drop table
    125 - Database export table
    126 - Database import table
    127 - Database search and replace
    128 - Database query
    129 - Database backup table
    130 - Auto cleaning
    131 - Spotlight CMD+K
    132 - And more...
     173* First public release
     174
     175## Coming Soon
     176
     177* Multisite support
     178* Database rename, truncate, drop, export, import
     179* Database search and replace
     180* Database backup
     181* Scheduled auto-cleaning
     182* Spotlight search (CMD+K)
     183* And more...
    133184
    134185## Installation
    135 
    136 This section describes how to install the plugin and get it working.
    137186
    1381871. Upload the entire content of plugin archive to your `/wp-content/plugins/` directory.
     
    142191## Screenshots
    143192
    144 1. Scotty in the Dashboard
    145 2. Overview
    146 3. Trash Management
     1931. Overview Dashboard
     1942. Trash Management
     1953. Duplicates Detection
    1471964. Database Optimization
    148 5. Cron Management
     1975. Cron Manager
    1491986. Shortcode Registry
    150 7. WordPress Advanced Settings
    151 8. WordPress Dashboard Settings
    152 9. WordPress Reading Settings
    153 10. Dark Mode
     1997. WordPress General Settings
     2008. WordPress Admin Settings
     2019. WordPress Performance Settings
     20210. WordPress Media Settings
     20311. Dark Mode
    154204
    155205## FAQ
    156206
    157207= 1. What is Scotty? =
    158 Scotty has been designed with the best features for optimizing and controlling your WordPress site, while providing you with a simplified and intuitive user experience.
    159 
    160 = 2. Do I have to do a backup before clean something? =
    161 Yes, we recommend that you always back up your database table before performing any cleanup operation.
     208Scotty is a WordPress maintenance and optimization plugin with a modern React-based dashboard. It helps you clean your database, manage cron jobs, control security settings, and optimize your site performance.
     209
     210= 2. Do I have to back up before cleaning? =
     211Yes, we strongly recommend backing up your database before performing any cleanup operation.
    162212
    163213= 3. Can I undo a cleanup operation? =
    164 No, once a cleanup operation has been performed, it cannot be undone. We recommend that you always back up your database table before performing any cleanup operation.
    165 
    166 = 4. Can I request a new feature? =
    167 Yes, we are always open to new ideas and suggestions. Please feel free to [contact us with](https://wordpress.org/support/plugin/scotty/) your feature requests.
    168 
    169 = 5. Can I report a bug? =
    170 Yes, we are always open to bug reports. Please feel free to [contact us with](https://wordpress.org/support/plugin/scotty/) your bug reports.
     214No, cleanup operations are permanent. Always back up first.
     215
     216= 4. Will disabling the REST API break my site? =
     217Disabling the REST API will prevent unauthenticated access. Logged-in users will still have access. Some plugins may require the REST API to function — test after disabling.
     218
     219= 5. Can I request a new feature? =
     220Yes! Please submit feature requests at [the support forum](https://wordpress.org/support/plugin/scotty/).
     221
     222= 6. Can I report a bug? =
     223Yes! Please report bugs at [the support forum](https://wordpress.org/support/plugin/scotty/).
    171224
    172225## Upgrade Notice
    173 N/A
     226
     227### 2.0.0
     228Major update with new WordPress Settings (Performance, Media tabs), redesigned Cron manager, security hardening, and modernized tech stack (Mantine 8, React 18 createRoot). Back up your database before upgrading.
  • scotty/trunk/readme.txt

    r3495682 r3495690  
    22Contributors: gfazioli
    33Donate link: https://www.paypal.com/donate/?hosted_button_id=TBPD4R78VDMCJ
    4 Tags: cleanup, optimized, control
     4Tags: cleanup, optimization, database, security, maintenance
    55Requires at least: 6.2
    66Tested up to: 6.7
     
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
    1111
    12 Your WordPress engineer for superior site maintenance and optimization
     12Your WordPress engineer for superior site maintenance, optimization, and control.
    1313
    1414## Description
    1515
    16 Scotty is the ultimate solution for controlling, cleaning, repairing, and managing advanced settings in WordPress. Boasting a powerful feature suite, Scotty empowers you to analyze, optimize, and maintain your WordPress database, as well as fine-tune your site's functionality.
    17 
    18 ### Key Features:
    19 
    20 1. Database analysis and optimization
    21 2. Management of post revisions, auto drafts, and deleted content
    22 3. Comment management (non-approved, spam, and trash)
    23 4. Identification and removal of orphaned post meta and comment meta
    24 5. Cleanup of unnecessary options table entries
    25 6. Relationship integrity checks (users, posts, comments, categories, tags)
    26 7. Cron job management
    27 8. Shortcode registry management
    28 9. Useful Widget on the Dashboard
    29 10. Advanced settings control (e.g., disabling REST API, email login, dashboard menu customization)
     16Scotty is the all-in-one solution for controlling, cleaning, and optimizing your WordPress site. With a modern React-based dashboard and a powerful feature suite, Scotty empowers you to analyze and maintain your database, manage cron jobs, fine-tune security, and control dozens of hidden WordPress settings — all from a single, intuitive interface.
     17
     18### Cleaning
     19
     20* **Trash Management** — Delete post revisions, auto-drafts, trashed posts, unapproved/spam/trashed comments, orphaned metadata, and transient options in bulk or one by one.
     21* **Duplicates Detection** — Identify and remove duplicate entries across post meta, comment meta, user meta, and term meta tables.
     22* **Orphan Cleanup** — Find and delete orphaned records in postmeta, commentmeta, usermeta, termmeta, and term relationships.
     23
     24### Optimization
     25
     26* **Database** — View all database tables with engine, auto-increment, collation, and overhead info. Optimize tables and reset auto-increment values individually or in bulk.
     27* **Disk Usage** — Overview of WordPress installation size breakdown: core, themes, plugins, uploads, and database.
     28
     29### System
     30
     31* **Cron Manager** — View all scheduled cron jobs with next run time, schedule, interval, and arguments. Run, delete, search, sort, and bulk-manage cron jobs. Color-coded schedule badges and time-relative status indicators.
     32* **Shortcode Registry** — Browse all registered shortcodes with their callback functions and callable status.
     33
     34### WordPress Settings
     35
     36Control dozens of WordPress settings organized in 6 tabs:
     37
     38**General**
     39* Enable/disable REST API and XML-RPC
     40* Hide WordPress version from source code
     41* Hide detailed login error messages
     42* Disable email authentication
     43* Disable the built-in file editor
     44* Disable author archives (prevents user enumeration)
     45* Disable Application Passwords
     46
     47**Admin**
     48* Show/hide admin footer credit and version
     49* Show/hide the Welcome panel
     50* Toggle visibility of Dashboard, Posts, Media, Pages, Comments, and Tools menu items
     51* Disable update nags for non-admin users
     52* Disable the periodic admin email verification prompt
     53
     54**Writing**
     55* Limit the number of post revisions
     56* Disable self-pings
     57* Configure auto-empty trash interval
     58
     59**Reading**
     60* Set custom excerpt length
     61* Hide admin bar on frontend
     62* Disable emoji scripts and styles
     63* Disable embed scripts (wp-embed.js)
     64* Disable jQuery Migrate on frontend
     65* Disable RSS and Atom feeds
     66
     67**Performance**
     68* Disable Heartbeat API on frontend
     69* Set custom Heartbeat interval
     70* Remove Dashicons CSS from frontend for non-admin users
     71
     72**Media**
     73* Disable big image scaling (WordPress 5.3+)
     74* Set custom JPEG compression quality
     75
     76### Dashboard Widget
     77
     78A compact dashboard widget showing key site health notifications at a glance.
    3079
    3180## Changelog
     
    4493* WordPress Settings: new Performance tab — Heartbeat control, Dashicons removal on frontend
    4594* WordPress Settings: new Media tab — disable big image scaling, custom JPEG quality
     95* WordPress Settings: unified OptionsProvider with single fetch and shared Reset button
    4696* Cron: delete individual cron jobs with confirmation modal
    4797* Cron: bulk delete selected cron jobs
     
    54104* Overview: new Database Size quick card with link to Database section
    55105* Overview: new Scheduled Cron Jobs quick card with link to Cron section
    56 * Overview: clickable cards navigate to their corresponding section (Posts→Trash, Comments→Trash, Options→Trash)
     106* Overview: clickable cards navigate to their corresponding section
    57107* Overview: refresh button to reload all overview data
    58108* Trash: bulk delete for unapproved, spam, and trashed comments
    59109* Trash: orphan term relationships listing, single and bulk delete
    60 * Duplicates: single and bulk delete for duplicate user meta
    61 * Duplicates: single and bulk delete for duplicate comment meta
     110* Duplicates: single and bulk delete for duplicate user meta and comment meta
    62111
    63112#### Security
     
    66115* Added schema validation and recursive sanitization for preferences update
    67116* Added esc_html() to all meta/option/comment values in JSON responses
     117* Fixed hardcoded wp_posts table prefix in SQL subqueries
     118* Added $wpdb->prepare() to all orphan detection queries
     119* Sanitized cron hook_name and signature inputs
     120* Fixed transient query missing prepared statement
     121* Fixed XML-RPC error handler using PHP Error class instead of WP_Error
     122* Standardized LIKE clause syntax across all queries
     123* Fixed hardcoded commentmeta table prefix in orphan deletion
     124
     125#### Bug Fixes
     126
    68127* Fixed Disk overview showing NaN for timed-out directory calculations
    69128* Fixed Disk overview crash when WordPress size data contains error strings
     
    71130* Fixed OverviewCard pulsing indicator on arbitrary >50% values
    72131* Fixed admin bar removal running too early (before scripts are registered)
    73 * Fixed XML-RPC error handler using PHP Error class instead of WP_Error
    74132* Fixed Reset to default not actually resetting options to defaults
    75133* Fixed each WordPress Settings tab creating a separate OptionsProvider (4 redundant fetches)
    76 * Fixed hardcoded wp_posts table prefix in SQL subqueries
    77 * Added $wpdb->prepare() to all orphan detection queries
    78 * Sanitized cron hook_name and signature inputs
    79 * Fixed transient query missing prepared statement
     134* Fixed SWR mutate() not revalidating after bulk operations across all views
     135* Fixed broken Refresh button in empty Trash/Duplicates view
     136* Fixed Terms crash when excluded term IDs array is empty
     137* Fixed translated strings interpolated in SQL (comments)
     138* Fixed duplicate term meta deletion keeping wrong entry
     139* Fixed Features popover Overview link not working
     140* Fixed "Database Sneak Peak" typo (now "Sneak Peek")
     141* Fixed getOptions crash on undefined path segments when new options are not yet in database
    80142
    81143#### Improvements
     
    86148* Updated all dependencies to latest compatible versions
    87149* Migrated to React 18 createRoot API (replaced deprecated wp.element.render)
    88 * Modernized tsconfig.json (es2020, react-jsx, bundler)
     150* Modernized tsconfig.json (es2020, react-jsx, bundler resolution)
    89151* Removed all unnecessary `import * as React` statements (30 files)
    90 * Removed deprecated MantineProvider `withStaticClasses` prop
    91 * Fixed Mantine 8 Image component width/height rendering in header logo
    92 * Fixed SWR mutate() not revalidating after bulk operations across all views
    93 * Fixed broken Refresh button in empty Trash/Duplicates view
     152* Removed deprecated MantineProvider withStaticClasses prop
     153* Fixed Mantine 8 Image component rendering in header logo
    94154* Performance: replaced N+1 user queries with single count_users() call
    95155* Performance: removed repeated COUNT(*) subqueries in post/comment stats
    96156* Performance: added LIMIT 1000 to orphan detection queries
    97 * Fixed Terms crash when excluded term IDs array is empty
    98157* Removed esc_sql() mixing with prepare() in term relationships
    99 * Fixed translated strings interpolated in SQL (comments)
    100 * Fixed duplicate term meta deletion keeping wrong entry (array_pop after delete)
    101 * Cleaned up dead code: removed unused returnColumnsJson() from Cron and Shortcode providers
    102 * Cleaned up unused imports and variables in Shortcode component
     158* Cleaned up dead code and unused imports across Cron, Shortcode, and Options components
    103159* Added error handling to Options/Preferences provider
    104 * Improved post.ts error throwing with structured status/statusText
     160* Improved AJAX error throwing with structured status/statusText
    105161
    106162### 1.1.0
    107163
    108 - ♻️ Refactor code in TypeScript
    109 - ✨ Add internalization support
    110 - ✨ Add the total number of items in the CRON view
    111 - ✨ Add the total number of items in the Shortcode view
    112 - ✨ Add links in the left sidebar
    113 - ✨ Disable the admin notices for the Scotty view
    114 - 🐛 Fix unused terms view to enable deletion of unused terms
     164* Refactored code in TypeScript
     165* Added internationalization support
     166* Added total item count in Cron and Shortcode views
     167* Added links in the left sidebar
     168* Disabled admin notices for the Scotty view
     169* Fixed unused terms view to enable deletion of unused terms
    115170
    116171### 1.0.0
    117172
    118 - First public release
    119 
    120 ## Coming Soon in the Next Version
    121 
    122 - Database rename table
    123 - Database truncate table
    124 - Database drop table
    125 - Database export table
    126 - Database import table
    127 - Database search and replace
    128 - Database query
    129 - Database backup table
    130 - Auto cleaning
    131 - Spotlight CMD+K
    132 - And more...
     173* First public release
     174
     175## Coming Soon
     176
     177* Multisite support
     178* Database rename, truncate, drop, export, import
     179* Database search and replace
     180* Database backup
     181* Scheduled auto-cleaning
     182* Spotlight search (CMD+K)
     183* And more...
    133184
    134185## Installation
    135 
    136 This section describes how to install the plugin and get it working.
    137186
    1381871. Upload the entire content of plugin archive to your `/wp-content/plugins/` directory.
     
    142191## Screenshots
    143192
    144 1. Scotty in the Dashboard
    145 2. Overview
    146 3. Trash Management
     1931. Overview Dashboard
     1942. Trash Management
     1953. Duplicates Detection
    1471964. Database Optimization
    148 5. Cron Management
     1975. Cron Manager
    1491986. Shortcode Registry
    150 7. WordPress Advanced Settings
    151 8. WordPress Dashboard Settings
    152 9. WordPress Reading Settings
    153 10. Dark Mode
     1997. WordPress General Settings
     2008. WordPress Admin Settings
     2019. WordPress Performance Settings
     20210. WordPress Media Settings
     20311. Dark Mode
    154204
    155205## FAQ
    156206
    157207= 1. What is Scotty? =
    158 Scotty has been designed with the best features for optimizing and controlling your WordPress site, while providing you with a simplified and intuitive user experience.
    159 
    160 = 2. Do I have to do a backup before clean something? =
    161 Yes, we recommend that you always back up your database table before performing any cleanup operation.
     208Scotty is a WordPress maintenance and optimization plugin with a modern React-based dashboard. It helps you clean your database, manage cron jobs, control security settings, and optimize your site performance.
     209
     210= 2. Do I have to back up before cleaning? =
     211Yes, we strongly recommend backing up your database before performing any cleanup operation.
    162212
    163213= 3. Can I undo a cleanup operation? =
    164 No, once a cleanup operation has been performed, it cannot be undone. We recommend that you always back up your database table before performing any cleanup operation.
    165 
    166 = 4. Can I request a new feature? =
    167 Yes, we are always open to new ideas and suggestions. Please feel free to [contact us with](https://wordpress.org/support/plugin/scotty/) your feature requests.
    168 
    169 = 5. Can I report a bug? =
    170 Yes, we are always open to bug reports. Please feel free to [contact us with](https://wordpress.org/support/plugin/scotty/) your bug reports.
     214No, cleanup operations are permanent. Always back up first.
     215
     216= 4. Will disabling the REST API break my site? =
     217Disabling the REST API will prevent unauthenticated access. Logged-in users will still have access. Some plugins may require the REST API to function — test after disabling.
     218
     219= 5. Can I request a new feature? =
     220Yes! Please submit feature requests at [the support forum](https://wordpress.org/support/plugin/scotty/).
     221
     222= 6. Can I report a bug? =
     223Yes! Please report bugs at [the support forum](https://wordpress.org/support/plugin/scotty/).
    171224
    172225## Upgrade Notice
    173 N/A
     226
     227### 2.0.0
     228Major update with new WordPress Settings (Performance, Media tabs), redesigned Cron manager, security hardening, and modernized tech stack (Mantine 8, React 18 createRoot). Back up your database before upgrading.
Note: See TracChangeset for help on using the changeset viewer.