fix: Force production mode for admin SPA assets

🐛 Problem:
- SPA not loading in wp-admin
- Trying to load from dev server (localhost:5173)
- Happening in Local by Flywheel (wp_get_environment_type() = 'development')

 Solution:
- Changed is_dev_mode() to ONLY enable dev mode if WOONOOW_ADMIN_DEV constant is explicitly set
- Removed wp_get_environment_type() check
- Now defaults to production mode (loads from admin-spa/dist/)

📝 To Enable Dev Mode:
Add to wp-config.php:
define('WOONOOW_ADMIN_DEV', true);

🎯 Result:
- Production mode by default
- Dev mode only when explicitly enabled
- Works correctly in Local by Flywheel and other local environments
This commit is contained in:
dwindown
2025-11-16 10:21:37 +07:00
parent 056cad44f9
commit 57ce0a4e50
3 changed files with 202 additions and 5 deletions

View File

@@ -225,20 +225,21 @@ class Assets {
}
/** Determine dev mode:
* - WP environment 'development'
* - or constant WOONOOW_ADMIN_DEV=true
* - ONLY enabled if constant WOONOOW_ADMIN_DEV=true is explicitly set
* - or filter override (woonoow/admin_is_dev)
*
* Note: We don't check WP_ENV to avoid accidentally enabling dev mode
* in Local by Flywheel or other local dev environments.
*/
private static function is_dev_mode(): bool {
$env_is_dev = function_exists('wp_get_environment_type') && wp_get_environment_type() === 'development';
// Only enable dev mode if explicitly set via constant
$const_dev = defined('WOONOOW_ADMIN_DEV') && WOONOOW_ADMIN_DEV === true;
$is_dev = $env_is_dev || $const_dev;
/**
* Filter: force dev/prod mode for WooNooW admin assets.
* Return true to use Vite dev server, false to use built assets.
*/
return (bool) apply_filters('woonoow/admin_is_dev', $is_dev);
return (bool) apply_filters('woonoow/admin_is_dev', $const_dev);
}
/** Dev server URL (filterable) */