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
This commit is contained in:
2026-01-29 12:58:33 +09:00
parent c133e3993b
commit 84a4ae7c1b
2 changed files with 37 additions and 0 deletions

View File

@@ -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' ) );
}
}

View File

@@ -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
*/