3.1 KiB
3.1 KiB
Customer Settings 404 Error - Troubleshooting Guide
Issue
The /store/customer-settings endpoint returns 404 error.
Verification Steps
1. Check if routes are registered
The routes ARE correctly registered in includes/Api/StoreController.php:
- Line 90-97: GET
/woonoow/v1/store/customer-settings - Line 99-106: POST
/woonoow/v1/store/customer-settings
2. Check if controller is initialized
The controller IS initialized in includes/Api/Routes.php:
- Line 56-57:
new StoreController()andregister_routes()
3. Check if class exists
The CustomerSettingsProvider class EXISTS in:
includes/Compat/CustomerSettingsProvider.php- Namespace:
WooNooW\Compat
Possible Causes & Solutions
Solution 1: Flush WordPress Permalinks
WordPress may need to rebuild its rewrite rules.
Via WP-Admin:
- Go to Settings → Permalinks
- Click "Save Changes" (no need to change anything)
Via WP-CLI:
wp rewrite flush
Solution 2: Check Debug Logs
Debug logging has been added to track the issue:
Enable WordPress Debug:
Add to wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Check logs:
tail -f wp-content/debug.log
Look for:
WooNooW: get_customer_settings calledWooNooW: Customer settings retrieved: ...WooNooW: get_customer_settings exception: ...
Solution 3: Test Endpoint Directly
Open browser console and run:
fetch(window.WNW_CONFIG.restUrl + '/store/customer-settings', {
headers: {
'X-WP-Nonce': window.wpApiSettings.nonce
}
})
.then(r => r.json())
.then(console.log)
.catch(console.error);
Solution 4: Verify REST API is Working
Test a known endpoint:
fetch(window.WNW_CONFIG.restUrl + '/store/branding')
.then(r => r.json())
.then(console.log);
If this fails, the REST API itself may be broken.
Solution 5: Check .htaccess
Ensure .htaccess has WordPress rewrite rules:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Expected Behavior
GET Request:
{
"vip_min_spent": 1000,
"vip_min_orders": 10,
"vip_timeframe": "all",
"vip_require_both": true,
"vip_exclude_refunded": true
}
POST Request:
{
"success": true,
"message": "Customer settings updated successfully",
"settings": { ... }
}
Quick Fix Checklist
- Flush permalinks
- Enable debug logging
- Check debug.log for errors
- Test endpoint in browser console
- Verify other REST endpoints work
- Check .htaccess file
- Clear all caches (browser, WordPress, server)
Still Not Working?
If none of the above works, there may be:
- Plugin conflict (disable other plugins temporarily)
- Theme conflict (switch to default theme temporarily)
- Server configuration issue (check with hosting provider)
- WordPress REST API disabled by security plugin