Files
igny8/igny8-wp-plugin/DEBUG-SETUP.md
alorig 3580acf61e 1
2025-11-22 08:07:56 +05:00

122 lines
3.8 KiB
Markdown

# IGNY8 WordPress Bridge - Debug Setup Guide
## Quick Fix Summary
### Issue 1: API Key Not Showing After Reload ✅ FIXED
- **Problem**: API key field was empty after reloading the page
- **Fix**: Updated the form handler to detect placeholder asterisks and preserve the stored API key
- **Result**: API key now properly shows as `********` when stored
### Issue 2: Test Connection Failing with 405 ✅ IMPROVED
- **Problem**: Test connection returns HTTP 405 (Method Not Allowed)
- **Fix**: Added comprehensive debugging and multiple endpoint fallback
- **Result**: Now tests 3 different endpoints and shows detailed error messages
## Enable Debug Mode
To see detailed API request/response logs, add these lines to your `wp-config.php` file (before `/* That's all, stop editing! */`):
```php
// Enable WordPress debugging
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
// Enable IGNY8-specific debugging
define('IGNY8_DEBUG', true);
```
## View Debug Logs
After enabling debug mode:
1. **Test the connection** in WordPress admin (Settings → IGNY8 API → Test Connection)
2. **Check the debug log** at: `wp-content/debug.log`
3. Look for lines starting with `IGNY8 DEBUG GET:` and `IGNY8 DEBUG RESPONSE:`
## What the Logs Will Show
```
IGNY8 DEBUG GET: https://api.igny8.com/api/v1/system/ping/ | Headers: {...}
IGNY8 DEBUG RESPONSE: Status=405 | Body={"detail":"Method not allowed"}
```
## Common 405 Error Causes
1. **Endpoint doesn't support GET method** - The SaaS API endpoint may only accept POST
2. **API key lacks permissions** - The API key doesn't have access to that endpoint
3. **Endpoint doesn't exist** - The URL path is incorrect or not implemented yet
4. **Firewall/WAF blocking** - Server-side security blocking the request
## Test Connection Endpoints (Tried in Order)
The plugin now tests these endpoints automatically:
1. `/system/ping/` - Basic health check
2. `/planner/keywords/?page_size=1` - Keywords list (limited to 1 result)
3. `/system/sites/` - Sites list
If **all three fail**, the error message will show the last failure with HTTP status code.
## Manual Testing with cURL
Test the API from your server's command line:
```bash
# Replace YOUR_API_KEY with your actual API key
curl -v -H "Authorization: Bearer YOUR_API_KEY" "https://api.igny8.com/api/v1/system/ping/"
```
Expected success response (HTTP 200):
```json
{
"success": true,
"data": {
"status": "ok"
}
}
```
## Next Steps for SaaS Team
Based on the debug logs, the SaaS team should:
1. **Check which HTTP methods are allowed** for the tested endpoints
2. **Verify API key permissions** - Ensure the key has access to at least one endpoint
3. **Implement `/system/ping/` endpoint** if it doesn't exist (should return 200 OK)
4. **Check server logs** for incoming requests from the WordPress host
5. **Review WAF/firewall rules** that might be blocking requests
## Plugin Changes Made
### 1. `includes/class-igny8-api.php`
- Added debug logging for all GET requests
- Added HTTP status code to all responses
- Improved error messages with status codes
### 2. `admin/class-admin.php`
- Updated `test_connection()` to try multiple endpoints
- Returns detailed error information including HTTP status
- Detects API key placeholder to prevent overwriting stored key
### 3. `admin/assets/js/admin.js`
- Shows HTTP status code in error messages
- Logs full error details to browser console
### 4. `admin/settings.php`
- Shows debug mode indicator when WP_DEBUG is enabled
- Fixed API key field to show asterisks when key is stored
## Disable Debug Mode
After troubleshooting, remove or comment out these lines from `wp-config.php`:
```php
// define('WP_DEBUG', true);
// define('WP_DEBUG_LOG', true);
// define('IGNY8_DEBUG', true);
```
Keep `WP_DEBUG_DISPLAY` as `false` to prevent errors showing on the live site.