From 84a4ae7c1b23174f8905e22de323c96644f40018 Mon Sep 17 00:00:00 2001 From: Viktor Miller Date: Thu, 29 Jan 2026 12:58:33 +0900 Subject: [PATCH] feat(quick-001): redirect logged-in providers from login page to dashboard - Add setup_hooks() method to DDHH_JM_Pages class - Add maybe_redirect_logged_in_from_login() method that checks if current page is login page - Redirect logged-in providers to dashboard, allow non-providers to view login page - Register Pages::setup_hooks() in main plugin orchestrator --- includes/class-ddhh-job-manager.php | 3 +++ includes/class-pages.php | 34 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) 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 */