false, 'message' => 'Include error: ' . $e->getMessage(), 'step' => 'includes' ]); exit; } header('Content-Type: application/json'); $response = ['success' => false, 'message' => '', 'step' => '']; try { $action = $_GET['action'] ?? ''; $response['step'] = $action; switch ($action) { case 'test_connection': // Test connection only $wpConfig = [ 'host' => trim($_GET['wp_host'] ?? ''), 'database' => trim($_GET['wp_database'] ?? ''), 'username' => trim($_GET['wp_username'] ?? ''), 'password' => $_GET['wp_password'] ?? '' ]; $response['message'] = 'Testing connection...'; $importer = new WordPressImport($wpConfig); $connectionTest = $importer->testConnection(); if ($connectionTest['success']) { $response['success'] = true; $response['message'] = 'Connection successful'; $response['stats'] = $connectionTest['stats']; } else { $response['message'] = $connectionTest['error']; } break; case 'import_categories': // Import categories only $wpConfig = [ 'host' => trim($_GET['wp_host'] ?? ''), 'database' => trim($_GET['wp_database'] ?? ''), 'username' => trim($_GET['wp_username'] ?? ''), 'password' => $_GET['wp_password'] ?? '' ]; $response['message'] = 'Importing categories...'; $importer = new WordPressImport($wpConfig); $result = $importer->importCategories(); $response['success'] = true; $response['message'] = 'Categories imported'; $response['result'] = $result; break; case 'import_users': // Import users only $wpConfig = [ 'host' => trim($_GET['wp_host'] ?? ''), 'database' => trim($_GET['wp_database'] ?? ''), 'username' => trim($_GET['wp_username'] ?? ''), 'password' => $_GET['wp_password'] ?? '' ]; $response['message'] = 'Importing users...'; $importer = new WordPressImport($wpConfig); $result = $importer->importUsers(); $response['success'] = true; $response['message'] = 'Users imported'; $response['result'] = $result; break; case 'import_posts': // Import posts only (small batch) $wpConfig = [ 'host' => trim($_GET['wp_host'] ?? ''), 'database' => trim($_GET['wp_database'] ?? ''), 'username' => trim($_GET['wp_username'] ?? ''), 'password' => $_GET['wp_password'] ?? '' ]; $response['message'] = 'Importing posts (batch)...'; $importer = new WordPressImport($wpConfig); $result = $importer->importPosts(); $response['success'] = true; $response['message'] = 'Posts imported'; $response['result'] = $result; break; default: $response['message'] = 'Unknown action'; } } catch (Exception $e) { $response['message'] = 'Error: ' . $e->getMessage(); $response['error'] = [ 'file' => $e->getFile(), 'line' => $e->getLine(), 'trace' => $e->getTraceAsString() ]; } // Clean any output and send JSON ob_clean(); echo json_encode($response); ?>