array_merge( array( 'ai_o_optimiser_crawler_log', 'ai_o_optimiser_visibility_daily', 'ai_o_optimiser_gsc_rows', 'ai_o_optimiser_opportunity_workflow', 'ai_o_optimiser_schema_activity', 'ai_o_optimiser_metadata_queue', 'ai_o_optimiser_metadata_search_rows', 'ai_o_optimiser_metadata_opportunities', ), $ai_o_optimiser_preserved_tables ), 'options' => array_merge( $ai_o_optimiser_core_options, $ai_o_optimiser_exclusive_options ), 'cron_hooks' => array_merge( $ai_o_optimiser_core_cron_hooks, $ai_o_optimiser_exclusive_cron_hooks ), 'post_meta' => $ai_o_optimiser_exclusive_post_meta, 'material_options' => array( 'ai_o_optimiser_schema_review_cache', 'ai_o_optimiser_schema_review_history', 'ai_o_optimiser_schema_review_baseline', 'ai_o_optimiser_schema_scan_queue', 'ai_o_optimiser_schema_diagnostics', 'ai_o_optimiser_local_business_identity', 'ai_o_optimiser_local_discovery_report', 'ai_o_optimiser_local_gbp_identity', 'ai_o_optimiser_local_citation_nap_sources', 'ai_o_optimiser_local_citation_nap_job', 'ai_o_optimiser_local_profile_discovery', 'ai_o_optimiser_schema_ai_semantic_assessment', 'ai_o_optimiser_schema_semantic_mappings', ), /* * The Pro-exclusive subsets. tools/build-pro-addon.php writes exactly * these into the add-on's own registry; core's uninstall.php subtracts * them from the unions above while the add-on is installed, because then * the add-on owns their removal. */ 'pro_options' => $ai_o_optimiser_exclusive_options, 'pro_cron_hooks' => $ai_o_optimiser_exclusive_cron_hooks, 'pro_post_meta' => $ai_o_optimiser_exclusive_post_meta, // Transient NAME prefixes (the handler expands them to _transient_ and // _transient_timeout_ rows) and plain option-name prefixes, all written // only by Pro modules. ai_o_optimiser_runtime_lock_ is shared and stays // with core's generic sweep. 'pro_transient_prefixes' => array( 'ai_o_optimiser_metadata_', 'ai_o_optimiser_schema_', 'ai_o_optimiser_gsc_', 'ai_o_optimiser_local_' ), 'pro_option_prefixes' => array( 'ai_o_optimiser_schema_scan_rows_' ), );