This changelog tracks changes to the MainWP core that may affect third-party extensions and developers. The purpose is to provide clear documentation of API changes, deprecations, and breaking changes to help extension developers stay current with MainWP development.
- 🟢 Added: New features or capabilities
- 🔵 Fixed: Bug fixes
- 🟠 Changed: Feature modifications or changes
- ⚫ Deprecated: Features planned for removal in future versions
- 🔴 Removed: Features that have been removed
- 🟣 Security: Security-related fixes or changes
- ⚡ Performance: Performance improvements
- 🟡 Other: Other changes that don't fit the categories above
Each entry includes:
- The type of change
- A description of what changed
- The expected release version and/or date (when available)
- Any action required by extension developers
- 🟢 Added [v5.1 - April 2025]: New filter hook
mainwp_pre_process_site_datathat runs before site data processing - ⚫ Deprecated [v5.2 - June 2025]: The
mainwp_legacy_auth_methodfunction - update extensions to use the new authentication method - 🟠 Changed [v5.1 - April 2025]: Updated
mainwp_user_login()implementation to include additional validation checks
- 🟠 Changed [v5.1 - April 2025]: Site endpoint now requires authentication token in headers - action required: update API calls
- 🟢 Added [v5.1 - April 2025]: New parameter
include_metadatato the GET /sites endpoint
- ⚡ Performance [v5.0.4 - March 20, 2025]: Reduced database queries in the main site loop
- ⚡ Performance [v5.0.4 - March 20, 2025]: Implemented caching for frequently accessed configuration
- 🔴 Removed [v5.1 - April 2025]: Legacy API endpoint
/v1/siteshas been completely removed - action required: migrate to v2 API - 🟠 Changed [v5.1 - April 2025]: Order of execution in the
mainwp_inithook - action required: review extension hook priorities
- 🟢 Changed [v5.4.0.2 - March 2025]: Non-MainWP Changes data table changed.
-
Previous data table name: 'prefix_mainwp_wp_actions' Fields: action_id int(11) NOT NULL auto_increment, wpid int(11) NOT NULL, object_id varchar(20) NOT NULL, context varchar(20) NOT NULL, action varchar(10) NOT NULL, action_user text NOT NULL DEFAULT "", created int(11) NOT NULL DEFAULT 0, meta_data text NOT NULL DEFAULT "", dismiss tinyint(1) NOT NULL DEFAULT 0, summary varchar(255) NOT NULL default ""';
-
Current data table name: prefix_mainwp_wp_logs, and meta table prefix_mainwp_wp_logs_meta
prefix_mainwp_wp_logs table's fields:
log_id bigint(20) NOT NULL auto_increment, site_id bigint(20) unsigned NULL, object_id varchar(20) NOT NULL DEFAULT '', item text NOT NULL, user_id int(11) unsigned NOT NULL DEFAULT '0', action varchar(100) NOT NULL, context varchar(100) NOT NULL, connector varchar(100) NOT NULL, state tinyint(1) unsigned NULL, created int(11) NOT NULL DEFAULT 0, duration float(11,4) NOT NULL DEFAULT '0', dismiss tinyint(1) NOT NULL DEFAULT 0,
prefix_mainwp_wp_logs_meta table's fields:
meta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT, meta_log_id bigint(20) unsigned NOT NULL, meta_key varchar(200) NOT NULL, meta_value mediumtext NOT NULL, KEY meta_log_id (meta_log_id), KEY meta_key (meta_key(191))
- 🟢 Added [v5.4.0.3 - March 2025]: New hook
mainwp_auto_updates_sync_data_before_runto enable/disable sync site before auto updates process run, default is enable - true. Use the hook to disable sync data before run auto updates for some dashboard have problem with sync site before run auto updates.
-
🟢 Added [v5.2 - March 2025]: Added new actions
mainwp_favorites_main_page_topRun before of the extension's main page.mainwp_favorites_main_page_bottomRun at the bottom of the extension's main page.mainwp_favorites_before_items_listRun before favorites items list.mainwp_favorites_after_items_listRun after favorites items list.mainwp_favorites_add_new_topRun at the top of the "Add New" item popup.mainwp_favorites_add_new_bottomRun at the bottom of the "Add New" item popup.mainwp_favorites_add_new_buttonsRun in the buttons sections of add new item popup.mainwp_favorites_process_item_before_outputRun before output of process item. -
🟢 Added [v5.2 - March 2025]: Added new filters
mainwp_favorites_items_listApplies to items list.mainwp_favorites_get_item_resultApplies to get item result.mainwp_favorites_get_item_infoApplies to get item return info.mainwp_favorites_process_item_dataApplies to process item data.mainwp_favorites_save_data_itemApplies when data item saving.
-
🟢 Changed [v5.4.0.2 - March 2025]: The response REST API endpoint: sites/<id_domain>/non-mainwp-changes was changed
New the REST API response data will be prefix_mainwp_wp_logs fields and those addition fields:
url => site url log_site_name ==> site name usermeta => compatible user meta user_meta_json ==> json format of array( 'wp_user_id', 'display_name', 'action_user', 'role', 'user_role_label', 'agent', 'system_user_id',// sometime. 'system_user_name' // sometime. ); meta_name => meta name field data of changes extra_info ==> may some extra info if exit view_log_id,
API data response field changes: 'data' => $data,
- For example API response: { "success": 1, "total": 8, "data": [ { "log_id": "4321", "site_id": "159", "item": "construction-services-company Theme", "user_id": "1", "action": "delete", "context": "installer", "connector": "non-mainwp-changes", "state": "1", "created": "1741266179", "duration": "0.2110", "object_id": "17412661791649", "dismiss": "0", "url": "https://example.com/", "log_site_name": "mainwpshop.huedev.com", "view_log_id": "4321", "meta_name": "construction-services-company", "user_meta_json": "{"wp_user_id":1,"display_name":"adminuser","action_user":"adminuser","role":"administrator","user_role_label":"Administrator","agent":""}", "usermeta": null, "extra_info": null }, { "log_id": "4320", "site_id": "159", "item": "kata Theme", "user_id": "1", "action": "delete", "context": "installer", "connector": "non-mainwp-changes", "state": "1", "created": "1741266157", "duration": "1.6536", "object_id": "17412661579961", "dismiss": "0", "url": "https://example.net/", "log_site_name": "mainwpshop.huedev.com", "view_log_id": "4320", "meta_name": "kata", "user_meta_json": "{"wp_user_id":1,"display_name":"adminuser","action_user":"adminuser","role":"administrator","user_role_label":"Administrator","agent":""}", "usermeta": null, "extra_info": null }, .....
- 🟢 Added [v5.4.0.3 - March 2025]: Added new filters
mainwp_site_changes_table_pages_lengthTo support custom Pages lenght of Site Changes table.
- 🟢 Added [v5.4.0.3 - March 2025]: Added new params for non-mainwp-changes REST API endpoint
- 'page' - Page number
- 'per_page' - Items per page.
- 'source' - Source changes: Available values are 'wpadmin', 'dashboard', 'all', or leave empty (default is 'wpadmin').
- ⚡ Performance [v5.4.0.3 - March 19, 2025]: Make query for non-mainwp-change rest api endpoint faster a bit by reduce a mysql join command.
- 🟢 Added [v5.4.0.3 - March 2025]: Added new hooks: mainwp_general_process_update, mainwp_general_process_delete, mainwp_general_process_get_process_by to support update/delete/get the general schedule process.
- ⚡ Performance [v5.1 - March 22, 2025]: Imporved DB query for checking table existed.
- 🟠 Changed [v5.4.0.3 - March 2025]: function name changed
get_none_mainwp_actions_log()toget_none_mainwp_actions_log_for_rest_api()- in the file: class/class-mainwp-db-site-actions.php
-
🟢 Added [v5.4.0.4 - April 2025]: Added new hooks: mainwp_connect_http_request_headers to support custom request headers.
-
🟢 Added [v5.4.0.4 - April 2025]: Added new hooks: mainwp_uptime_monitor_check_result to support custom uptime monitor results.
- 🟢 Added [v5.4.0.5 - April 2025]: Added new params for non-mainwp-changes REST API endpoint
- 'actions' - To support for
actionlogs query. - 'contexts' - To support for
contextlogs query.
-
🟢 Added [v5.4.0.5 - April 2025]: Excluded the Site Changes count information from REST API endpoints by default, while leaving it as option to optimize the query performance.
-
'total_count' - To support for
total_countlogs query. -
🟢 Added [v5.4.0.5 - April 2025]: Added the
$clientsas the 6th parameter to themainwp_getdbsitesfilter so extensions can get sites info by clients selection.
- 🟢 Added [v5.4.1 - April 2025]: Added hook: mainwp_individual_updates_tabs to support generate custom updates tabs.
- 🟢 Added [v5.1.1 - April 2025]: Added hook: mainwp_lighthouse_next_start_timestamp to support tweaks next audit start time.
- 🟢 Added [v5.4.1 - April 2025]: Added hook: mainwp_log_system_query_params to support tweaks log system query params.
- Added hook: mainwp_module_log_record_inserted to support action after insert custom log data.
- Added hook: mainwp_custom_log_enabled_log_priority to support check if custom log enabled by priority.
- 🟢 Added [v5.4.1 - April 2025]:
- Added hooks: mainwp_manage_events_sites_changes_optimize_view too support an optimize view for sites changes
- Added: param optimize_view for non-mainwp-changes rest api enpoint to support an optimize query sites changes data
- 🟢 Added [v5.4.1 - May 2025]: Added hooks: mainwp_get_cron_jobs_init, mainwp_module_log_enable_insert_log_type for development
- 🟢 Added [v5.0.6 - May 2025]: Added template hooks: mainwp_pro_reports_template_general_misc_top, mainwp_pro_reports_template_general_misc_bottom, mainwp_pro_reports_template_summary_top, mainwp_pro_reports_template_summary_bottom, mainwp_pro_reports_template_general_top, mainwp_pro_reports_template_general_bottom To support custom templates content.
- 🟢 Added [v5.4.0.7 - May 2025]: Added hook: mainwp_child_prepared_reports_data To support custom reports data in child sites.
- 🟠 Changed [v5.4.0.9 - May 2025]: Correct hook name: mainwp_favorites_enable_schedule_items_update to mainwp_uptime_monitors_enable_schedule_notifications
- 🟢 Added [v5.4.1 - March 2025]: Added new parameters to the non-mainwp-changes REST API endpoint
- 'optimize_with_meta' - Supports retrieving optimization meta data when the 'optimize_view' parameter is set to 1.
- 🟢 Added [v5.0.10 - June 2025]: Added template hooks: mainwp_pro_reports_agency_template_summary_bottom to support custom reports template.
- 🟠 Changed [v5.4.1 - June 2025]:
- Removed: Column
object_idof the [prefix_]wp_logs, [prefix_]wp_logs_archive tables. - Added: new columns log_type_id, user_login fields for tables: [prefix_]wp_logs, [prefix_]wp_logs_archive tables.
- Changed: columns changed so the output of REST API endpoint:
non-mainwp-changeswas changed as follow, added new field:log_type_id, removed field:object_id.
- 🟢 Added [v5.4.0.18 - Aug 2025]: Added hook: mainwp_save_cached_icons_file_ext, mainwp_before_save_cached_icons to support before saving cached icons.
- 🟢 Added [v5.4.0.18 - Aug 2025]: Support format 'selected_sites' as string of site ids, separated by comma, for client add new and edit client endpoints: wp-json/mainwp/v2/clients/add wp-json/mainwp/v2/clients/{ID}/edit
- 🟢 Added [v5.4.0.18 - Aug 2025]: 'selected_sites' response info for client add new and edit client endpoints: wp-json/mainwp/v2/clients/add wp-json/mainwp/v2/clients/{ID}/edit
- 🟢 Added [v5.4.0.12 - Aug 2025]: Added hook: mainwp_child_stats_get_plugin_info support hook to plugins info for sync data.
- 🟢 Added [v5.4.0.19 - Aug 2026]: Added hook mainwp_before_save_cached_icons to customize website query parameters.
- 🟢 Added [v5.4.0.19 - Aug 2026]: Added hook mainwp_get_sql_websites, mainwp_get_sql_websites_by_params to customize website query parameters.
- 🟢 Added [v6.0 - Feb 2026]: Added $snapshot_info parameter, hook: mainwp_client_deleted Added hook mainwp_menu_excluded_warm_cache_item to support excluded warm cache menu item. Added hook mainwp_warm_cache_excluded_pages to support excluded warm cache pages. Added hook mainwp_invalidate_warm_cache_pages Fire action to Invalide warm cache pages Added hook mainwp_invalidate_warm_cache_pages Fire action to Invalide warm cache pages Added hook mainwp_widget_updates_actions_top Action fire before Updates actions top content. Added hook mainwp_shutdown Action fire before shutdown. Added hook mainwp_unhooks_remove_unwanted_hooks To support remove unwanted hooks. Added hook mainwp_unhooks_is_enabled To enabled remove unwanted hooks.] Added hook mainwp_unhooks_active_plugins_files To get unhooks active plugins files. Added hook mainwp_unhooks_default_excluded_pages To get default excluded pages. Added hook mainwp_unhooks_list To get remove hooks list. Added hook mainwp_unhooks_get_types To get unhooks types. Added hook mainwp_unhooks_url_params To get unhooks url params. Added hook mainwp_module_log_enable_insert_log_type To enable log types. Added hook mainwp_site_go_to_wpadmin Action fire before go to wpadmin. Added hook mainwp_widget_updates_actions_top Action fire before widget updates actions top. Added hook mainwp_get_avaiable_add_ons To get avaiable add-ons. Added hook mainwp_before_empty_manage_sites_placeholder Action fire before manage sites placeholder. Added hook mainwp_after_empty_manage_sites_placeholder Action fire after manage sites placeholder. Added hook mainwp_after_site_synced Action fire after sites synced. Added hook mainwp_after_save_settings Action fire after save settings. Added hook mainwp_check_site_access Allows to override or extend Team access control. Added hook mainwp_cost_tracker_update_cost Allows for cost tracker update or insert. Added hook mainwp_cost_tracker_deleted Allows for cost tracker delete cost. Added hook mainwp_insert_update_client Action fire after insert/update client.
- 🟢 Added [v6.0 - Feb 2026]:
Added hook mainwp_child_actions_data_clean Action to support clean actions logs on the child site.
.