Flysystem Offload: %s
',
esc_html__('Composer dependencies not installed. Please run: composer install', 'flysystem-offload')
);
});
return;
}
require_once $autoloader;
// Inicializar el plugin cuando WordPress esté listo
add_action('plugins_loaded', function (): void {
try {
FlysystemOffload\Plugin::bootstrap();
} catch (Throwable $e) {
error_log('[Flysystem Offload] Error al iniciar el plugin: ' . $e->getMessage());
// Mostrar error solo a administradores
if (is_admin() && current_user_can('manage_options')) {
add_action('admin_notices', function () use ($e): void {
printf(
'',
esc_html($e->getMessage())
);
});
}
}
}, 10);
// Hook de activación
register_activation_hook(__FILE__, function (): void {
// Verificar requisitos
if (version_compare(PHP_VERSION, '8.1', '<')) {
deactivate_plugins(plugin_basename(__FILE__));
wp_die(
esc_html__('Flysystem Offload requires PHP 8.1 or higher.', 'flysystem-offload'),
esc_html__('Plugin Activation Error', 'flysystem-offload'),
['back_link' => true]
);
}
// Crear directorio de configuración si no existe
$configDir = FLYSYSTEM_OFFLOAD_CONFIG_PATH;
if (!file_exists($configDir)) {
wp_mkdir_p($configDir);
}
// Copiar archivo de ejemplo si no existe configuración
$configFile = $configDir . '/flysystem-offload.php';
$exampleFile = $configDir . '/flysystem-offload.example.php';
if (!file_exists($configFile) && file_exists($exampleFile)) {
copy($exampleFile, $configFile);
}
});
// Hook de desactivación
register_deactivation_hook(__FILE__, function (): void {
// Desregistrar stream wrapper si existe
if (in_array('fly', stream_get_wrappers(), true)) {
stream_wrapper_unregister('fly');
}
});