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:
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user