- Added explicit checks to prevent authentication redirects on registration page - Added ensure_registration_page_public() method with priority 1 to run before other auth checks - Included registration-pending and training-login pages in public pages list - Added fallback function in main plugin file to remove auth hooks on registration page This ensures that users can access /trainer/registration/ without being logged in, as intended for new trainer signups.
		
			
				
	
	
		
			96 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Event Author Fixer
 | |
|  *
 | |
|  * Ensures events created through Community Events are properly assigned to the creating user
 | |
|  *
 | |
|  * @package HVAC_Community_Events
 | |
|  */
 | |
| 
 | |
| namespace HVAC_Community_Events;
 | |
| 
 | |
| /**
 | |
|  * Class Event_Author_Fixer
 | |
|  * 
 | |
|  * Fixes event author assignment for Community Events
 | |
|  */
 | |
| class Event_Author_Fixer {
 | |
|     
 | |
|     /**
 | |
|      * Constructor
 | |
|      */
 | |
|     public function __construct() {
 | |
|         // Hook into Community Events submission process
 | |
|         add_filter('tec_events_community_before_save_submission', array($this, 'ensure_author_is_set'), 10, 1);
 | |
|         
 | |
|         // Hook into event creation to ensure author is current user
 | |
|         add_action('tribe_community_event_created', array($this, 'fix_event_author'), 10, 1);
 | |
|         
 | |
|         // Also hook into WordPress post data to ensure author is set
 | |
|         add_filter('wp_insert_post_data', array($this, 'set_post_author'), 10, 2);
 | |
|     }
 | |
|     
 | |
|     /**
 | |
|      * Ensure author is set in submission data before saving
 | |
|      *
 | |
|      * @param array $submission The submission data
 | |
|      * @return array Modified submission data
 | |
|      */
 | |
|     public function ensure_author_is_set($submission) {
 | |
|         // If post_author is not set or is 0, set it to current user
 | |
|         if (empty($submission['post_author']) || $submission['post_author'] == 0) {
 | |
|             $current_user_id = get_current_user_id();
 | |
|             if ($current_user_id > 0) {
 | |
|                 $submission['post_author'] = $current_user_id;
 | |
|                 HVAC_Logger::info('Setting event author to current user: ' . $current_user_id, 'EventAuthor');
 | |
|             }
 | |
|         }
 | |
|         
 | |
|         return $submission;
 | |
|     }
 | |
|     
 | |
|     /**
 | |
|      * Fix event author after creation
 | |
|      *
 | |
|      * @param int $event_id The event ID
 | |
|      */
 | |
|     public function fix_event_author($event_id) {
 | |
|         $event = get_post($event_id);
 | |
|         
 | |
|         if ($event && $event->post_type === 'tribe_events') {
 | |
|             $current_user_id = get_current_user_id();
 | |
|             
 | |
|             // If the event has no author or author is 0, set it to current user
 | |
|             if (($event->post_author == 0 || empty($event->post_author)) && $current_user_id > 0) {
 | |
|                 wp_update_post(array(
 | |
|                     'ID' => $event_id,
 | |
|                     'post_author' => $current_user_id
 | |
|                 ));
 | |
|                 
 | |
|                 HVAC_Logger::info('Fixed event author for event ' . $event_id . ' to user ' . $current_user_id, 'EventAuthor');
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     
 | |
|     /**
 | |
|      * Set post author when inserting tribe_events post
 | |
|      *
 | |
|      * @param array $data    The post data
 | |
|      * @param array $postarr The post array
 | |
|      * @return array Modified post data
 | |
|      */
 | |
|     public function set_post_author($data, $postarr) {
 | |
|         // Only handle tribe_events posts
 | |
|         if ($data['post_type'] === 'tribe_events') {
 | |
|             $current_user_id = get_current_user_id();
 | |
|             
 | |
|             // If no author is set and we have a logged-in user, set the author
 | |
|             if ((empty($data['post_author']) || $data['post_author'] == 0) && $current_user_id > 0) {
 | |
|                 $data['post_author'] = $current_user_id;
 | |
|                 HVAC_Logger::info('Setting tribe_events post author to: ' . $current_user_id, 'EventAuthor');
 | |
|             }
 | |
|         }
 | |
|         
 | |
|         return $data;
 | |
|     }
 | |
| } |