[ 'title' => 'Community Login', 'content' => '[hvac_community_login]', ], 'trainer-registration' => [ 'title' => 'Trainer Registration', 'content' => '[hvac_trainer_registration]', ], 'hvac-dashboard' => [ 'title' => 'Trainer Dashboard', 'content' => '', // Content handled by template or redirect ], 'manage-event' => [ // New page for TEC CE submission form shortcode 'title' => 'Manage Event', 'content' => '[tribe_community_events view="submission_form"]', ], 'my-events' => [ // New page for TEC CE event list shortcode 'title' => 'My Events', 'content' => '[tribe_community_events view="my_events"]', ], // REMOVED: 'submit-event' page creation. Will link to default TEC CE page. // 'submit-event' => [ // 'title' => 'Submit Event', // 'content' => '[hvac_event_form]', // ], // Add future required pages here ]; $created_pages_option = 'hvac_community_pages'; $created_pages = get_option($created_pages_option, []); foreach ($required_pages as $slug => $page_data) { // Check if page already exists (by slug) $existing_page = get_page_by_path($slug, OBJECT, 'page'); if (!$existing_page) { error_log("HVAC CE: Page with slug '{$slug}' not found. Attempting to create."); // Add logging: page missing // Page does not exist, create it $post_data = [ 'post_title' => $page_data['title'], 'post_name' => $slug, 'post_content' => $page_data['content'], 'post_status' => 'publish', 'post_type' => 'page', 'comment_status' => 'closed', 'ping_status' => 'closed', ]; $page_id = wp_insert_post($post_data); // Log the result of wp_insert_post if (is_wp_error($page_id)) { error_log("[HVAC DEBUG] hvac_ce_create_required_pages: Error creating page '{$slug}': " . $page_id->get_error_message()); } else { error_log("[HVAC DEBUG] hvac_ce_create_required_pages: Successfully created page '{$slug}' with ID: {$page_id}."); } // Store the created page ID - Rewritten to avoid tool issue with && if ($page_id) { // Check if page_id is truthy (non-zero, non-null, etc.) if (!is_wp_error($page_id)) { // Then check if it's not a WP_Error object // Use a key based on the slug or feature name for clarity $feature_key = str_replace('-', '_', $slug); $created_pages[$feature_key] = $page_id; } } } else { // Ensure existing pages are also recorded in the option if not already $feature_key = str_replace('-', '_', $slug); if (!isset($created_pages[$feature_key])) { $created_pages[$feature_key] = $existing_page->ID; } } } // Update the option with any newly created page IDs (and existing ones) update_option($created_pages_option, $created_pages); // Create the custom role (Moved inside the activation function) $roles_manager = new HVAC_Roles(); $result = $roles_manager->create_trainer_role(); if ($result) { error_log('[HVAC DEBUG] hvac_ce_create_required_pages: Successfully created hvac_trainer role.'); } else { error_log('[HVAC DEBUG] hvac_ce_create_required_pages: Failed to create hvac_trainer role.'); } error_log('[HVAC DEBUG] hvac_ce_create_required_pages: Completed page creation and role setup process.'); } // <<-- Brace moved here register_activation_hook(__FILE__, 'hvac_ce_create_required_pages'); /** * Remove custom roles upon plugin deactivation. */ function hvac_ce_remove_roles() { require_once HVAC_CE_PLUGIN_DIR . 'includes/class-hvac-roles.php'; $roles_manager = new HVAC_Roles(); $roles_manager->remove_trainer_role(); error_log('HVAC CE: Deactivation hook fired, attempted to remove hvac_trainer role.'); } register_deactivation_hook(__FILE__, 'hvac_ce_remove_roles'); /** * Enqueue styles specifically for the HVAC Dashboard page. */ function hvac_ce_enqueue_dashboard_styles() { // Check if we are on the specific dashboard page // Assumes the page slug is 'hvac-dashboard' as created in the activation hook if ( is_page( 'hvac-dashboard' ) ) { wp_enqueue_style( 'hvac-dashboard-style', HVAC_CE_PLUGIN_URL . 'assets/css/hvac-dashboard.css', [], // No dependencies for now HVAC_CE_VERSION ); } } add_action( 'wp_enqueue_scripts', 'hvac_ce_enqueue_dashboard_styles' ); /** * Enqueue styles specifically for the HVAC Event Summary page. */ function hvac_ce_enqueue_event_summary_styles() { // Check if we are on a single event page if ( is_singular( Tribe__Events__Main::POSTTYPE ) ) { wp_enqueue_style( 'hvac-event-summary-style', HVAC_CE_PLUGIN_URL . 'assets/css/hvac-event-summary.css', [], // No dependencies for now HVAC_CE_VERSION ); } } add_action( 'wp_enqueue_scripts', 'hvac_ce_enqueue_event_summary_styles' ); // Include the main plugin class require_once HVAC_CE_PLUGIN_DIR . 'includes/class-hvac-community-events.php'; // Initialize the plugin function hvac_community_events_init() { // error_log('[HVAC DEBUG] hvac_community_events_init function called (plugins_loaded hook).'); // REMOVED DEBUG LOG return HVAC_Community_Events::instance(); } // error_log('[HVAC DEBUG] About to add plugins_loaded action hook.'); // REMOVED DEBUG LOG add_action('plugins_loaded', 'hvac_community_events_init'); /** * Include custom template for single event summary page. * * @param string $template The path of the template to include. * @return string The path of the template file. */ function hvac_ce_include_event_summary_template( $template ) { // Check if it's a single event post type view if ( is_singular( Tribe__Events__Main::POSTTYPE ) ) { // Check if the custom template exists in the plugin's template directory $custom_template = HVAC_CE_PLUGIN_DIR . 'templates/single-hvac-event-summary.php'; if ( file_exists( $custom_template ) ) { // Return the path to the custom template return $custom_template; } } // Return the original template if not a single event or custom template doesn't exist return $template; } /** * Template routing for Order Summary Page. */ function hvac_ce_include_order_summary_template( $template ) { if ( is_page( 'order-summary' ) && isset( $_GET['order_id'] ) && absint( $_GET['order_id'] ) > 0 ) { $custom_template = HVAC_CE_PLUGIN_DIR . 'templates/single-hvac-order-summary.php'; if ( file_exists( $custom_template ) ) { return $custom_template; } } return $template; } add_filter( 'template_include', 'hvac_ce_include_event_summary_template', 99 );