diff --git a/includes/class-ddhh-job-manager.php b/includes/class-ddhh-job-manager.php index 77bf2f8..0035d27 100644 --- a/includes/class-ddhh-job-manager.php +++ b/includes/class-ddhh-job-manager.php @@ -84,5 +84,8 @@ class DDHH_JM_Job_Manager { // Initialize scheduler for async email processing add_action( 'init', array( 'DDHH_JM_Scheduler', 'setup_hooks' ) ); + + // Initialize pages + add_action( 'init', array( 'DDHH_JM_Pages', 'setup_hooks' ) ); } } diff --git a/includes/class-pages.php b/includes/class-pages.php index 698291c..78eeb86 100644 --- a/includes/class-pages.php +++ b/includes/class-pages.php @@ -15,6 +15,40 @@ defined( 'ABSPATH' ) || exit; */ class DDHH_JM_Pages { + /** + * Setup hooks + */ + public static function setup_hooks() { + // Redirect logged-in providers from login page to dashboard + add_action( 'template_redirect', array( __CLASS__, 'maybe_redirect_logged_in_from_login' ) ); + } + + /** + * Redirect logged-in providers from login page to dashboard + */ + public static function maybe_redirect_logged_in_from_login() { + // Only check on the login page + $login_page_id = get_option( 'ddhh_jm_login_page_id' ); + if ( ! $login_page_id || ! is_page( $login_page_id ) ) { + return; + } + + // If user is logged in and is a provider, redirect to dashboard + if ( is_user_logged_in() ) { + $user = wp_get_current_user(); + if ( in_array( 'ddhh_provider', $user->roles, true ) ) { + $dashboard_page_id = get_option( 'ddhh_jm_dashboard_page_id' ); + if ( $dashboard_page_id ) { + $dashboard_url = get_permalink( $dashboard_page_id ); + if ( $dashboard_url ) { + wp_safe_redirect( $dashboard_url ); + exit; + } + } + } + } + } + /** * Create provider pages on plugin activation */