define_constants(); $this->includes(); $this->init_hooks(); } /** * Define constants */ private function define_constants() { // Additional constants can be defined here } /** * Include required files */ private function includes() { require_once HVAC_CE_PLUGIN_DIR . 'includes/class-hvac-roles.php'; require_once HVAC_CE_PLUGIN_DIR . 'includes/class-hvac-registration.php'; require_once HVAC_CE_PLUGIN_DIR . 'includes/class-hvac-settings.php'; require_once HVAC_CE_PLUGIN_DIR . 'includes/community/class-login-handler.php'; // Add Login Handler } /** * Initialize hooks */ private function init_hooks() { // Register activation/deactivation hooks register_activation_hook(__FILE__, array($this, 'activate')); register_deactivation_hook(__FILE__, array($this, 'deactivate')); // Initialize other hooks add_action('init', array($this, 'init')); } /** * Plugin activation */ public function activate() { // Activation code here } /** * Plugin deactivation */ public function deactivate() { // Remove the hvac_trainer role $roles = new HVAC_Roles(); $roles->remove_trainer_role(); // Additional deactivation tasks // ... } /** * Initialize plugin */ public function init() { // Initialize handlers error_log('[HVAC DEBUG] HVAC_Community_Events::init() - Before new HVAC_Registration()'); // ADDED LOG new \HVAC_Community_Events\Community\Login_Handler(); error_log('[HVAC DEBUG] HVAC_Community_Events::init() - After new HVAC_Registration()'); // ADDED LOG new HVAC_Registration(); // Instantiate Registration class to register shortcode // Prevent trainers from accessing wp-admin add_action('admin_init', array($this, 'redirect_trainers_from_admin')); } /** * Redirect HVAC trainers from admin area to frontend dashboard */ public function redirect_trainers_from_admin() { if (defined('DOING_AJAX') && DOING_AJAX) { return; } if (current_user_can('view_hvac_dashboard') && !current_user_can('manage_options')) { wp_redirect(home_url('/hvac-trainer-dashboard/')); exit; } } }