|
|
@@ -1,38 +1,37 @@
|
|
|
<?php
|
|
|
-// AJAX-based WordPress import test to bypass form submission issues
|
|
|
-ob_start(); // Capture all output
|
|
|
-
|
|
|
+// Simple AJAX endpoint without output buffering
|
|
|
error_reporting(E_ALL);
|
|
|
-ini_set('display_errors', 0); // Don't display errors, capture them instead
|
|
|
+ini_set('display_errors', 0);
|
|
|
ini_set('max_execution_time', 60);
|
|
|
ini_set('memory_limit', '512M');
|
|
|
|
|
|
+// Set header first
|
|
|
+header('Content-Type: application/json');
|
|
|
+
|
|
|
+// Simple response function
|
|
|
+function sendResponse($success, $message, $data = []) {
|
|
|
+ $response = array_merge([
|
|
|
+ 'success' => $success,
|
|
|
+ 'message' => $message
|
|
|
+ ], $data);
|
|
|
+ echo json_encode($response);
|
|
|
+ exit;
|
|
|
+}
|
|
|
+
|
|
|
try {
|
|
|
require_once '../includes/config.php';
|
|
|
require_once '../includes/database.php';
|
|
|
require_once '../includes/wordpress_import.php';
|
|
|
} catch (Exception $e) {
|
|
|
- ob_clean();
|
|
|
- header('Content-Type: application/json');
|
|
|
- echo json_encode([
|
|
|
- 'success' => false,
|
|
|
- 'message' => 'Include error: ' . $e->getMessage(),
|
|
|
- 'step' => 'includes'
|
|
|
- ]);
|
|
|
- exit;
|
|
|
+ sendResponse(false, 'Include error: ' . $e->getMessage(), ['step' => 'includes']);
|
|
|
}
|
|
|
|
|
|
-header('Content-Type: application/json');
|
|
|
-
|
|
|
-$response = ['success' => false, 'message' => '', 'step' => ''];
|
|
|
+$action = $_GET['action'] ?? '';
|
|
|
+$step = $action;
|
|
|
|
|
|
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'] ?? ''),
|
|
|
@@ -40,21 +39,20 @@ try {
|
|
|
'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'];
|
|
|
+ sendResponse(true, 'Connection successful', [
|
|
|
+ 'step' => $step,
|
|
|
+ 'stats' => $connectionTest['stats']
|
|
|
+ ]);
|
|
|
} else {
|
|
|
- $response['message'] = $connectionTest['error'];
|
|
|
+ sendResponse(false, $connectionTest['error'], ['step' => $step]);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case 'import_categories':
|
|
|
- // Import categories only
|
|
|
$wpConfig = [
|
|
|
'host' => trim($_GET['wp_host'] ?? ''),
|
|
|
'database' => trim($_GET['wp_database'] ?? ''),
|
|
|
@@ -62,17 +60,16 @@ try {
|
|
|
'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;
|
|
|
+ sendResponse(true, 'Categories imported', [
|
|
|
+ 'step' => $step,
|
|
|
+ 'result' => $result
|
|
|
+ ]);
|
|
|
break;
|
|
|
|
|
|
case 'import_users':
|
|
|
- // Import users only
|
|
|
$wpConfig = [
|
|
|
'host' => trim($_GET['wp_host'] ?? ''),
|
|
|
'database' => trim($_GET['wp_database'] ?? ''),
|
|
|
@@ -80,17 +77,16 @@ try {
|
|
|
'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;
|
|
|
+ sendResponse(true, 'Users imported', [
|
|
|
+ 'step' => $step,
|
|
|
+ 'result' => $result
|
|
|
+ ]);
|
|
|
break;
|
|
|
|
|
|
case 'import_posts':
|
|
|
- // Import posts only (small batch)
|
|
|
$wpConfig = [
|
|
|
'host' => trim($_GET['wp_host'] ?? ''),
|
|
|
'database' => trim($_GET['wp_database'] ?? ''),
|
|
|
@@ -98,29 +94,27 @@ try {
|
|
|
'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;
|
|
|
+ sendResponse(true, 'Posts imported', [
|
|
|
+ 'step' => $step,
|
|
|
+ 'result' => $result
|
|
|
+ ]);
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
- $response['message'] = 'Unknown action';
|
|
|
+ sendResponse(false, 'Unknown action', ['step' => $step]);
|
|
|
}
|
|
|
|
|
|
} catch (Exception $e) {
|
|
|
- $response['message'] = 'Error: ' . $e->getMessage();
|
|
|
- $response['error'] = [
|
|
|
- 'file' => $e->getFile(),
|
|
|
- 'line' => $e->getLine(),
|
|
|
- 'trace' => $e->getTraceAsString()
|
|
|
- ];
|
|
|
+ sendResponse(false, 'Error: ' . $e->getMessage(), [
|
|
|
+ 'step' => $step,
|
|
|
+ 'error' => [
|
|
|
+ 'file' => $e->getFile(),
|
|
|
+ 'line' => $e->getLine()
|
|
|
+ ]
|
|
|
+ ]);
|
|
|
}
|
|
|
-
|
|
|
-// Clean any output and send JSON
|
|
|
-ob_clean();
|
|
|
-echo json_encode($response);
|
|
|
+?>
|
|
|
?>
|