nouveau nom d'option. */ const LEGACY_MAP = array( 'hwc_token' => 'hare_token', 'hwc_code' => 'hare_code', 'hwc_layout' => 'hare_layout', 'hwc_items_count' => 'hare_items_count', 'hwc_injections' => 'hare_injections', 'hwc_audit_retention_days' => 'hare_audit_retention_days', ); /** * Copie les options hwc_* vers hare_* (sans écraser une valeur nouvelle déjà posée), * supprime l'ancienne clé, puis se marque comme faite. * * @return int Nombre d'options réellement migrées. */ public static function maybe_run() { if (get_option(self::FLAG, false)) { return 0; } $migrated = 0; foreach (self::LEGACY_MAP as $legacy => $current) { $value = get_option($legacy, null); if ($value === null) { continue; } // Ne jamais écraser une valeur existante du plugin actuel. if (get_option($current, null) === null) { update_option($current, $value); $migrated++; } delete_option($legacy); } update_option(self::FLAG, 1); return $migrated; } /** * Utilisé par les tests : repart d'un état « site à migrer ». */ public static function reset_flag() { delete_option(self::FLAG); } }