'signin',
'signin' => 'signin',
'register' => 'signup',
'signup' => 'signup',
];
$tab_source = $requested_tab !== '' ? $requested_tab : $route_tab;
$tab = $tab_aliases[$tab_source] ?? 'signin';
$redirect_to = !empty($_GET['redirect_to']) ? esc_url_raw(wp_unslash((string) $_GET['redirect_to'])) : home_url();
$registration_open = class_exists('AKSRT_Settings') && AKSRT_Settings::registration_enabled();
if (class_exists('AKSRT_Settings') && method_exists('AKSRT_Settings', 'close_signup') && AKSRT_Settings::close_signup()) {
$registration_open = false;
}
$titles = [
'signin' => __('用户登录', 'aksrt'),
'signup' => __('新用户注册', 'aksrt'),
];
$page_title = ($titles[$tab] ?? __('登录 / 注册', 'aksrt')) . ' - ' . get_bloginfo('name');
$interim = isset($_REQUEST['interim-login']);
if (class_exists('AKSRT_Settings') && AKSRT_Settings::close_sign() && !is_user_logged_in() && !$interim) {
wp_safe_redirect(home_url('/'), 302);
exit;
}
$close_signin = class_exists('AKSRT_Settings') ? AKSRT_Settings::close_signin() : false;
if ($close_signin && $tab === 'signin') {
$_SERVER['REQUEST_METHOD'] = 'GET';
}
$user_id = get_current_user_id();
if ($user_id) {
if ($interim && is_super_admin()) {
echo '
' . esc_html__('登录成功', 'aksrt') . '
';
exit;
}
wp_safe_redirect($redirect_to);
exit;
}
if ($tab === 'signup' && !$registration_open) {
$tab = 'signin';
}
remove_action('wp_footer', 'aksrt_render_footer_tabbar', 20);
remove_action('wp_footer', 'aksrt_render_float_buttons', 30);
$background_html = '';
$sign_ui = class_exists('AKSRT_Settings') ? AKSRT_Settings::sign_page_ui() : [];
$card_position = $sign_ui['card_position'] ?? 'center';
$sign_show_logo = $sign_ui['show_logo'] ?? true;
$sign_show_header = !empty($sign_ui['show_header']);
$sign_theme_mode = $sign_ui['theme_mode'] ?? 'default';
if (class_exists('AKSRT_Settings')) {
$bg_ids = $sign_ui['background'] ?? [];
if (is_array($bg_ids) && !empty($bg_ids)) {
$bg_url = wp_get_attachment_url((int) $bg_ids[array_rand($bg_ids)]);
if ($bg_url) {
$background_html = '';
}
} elseif (is_string($bg_ids) && $bg_ids !== '') {
$ids = array_filter(array_map('absint', explode(',', $bg_ids)));
if (!empty($ids)) {
$bg_url = wp_get_attachment_url($ids[array_rand($ids)]);
if ($bg_url) {
$background_html = '';
}
}
}
}
$login_error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['log'], $_POST['pwd']) && $tab === 'signin') {
if (class_exists('AKSRT_Auth_Service')) {
$result = AKSRT_Auth_Service::login_user($_POST, false);
if (empty($result['success'])) {
$login_error = $result['error'] ?? __('登录失败', 'aksrt');
} else {
wp_safe_redirect($result['redirect'] ?? home_url('/'));
exit;
}
}
}
$register_error = '';
$register_success = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['user_login'], $_POST['user_email']) && $tab === 'signup') {
if (class_exists('AKSRT_Auth_Service')) {
$result = AKSRT_Auth_Service::register_user($_POST, ['oauth_bind_data' => null, 'obk' => '']);
if (!empty($result['success'])) {
if (!empty($result['verification_required'])) {
$register_success = sprintf(
'%s %s',
esc_html($result['message'] ?? __('注册成功,请完成邮箱验证。', 'aksrt')),
esc_url($result['verify_url'] ?? ''),
esc_html__('前往验证', 'aksrt')
);
} else {
$register_success = sprintf(
__('注册成功,请前往登录页继续。', 'aksrt'),
esc_url(aksrt_get_login_url())
);
}
} else {
$register_error = $result['error'] ?? __('注册失败', 'aksrt');
}
}
}
$invite_prefill = '';
if (!empty($_GET['invite'])) {
$invite_prefill = sanitize_key(wp_unslash($_GET['invite']));
} elseif (!empty($_COOKIE['aksrt_invite'])) {
$invite_prefill = sanitize_key(wp_unslash($_COOKIE['aksrt_invite']));
}
$agreement = function_exists('aksrt_get_auth_agreement_view')
? aksrt_get_auth_agreement_view()
: ['enabled' => true, 'required' => true, 'label_html' => esc_html__('我已阅读并同意用户协议', 'aksrt'), 'field_name' => 'agree_terms'];
$sign_css_uri = get_template_directory_uri() . '/assets/css/routes/sign.css';
$sign_css_ver = file_exists(get_template_directory() . '/assets/css/routes/sign.css')
? (string) filemtime(get_template_directory() . '/assets/css/routes/sign.css')
: AKSRT_VERSION;
?>
>
render_social_buttons(); ?>