From 59b9f35537bbde03136ab8ccbbe0a1eb6ba537d9 Mon Sep 17 00:00:00 2001 From: Meghdad Date: Thu, 17 Jul 2025 18:20:47 +0330 Subject: [PATCH] implement after-login-route setting --- dabestaniha-authenticate-bridge.php | 5 ++++- settings-page.php | 30 ++++++++++++++++++++++++----- src/configs/da.php | 5 ++++- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/dabestaniha-authenticate-bridge.php b/dabestaniha-authenticate-bridge.php index 41012d3..6da28b0 100644 --- a/dabestaniha-authenticate-bridge.php +++ b/dabestaniha-authenticate-bridge.php @@ -32,7 +32,10 @@ add_action('init', function () { $user_id = find_or_create_user($identifier_name, $identifier_value, $name); login_user($user_id); - wp_redirect(home_url('/dashboard')); + + $redirect_path = get_configured_option('after-login-route'); + wp_redirect(home_url($redirect_path)); + exit(); }); diff --git a/settings-page.php b/settings-page.php index 7232c73..92a28a3 100644 --- a/settings-page.php +++ b/settings-page.php @@ -12,9 +12,9 @@ add_action('admin_menu', function () { add_action('admin_init', function () { - register_setting(config('da.settings-group'), config('da.options.jwt-secret')); - register_setting(config('da.settings-group'), config('da.options.user-identifier')); - register_setting(config('da.settings-group'), config('da.options.login-route')); + foreach (config('da.options') as $configured => $options_key) { + register_setting(config('da.settings-group'), $options_key); + } add_settings_section( config('da.section-id'), @@ -64,7 +64,22 @@ add_action('admin_init', function () { $name = config('da.options.login-route'); $value = esc_attr(get_option($name, config('da.login_route_default'))); echo '
'; - echo '' . home_url('/') . ''; + echo ''.home_url('/').''; + echo ""; + echo '
'; + }, + config('da.settings-page'), + config('da.section-id') + ); + + add_settings_field( + config('da.options.after-login-route'), + config('da.translations.after-login-route'), + function () { + $name = config('da.options.after-login-route'); + $value = esc_attr(get_option($name, config('da.after_login_route_default'))); + echo '
'; + echo ''.home_url('/').''; echo ""; echo '
'; }, @@ -74,7 +89,12 @@ add_action('admin_init', function () { $loginRouteOptionName = config('da.options.login-route'); add_filter("pre_update_option_{$loginRouteOptionName}", function ($value) { - return trim($value, '/'); + return trim($value, '/'); + }); + + $afterLoginRouteOptionName = config('da.options.after-login-route'); + add_filter("pre_update_option_{$afterLoginRouteOptionName}", function ($value) { + return trim($value, '/'); }); }); diff --git a/src/configs/da.php b/src/configs/da.php index ee684a1..dab24f6 100644 --- a/src/configs/da.php +++ b/src/configs/da.php @@ -10,6 +10,7 @@ return [ 'jwt-secret' => 'da_jwt_secret', 'user-identifier' => 'da_user_identifier', 'login-route' => 'da_login_route', + 'after-login-route' => 'da_after_login_route', ], 'user-identifiers' => [ @@ -19,6 +20,7 @@ return [ ], 'login_route_default' => 'dabestaniha/login', + 'after_login_route_default' => 'dashboard', 'translations' => [ 'mobile' => 'تلفن همراه', @@ -31,7 +33,8 @@ return [ 'jwt-secret' => 'کلید JWT', 'user-identifier' => 'فیلد شناسایی کاربر', - 'login-route' => 'آدرس لاگین دبستانی ها', + 'login-route' => 'مسیر لاگین دبستانی ها', + 'after-login-route' => 'مسیر بعد از لاگین', 'new-user' => 'کاربر جدید', ],