. */ // If this file is called directly, abort. if (!defined('WPINC')) { die; } // Define plugin constants define('ACTLOGPRO_VERSION', '1.2.2'); define('ACTLOGPRO_PLUGIN_FILE', __FILE__); define('ACTLOGPRO_PLUGIN_DIR', plugin_dir_path(__FILE__)); define('ACTLOGPRO_PLUGIN_URL', plugin_dir_url(__FILE__)); define('ACTLOGPRO_PLUGIN_BASENAME', plugin_basename(__FILE__)); // Suppress known third-party plugin deprecation warnings that we cannot control add_filter('deprecated_function_trigger_error', function($trigger, $function = '', $replacement = '', $version = '') { // Only process if we have the function parameter if (!empty($function)) { // Suppress Yoast SEO's internal deprecation warnings that appear due to our integration if (strpos($function, 'WPSEO_Metabox::translate_meta_boxes') !== false) { return false; // Don't show this specific deprecation warning } } return $trigger; // Allow other deprecation warnings }, 10, 4); // Activation and deactivation hooks register_activation_hook(__FILE__, 'actlogpro_activate'); register_deactivation_hook(__FILE__, 'actlogpro_deactivate'); /** * The code that runs during plugin activation. */ function actlogpro_activate() { require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-activator.php'; ACTLOGPRO_Activator::activate(); // Schedule email digest if already configured and enabled require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-email-digest.php'; ACTLOGPRO_Email_Digest_Manager::schedule_email_digest(); } /** * The code that runs during plugin deactivation. */ function actlogpro_deactivate() { require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-deactivator.php'; ACTLOGPRO_Deactivator::deactivate(); } /** * The core plugin class */ require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-core.php'; /** * Load Email Digest Manager BEFORE init hook to ensure cron hooks are registered early * This must happen outside the init function so WordPress cron can find the action hook */ require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-email-digest.php'; // Register the cron action hook immediately at plugin load time add_action('actlogpro_send_email_digest', array('ACTLOGPRO_Email_Digest_Manager', 'send_email_digest')); // AI / Connectors loggers: register option hooks as early as possible (WP 7.0+). require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-ai-connectors-logger.php'; require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-ai-plugin-logger.php'; ACTLOGPRO_AI_Connectors_Logger::init(); ACTLOGPRO_AI_Plugin_Logger::init(); /** * Initialize all plugin components */ function actlogpro_initialize_activity_log_pro() { // Load the logger class file require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-logger.php'; // Load premium helper class require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-premium-helper.php'; // Load integration status helper class require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-integration-status-helper.php'; // Load extension interface for premium add-ons require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-extension-interface.php'; ACTLOGPRO_Extension_Interface::init(); // Manually trigger extension loading since we're past the plugins_loaded hook // This allows premium extensions to register themselves ACTLOGPRO_Extension_Interface::load_extensions(); // Load Live Sessions classes require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-live-sessions.php'; require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-live-sessions-activity.php'; ACTLOGPRO_Live_Sessions_Activity::init(); // Load stats helper class require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-stats-helper.php'; // Load dashboard widget require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-dashboard-widget.php'; ACTLOGPRO_Dashboard_Widget::init(); // Load quick edit tracker require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-quick-edit-tracker.php'; new ACTLOGPRO_Quick_Edit_Tracker(); // Load comment logger require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-comment-logger.php'; new ACTLOGPRO_Comment_Logger(); // Load site health monitor require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-site-health-monitor.php'; new ACTLOGPRO_Site_Health_Monitor(); // Load widget logger require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-widget-logger.php'; // Load integration handler require_once ACTLOGPRO_PLUGIN_DIR . 'admin/class-alp-integration-handler.php'; // Load integration loader require_once ACTLOGPRO_PLUGIN_DIR . 'integrations/class-alp-integration-loader.php'; // Load Recorded Notes require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-recorded-notes.php'; // Load Quick Tips require_once ACTLOGPRO_PLUGIN_DIR . 'includes/class-alp-quick-tips.php'; ACTLOGPRO_Quick_Tips::init(); // Initialize Email Digest Manager functionality (class was already loaded above) ACTLOGPRO_Email_Digest_Manager::init(); // Run the plugin (loads all dependencies including ACTLOGPRO_Severity) actlogpro_run_activity_log_pro(); // Init premium helper after all dependencies are loaded ACTLOGPRO_Premium_Helper::init(); } /** * Begins execution of the plugin. */ function actlogpro_run_activity_log_pro() { $plugin = new ACTLOGPRO_Core(); $plugin->run(); } // Initialize all components on init action to ensure proper text domain loading add_action('init', 'actlogpro_initialize_activity_log_pro', 5);