<?php
/**
 * Maintenance GENIUS - Uninstall
 *
 * Par défaut, les données utilisateur (réglages, presets, stats) sont CONSERVÉES :
 * un client peut désinstaller/réinstaller sans rien perdre.
 * La suppression complète n'a lieu QUE si l'option « purge_data_on_uninstall »
 * a été explicitement activée dans Avancé > Données & désinstallation.
 *
 * Les artefacts système (mu-plugin, drop-in cache, règles htaccess) sont
 * TOUJOURS nettoyés : les laisser pourrait casser le site après désinstallation.
 *
 * Version 2.9.126
 */

// Si ce fichier n'est pas appelé par WordPress, on arrête.
if (!defined('WP_UNINSTALL_PLUGIN')) {
    exit;
}

// === SUPPRESSION DES DONNÉES : opt-in uniquement ===
$mg_settings = get_option('mg_settings', array());
$mg_purge = is_array($mg_settings) && !empty($mg_settings['purge_data_on_uninstall']);

if ($mg_purge) {
    global $wpdb;
    // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Uninstall cleanup
    $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE 'mg_%'");
    // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Uninstall cleanup
    $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_mg_%' OR option_name LIKE '_transient_timeout_mg_%'");
}

// === NETTOYAGE MU-PLUGIN (toujours) ===
$mu_file = WPMU_PLUGIN_DIR . '/mg-cache-guard.php';
if (file_exists($mu_file)) {
    wp_delete_file( $mu_file );
}

// === NETTOYAGE DROP-IN (toujours) ===
global $wp_filesystem;
if ( ! function_exists( 'WP_Filesystem' ) ) {
    require_once ABSPATH . 'wp-admin/includes/file.php';
}
WP_Filesystem();

$flag_file = WP_CONTENT_DIR . '/mg-cache-bypass.php';
if ( $wp_filesystem && $wp_filesystem->exists( $flag_file ) ) {
    wp_delete_file( $flag_file );
}
$dropin_file = WP_CONTENT_DIR . '/advanced-cache.php';
if ( $wp_filesystem && $wp_filesystem->exists( $dropin_file ) ) {
    $content = $wp_filesystem->get_contents( $dropin_file );
    if ( strpos( $content, 'Maintenance GENIUS - Advanced Cache Drop-in' ) !== false ) {
        wp_delete_file( $dropin_file );
    } elseif ( strpos( $content, 'Maintenance GENIUS Cache Bypass' ) !== false ) {
        $content = preg_replace(
            '/\<\?php\s*\n\/\/ Maintenance GENIUS Cache Bypass.*?define\(\'DONOTCACHEPAGE\'.*?\?\>\s*\n/s',
            '',
            $content
        );
        $wp_filesystem->put_contents( $dropin_file, $content, FS_CHMOD_FILE );
    }
}

// === NETTOYAGE HTACCESS LEGACY (toujours) ===
$htaccess = ABSPATH . '.htaccess';
if ( $wp_filesystem && $wp_filesystem->exists( $htaccess ) && $wp_filesystem->is_writable( $htaccess ) ) {
    $content = $wp_filesystem->get_contents( $htaccess );
    if ( strpos( $content, '# BEGIN Maintenance GENIUS' ) !== false ) {
        $content = preg_replace( '/# BEGIN Maintenance GENIUS.*?# END Maintenance GENIUS\s*/s', '', $content );
        $wp_filesystem->put_contents( $htaccess, $content, FS_CHMOD_FILE );
    }
}

// Les cookies côté serveur ne peuvent pas être nettoyés ici : ils expireront naturellement.
