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 ) {
?>
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' ) );
}
}