getMessage() ) ); /* translators: %s: stack trace */ accessibility_audio_tts_error_log( sprintf( __( 'Stack trace: %s', 'accessibility-audio-tts-text-to-speech-for-articles' ), $e->getTraceAsString() ) ); add_action( 'admin_notices', function () use ( $e ) { ?>

getMessage() ) ); ?>

Core_Initializer::get_container_stats(), 'admin' => Admin_Initializer::get_admin_stats(), 'frontend' => Frontend_Initializer::get_frontend_stats(), ); } /** * Handle plugin activation * * Performs necessary setup tasks when the plugin is activated, * including CRON system initialization and rewrite rule flushing. * * @since 1.0.0 * @return void. */ public static function on_activation() { accessibility_audio_tts_debug_log( __( 'Plugin activated - Initializing systems', 'accessibility-audio-tts-text-to-speech-for-articles' ) ); // Ensure autoloader is registered before using namespaced classes during activation. if ( class_exists( '\\Accessibility_Audio_TTS\\Plugin_Utils' ) ) { \Accessibility_Audio_TTS\Plugin_Utils::register_autoloader(); } // Preload critical CRON classes to avoid activation-time autoload ordering issues. if ( defined( 'ACCESSIBILITY_AUDIO_TTS_PLUGIN_DIR' ) ) { $maybe_require = function ( string $relative ) { $path = ACCESSIBILITY_AUDIO_TTS_PLUGIN_DIR . $relative; if ( file_exists( $path ) ) { require_once $path; } }; $maybe_require( 'infrastructure/cron/cron-executor.php' ); $maybe_require( 'infrastructure/cron/cron-scheduler.php' ); $maybe_require( 'infrastructure/cron/cron-monitor.php' ); $maybe_require( 'infrastructure/cron/cron-job-registry.php' ); } // Initialize CRON system on activation. CRON_Manager::init_cron_on_activation(); // Flush rewrite rules if needed. flush_rewrite_rules(); accessibility_audio_tts_debug_log( __( 'Plugin activation completed', 'accessibility-audio-tts-text-to-speech-for-articles' ) ); } /** * Handle plugin deactivation * * Performs necessary cleanup tasks when the plugin is deactivated, * including CRON cleanup, license system cleanup, and rewrite rule flushing. * * @since 1.0.0 * @return void. */ public static function on_deactivation() { accessibility_audio_tts_debug_log( __( 'Plugin deactivated - Cleaning up systems', 'accessibility-audio-tts-text-to-speech-for-articles' ) ); // Clear all scheduled CRON jobs. CRON_Manager::cleanup_cron_on_deactivation(); // Flush rewrite rules. flush_rewrite_rules(); accessibility_audio_tts_debug_log( __( 'Plugin deactivation completed', 'accessibility-audio-tts-text-to-speech-for-articles' ) ); } }