// Dodaj AJAX handlers add_action('wp_ajax_process_csv_import', 'ajax_process_csv_import'); add_action('wp_ajax_get_wojewodztwo_count', 'ajax_get_wojewodztwo_count'); add_action('wp_ajax_test_csv_analysis', 'ajax_test_csv_analysis'); // AJAX handler do testowania analizy CSV function ajax_test_csv_analysis() { // Wyczyść bufor wyjściowy if (ob_get_level()) { ob_end_clean(); } // Sprawdź nonce if (!wp_verify_nonce($_POST['nonce'], 'test_csv_nonce')) { wp_send_json_error(array('message' => 'Nieautoryzowany dostęp')); } // Sprawdź uprawnienia if (!current_user_can('manage_options')) { wp_send_json_error(array('message' => 'Brak uprawnień')); } // Sprawdź czy plik został przesłany if (empty($_FILES['test_csv_file']['tmp_name']) || !file_exists($_FILES['test_csv_file']['tmp_name'])) { wp_send_json_error(array('message' => 'Nie wybrano pliku CSV')); } $file_path = $_FILES['test_csv_file']['tmp_name']; $analysis = ""; try { // Analiza podstawowa $file_size = filesize($file_path); $analysis .= "=== ANALIZA PLIKU CSV ===\n"; $analysis .= "Rozmiar pliku: " . round($file_size / 1024, 2) . " KB\n"; $analysis .= "Ścieżka: $file_path\n\n"; // Wykryj kodowanie $content = file_get_contents($file_path); $encoding = mb_detect_encoding($content, ['UTF-8', 'ISO-8859-2', 'Windows-1250'], true); $analysis .= "Wykryte kodowanie: " . ($encoding ?: 'nieznane') . "\n\n"; // Pokaż pierwsze 500 znaków $analysis .= "=== PIERWSZE 500 ZNAKÓW ===\n"; $analysis .= substr($content, 0, 500) . "\n\n"; // Analiza struktury CSV $file = fopen($file_path, 'r'); if (!$file) { throw new Exception('Nie można otworzyć pliku'); } // Testuj różne separatory $separators = [',', ';', '\t']; $best_separator = ','; $max_columns = 0; foreach ($separators as $sep) { $sep_char = ($sep === '\t') ? "\t" : $sep; rewind($file); $test_line = fgetcsv($file, 0, $sep_char); if ($test_line && count($test_line) > $max_columns) { $max_columns = count($test_line); $best_separator = $sep; } } $analysis .= "=== ANALIZA SEPARATORÓW ===\n"; $analysis .= "Najlepszy separator: '$best_separator' ($max_columns kolumn)\n\n";