# Troubleshooting Guide

## Quick Diagnosis

### Step 1: Run Installation Checker
Upload `check-installation.php` to your server and visit:
```
https://yoursite.com/wp-content/plugins/woonoow/check-installation.php
```

This will show you exactly what's wrong.

---

## Common Issues

### Issue 1: Blank Page in WP-Admin

**Symptoms:**
- Blank white page when visiting `/wp-admin/admin.php?page=woonoow`
- Or shows "Please Configure Marketing Setup first"
- No SPA loads

**Diagnosis:**
1. Open browser console (F12)
2. Check Network tab
3. Look for `app.js` and `app.css`

**Possible Causes & Solutions:**

#### A. Files Not Found (404)
```
❌ admin-spa/dist/app.js → 404 Not Found
❌ admin-spa/dist/app.css → 404 Not Found
```

**Solution:**
```bash
# The dist files are missing!
# Re-extract the zip file:
cd /path/to/wp-content/plugins
rm -rf woonoow
unzip woonoow.zip

# Verify files exist:
ls -la woonoow/admin-spa/dist/
# Should show: app.js (2.4MB) and app.css (70KB)
```

#### B. Wrong Extraction Path
If you extracted into `plugins/woonoow/woonoow/`, the paths will be wrong.

**Solution:**
```bash
# Correct structure:
wp-content/plugins/woonoow/woonoow.php ✓
wp-content/plugins/woonoow/admin-spa/dist/app.js ✓

# Wrong structure:
wp-content/plugins/woonoow/woonoow/woonoow.php ✗
wp-content/plugins/woonoow/woonoow/admin-spa/dist/app.js ✗

# Fix:
cd /path/to/wp-content/plugins
rm -rf woonoow
unzip woonoow.zip
# This creates: plugins/woonoow/ (correct!)
```

#### C. Dev Mode Enabled
```
❌ Trying to load from localhost:5173
```

**Solution:**
Edit `wp-config.php` and remove or set to false:
```php
// Remove this line:
define('WOONOOW_ADMIN_DEV', true);

// Or set to false:
define('WOONOOW_ADMIN_DEV', false);
```

Then clear caches:
```bash
php -r "opcache_reset();"
wp cache flush
```

---

### Issue 2: API 500 Errors

**Symptoms:**
- All API endpoints return 500
- Console shows: "Internal Server Error"
- Error log: `Class "WooNooWAPIPaymentsController" not found`

**Cause:**
Namespace case mismatch (old code)

**Solution:**
```bash
# Check if you have the fix:
grep "use WooNooW" includes/Api/Routes.php

# Should show (lowercase 'i'):
# use WooNooW\Api\PaymentsController;

# If it shows (uppercase 'I'):
# use WooNooW\API\PaymentsController;
# Then you need to update!

# Update:
git pull origin main
# Or re-upload the latest zip

# Clear caches:
php -r "opcache_reset();"
wp cache flush
```

---

### Issue 3: WordPress Media Not Loading (Standalone)

**Symptoms:**
- Error: "WordPress Media library is not loaded"
- "Choose from Media Library" button doesn't work
- Only in standalone mode (`/admin`)

**Cause:**
Missing wp.media scripts

**Solution:**
Already fixed in latest code. Update:
```bash
git pull origin main
# Or re-upload the latest zip

php -r "opcache_reset();"
```

---

### Issue 4: Changes Not Reflecting

**Symptoms:**
- Uploaded new code but still seeing old errors
- Fixed files but issues persist

**Cause:**
Multiple cache layers

**Solution:**
```bash
# 1. Clear PHP OPcache (MOST IMPORTANT!)
php -r "opcache_reset();"

# Or visit:
# https://yoursite.com/wp-content/plugins/woonoow/check-installation.php?action=clear_opcache

# 2. Clear WordPress object cache
wp cache flush

# 3. Restart PHP-FPM (if above doesn't work)
sudo systemctl restart php8.1-fpm
# or
sudo systemctl restart php-fpm

# 4. Clear browser cache
# Hard refresh: Ctrl+Shift+R (Windows/Linux)
# Hard refresh: Cmd+Shift+R (Mac)
```

---

### Issue 5: File Permissions

**Symptoms:**
- 403 Forbidden errors
- Can't access files

**Solution:**
```bash
cd /path/to/wp-content/plugins/woonoow

# Set correct permissions:
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;

# Verify:
ls -la admin-spa/dist/
# Should show: -rw-r--r-- (644) for files
```

---

## Verification Steps

After fixing, verify everything works:

### 1. Check Files
```bash
cd /path/to/wp-content/plugins/woonoow

# These files MUST exist:
ls -lh woonoow.php                    # Main plugin file
ls -lh includes/Admin/Assets.php      # Assets handler
ls -lh includes/Api/Routes.php        # API routes
ls -lh admin-spa/dist/app.js          # SPA JS (2.4MB)
ls -lh admin-spa/dist/app.css         # SPA CSS (70KB)
```

### 2. Test API
```bash
curl -I https://yoursite.com/wp-json/woonoow/v1/store/settings

# Should return:
# HTTP/2 200 OK
```

### 3. Test Assets
```bash
curl -I https://yoursite.com/wp-content/plugins/woonoow/admin-spa/dist/app.js

# Should return:
# HTTP/2 200 OK
# Content-Length: 2489867
```

### 4. Test WP-Admin
Visit: `https://yoursite.com/wp-admin/admin.php?page=woonoow`

**Should see:**
- ✓ WooNooW dashboard loads
- ✓ No console errors
- ✓ Navigation works

**Should NOT see:**
- ✗ Blank page
- ✗ "Please Configure Marketing Setup"
- ✗ Errors about localhost:5173

### 5. Test Standalone
Visit: `https://yoursite.com/admin`

**Should see:**
- ✓ Standalone admin loads
- ✓ Login page (if not logged in)
- ✓ Dashboard (if logged in)

---

## Emergency Rollback

If everything breaks:

```bash
# 1. Deactivate plugin
wp plugin deactivate woonoow

# 2. Remove plugin
rm -rf /path/to/wp-content/plugins/woonoow

# 3. Re-upload fresh zip
unzip woonoow.zip -d /path/to/wp-content/plugins/

# 4. Reactivate
wp plugin activate woonoow

# 5. Clear all caches
php -r "opcache_reset();"
wp cache flush
```

---

## Getting Help

If issues persist, gather this info:

1. **Run installation checker:**
   ```
   https://yoursite.com/wp-content/plugins/woonoow/check-installation.php
   ```
   Take screenshot of results

2. **Check error logs:**
   ```bash
   tail -50 /path/to/wp-content/debug.log
   tail -50 /var/log/php-fpm/error.log
   ```

3. **Browser console:**
   - Open DevTools (F12)
   - Go to Console tab
   - Take screenshot of errors

4. **Network tab:**
   - Open DevTools (F12)
   - Go to Network tab
   - Reload page
   - Take screenshot showing failed requests

5. **File structure:**
   ```bash
   ls -la /path/to/wp-content/plugins/woonoow/
   ls -la /path/to/wp-content/plugins/woonoow/admin-spa/dist/
   ```

Send all this info when requesting help.

---

## Prevention

To avoid issues in the future:

1. **Always clear caches after updates:**
   ```bash
   php -r "opcache_reset();"
   wp cache flush
   ```

2. **Verify files after extraction:**
   ```bash
   ls -lh admin-spa/dist/app.js
   # Should be ~2.4MB
   ```

3. **Use installation checker:**
   Run it after every deployment

4. **Keep backups:**
   Before updating, backup the working version

5. **Test in staging first:**
   Don't deploy directly to production
