is_authenticated()) { echo "✅ API is authenticated\n"; } else { echo "❌ API is not authenticated. Credentials missing.\n"; exit; } echo "\n"; // Test 3: Get site structure echo "Test 3: Gathering Site Structure...\n"; $structure = igny8_get_site_structure(); echo " Post Types Found: " . count($structure['post_types']) . "\n"; foreach ($structure['post_types'] as $type => $data) { echo " - $type: {$data['label']} ({$data['count']} items)\n"; } echo "\n Taxonomies Found: " . count($structure['taxonomies']) . "\n"; foreach ($structure['taxonomies'] as $tax => $data) { echo " - $tax: {$data['label']} ({$data['count']} items)\n"; } if (empty($structure['post_types']) && empty($structure['taxonomies'])) { echo "❌ No content found to sync\n"; exit; } echo "✅ Site structure gathered successfully\n"; echo "\n"; // Test 4: Query for integration echo "Test 4: Querying for Integration...\n"; $query_response = $api->get('/v1/integration/integrations/?site=' . $site_id . '&platform=wordpress'); echo " API Response Status: " . ($query_response['success'] ? 'Success' : 'Failed') . "\n"; echo " HTTP Status: " . (isset($query_response['http_status']) ? $query_response['http_status'] : 'N/A') . "\n"; // Extract integration $integration = null; if (isset($query_response['data'])) { $data = $query_response['data']; if (isset($data['results']) && !empty($data['results'])) { $integration = $data['results'][0]; echo " Response Format: Paginated (DRF)\n"; } elseif (is_array($data) && isset($data[0])) { $integration = $data[0]; echo " Response Format: Direct Array\n"; } elseif (is_array($data) && isset($data['id'])) { $integration = $data; echo " Response Format: Single Object\n"; } } if (!$integration || empty($integration['id'])) { echo "❌ No integration found\n"; if (isset($query_response['error'])) { echo " Error: " . $query_response['error'] . "\n"; } exit; } echo "✅ Integration found: ID {$integration['id']}\n"; echo "\n"; // Test 5: Sync structure to backend echo "Test 5: Syncing Structure to Backend...\n"; $payload = array( 'post_types' => $structure['post_types'], 'taxonomies' => $structure['taxonomies'], 'timestamp' => $structure['timestamp'], 'plugin_connection_enabled' => (bool) igny8_is_connection_enabled(), 'two_way_sync_enabled' => (bool) get_option('igny8_enable_two_way_sync', 1), ); $endpoint = '/v1/integration/integrations/' . $integration['id'] . '/update-structure/'; echo " Endpoint: $endpoint\n"; echo " Payload Size: " . strlen(json_encode($payload)) . " bytes\n"; $sync_response = $api->post($endpoint, $payload); echo " API Response Status: " . ($sync_response['success'] ? 'Success' : 'Failed') . "\n"; echo " HTTP Status: " . (isset($sync_response['http_status']) ? $sync_response['http_status'] : 'N/A') . "\n"; if ($sync_response['success']) { echo "✅ Structure synced successfully\n"; if (isset($sync_response['data']['message'])) { echo " Message: " . $sync_response['data']['message'] . "\n"; } if (isset($sync_response['data']['post_types_count'])) { echo " Post Types Synced: " . $sync_response['data']['post_types_count'] . "\n"; } if (isset($sync_response['data']['taxonomies_count'])) { echo " Taxonomies Synced: " . $sync_response['data']['taxonomies_count'] . "\n"; } } else { echo "❌ Structure sync failed\n"; if (isset($sync_response['error'])) { echo " Error: " . $sync_response['error'] . "\n"; } if (isset($sync_response['raw_error'])) { echo " Details: " . json_encode($sync_response['raw_error']) . "\n"; } exit; } echo "\n"; // Test 6: Verify backend stored the data echo "Test 6: Verifying Backend Stored Data...\n"; $verify_response = $api->get('/v1/integration/integrations/' . $integration['id'] . '/content-types/'); if ($verify_response['success'] && isset($verify_response['data'])) { $data = $verify_response['data']; echo " Post Types in Backend: " . count($data['post_types'] ?? []) . "\n"; echo " Taxonomies in Backend: " . count($data['taxonomies'] ?? []) . "\n"; echo " Last Structure Fetch: " . ($data['last_structure_fetch'] ?? 'Unknown') . "\n"; echo "✅ Backend data verified\n"; } else { echo "⚠️ Could not verify backend data\n"; if (isset($verify_response['error'])) { echo " Error: " . $verify_response['error'] . "\n"; } } echo "\n"; echo "=== Test Complete ===\n"; echo "✅ All tests passed! Site structure sync is working.\n\n";