1
<?php
2
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) exit;
3
if ( ! get_option( 'yougitai_ss_delete_data_on_uninstall', false ) ) return;
4
5
global $wpdb;
6
foreach ( [ 'oauth_tokens', 'oauth_codes', 'oauth_clients', 'connections', 'audit_log', 'findings', 'rules', 'files', 'snapshots', 'repositories' ] as $suffix ) {
7
$table = $wpdb->prefix . 'yougitai_ss_' . $suffix;
8
$wpdb->query( "DROP TABLE IF EXISTS `{$table}`" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange,WordPress.DB.PreparedSQL.InterpolatedNotPrepared
9
}
10
foreach ( [
11
'yougitai_ss_version','yougitai_ss_showcase_slug','yougitai_ss_external_ai_enabled','yougitai_ss_ai_provider',
12
'yougitai_ss_openai_model','yougitai_ss_openai_api_key','yougitai_ss_anthropic_model','yougitai_ss_anthropic_api_key',
13
'yougitai_ss_gemini_model','yougitai_ss_gemini_api_key','yougitai_ss_github_token','yougitai_ss_github_auth_method',
14
'yougitai_ss_github_oauth_client_id','yougitai_ss_github_oauth_client_secret','yougitai_ss_delete_data_on_uninstall',
15
'yougitai_ss_index_title_de','yougitai_ss_index_description_de','yougitai_ss_index_title_en','yougitai_ss_index_description_en',
16
'yougitai_ss_color_surface','yougitai_ss_color_panel','yougitai_ss_color_code','yougitai_ss_color_border','yougitai_ss_color_text','yougitai_ss_color_muted',
17
'yougitai_ss_color_accent','yougitai_ss_color_accent_hover','yougitai_ss_color_nav_hover','yougitai_ss_color_nav_underline','yougitai_ss_color_progress','yougitai_ss_color_progress_track','yougitai_ss_color_selected',
18
'yougitai_ss_color_warning_bg','yougitai_ss_color_warning_border','yougitai_ss_color_warning_text','yougitai_ss_color_blackout','yougitai_ss_color_blackout_edge',
19
'yougitai_ss_rewrite_version','yougitai_ss_rewrite_flush_needed'
20
] as $option ) delete_option( $option );
21
wp_clear_scheduled_hook( 'yougitai_ss_sync_repository' );
22
wp_clear_scheduled_hook( 'yougitai_ss_daily_cleanup' );
23