导入 AKSRT 主题开发源码

This commit is contained in:
Claude Code
2026-07-03 22:50:34 +08:00
parent 9681dd3d48
commit 1268a55dd0
595 changed files with 127705 additions and 0 deletions
+255
View File
@@ -0,0 +1,255 @@
<?php
/**
* Modal auth dialog.
*
* @package AKSRT
*/
defined('ABSPATH') || exit;
if (is_user_logged_in()) {
return;
}
$oauth_providers = [];
if (class_exists('AKSRT_OAuth')) {
$oauth_providers = AKSRT_OAuth::get_instance()->get_auth_providers_data();
}
$registration_open = true;
$email_verification = false;
$close_signin = false;
$invite_field_mode = 'hidden';
$invite_field_hint = '';
$invite_prefill = '';
$show_qrcode_tab = false;
if (class_exists('AKSRT_Settings')) {
$registration_open = AKSRT_Settings::registration_enabled();
$email_verification = AKSRT_Settings::registration_requires_email_verification();
$close_signin = AKSRT_Settings::close_signin();
$invite_cfg = AKSRT_Settings::get_invite_registration_config();
$invite_field_mode = (string) ($invite_cfg['register_field'] ?? 'hidden');
$invite_field_hint = $invite_field_mode === 'required'
? (string) ($invite_cfg['must_desc'] ?? '')
: (string) ($invite_cfg['open_desc'] ?? '');
}
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']));
}
foreach ($oauth_providers as $provider) {
if (($provider['name'] ?? '') === 'weixingzh') {
$show_qrcode_tab = true;
break;
}
}
$site_name = get_bloginfo('name');
$reset_url = function_exists('aksrt_get_reset_password_url') ? aksrt_get_reset_password_url() : wp_lostpassword_url();
?>
<div class="aksrt-modal-auth" id="aksrt-modal-auth" aria-hidden="true" role="dialog" aria-modal="true" aria-label="<?php esc_attr_e('Sign In', 'aksrt'); ?>">
<div class="aksrt-modal-auth__overlay"></div>
<div class="aksrt-modal-auth__card">
<button type="button" class="aksrt-modal-auth__close" aria-label="<?php esc_attr_e('Close', 'aksrt'); ?>">
<i class="fas fa-times"></i>
</button>
<div class="aksrt-modal-auth__header">
<div class="aksrt-modal-auth__logo">AK</div>
<h2 class="aksrt-modal-auth__title"><?php echo esc_html($site_name); ?></h2>
</div>
<div class="aksrt-modal-auth__tabs" role="tablist">
<button type="button" class="aksrt-modal-auth__tab is-active" data-tab="login" role="tab" aria-selected="true">
<?php esc_html_e('Sign In', 'aksrt'); ?>
</button>
<?php if ($registration_open) : ?>
<button type="button" class="aksrt-modal-auth__tab" data-tab="register" role="tab" aria-selected="false">
<?php esc_html_e('Register', 'aksrt'); ?>
</button>
<?php endif; ?>
<?php if ($show_qrcode_tab) : ?>
<button type="button" class="aksrt-modal-auth__tab" data-tab="qrcode" role="tab" aria-selected="false">
<?php esc_html_e('QR Login', 'aksrt'); ?>
</button>
<?php endif; ?>
</div>
<div class="aksrt-modal-auth__panel is-active" data-panel="login">
<?php if ($close_signin) : ?>
<div class="aksrt-modal-auth__error is-success" id="aksrt-modal-login-error">
<?php esc_html_e('Password sign-in is currently disabled. Please use one of the social login methods below.', 'aksrt'); ?>
</div>
<?php else : ?>
<form class="aksrt-modal-auth__form" id="aksrt-modal-login-form">
<div class="aksrt-modal-auth__error" id="aksrt-modal-login-error" hidden></div>
<?php wp_nonce_field('aksrt_login', '_login_nonce'); ?>
<div class="aksrt-modal-auth__field">
<label for="modal-login-user"><?php esc_html_e('Email / Username', 'aksrt'); ?></label>
<input type="text" id="modal-login-user" name="log" autocomplete="username" required placeholder="<?php esc_attr_e('Please enter your email or username', 'aksrt'); ?>">
</div>
<div class="aksrt-modal-auth__field">
<label for="modal-login-pass"><?php esc_html_e('Password', 'aksrt'); ?></label>
<div class="aksrt-modal-auth__pass-wrap">
<input type="password" id="modal-login-pass" name="pwd" autocomplete="current-password" required placeholder="<?php esc_attr_e('Please enter your password', 'aksrt'); ?>">
<button type="button" class="aksrt-modal-auth__pass-toggle" aria-label="<?php esc_attr_e('Toggle password visibility', 'aksrt'); ?>">
<i class="far fa-eye"></i>
</button>
</div>
</div>
<?php if (function_exists('aksrt_render_captcha')) : ?>
<?php aksrt_render_captcha('login'); ?>
<?php endif; ?>
<div class="aksrt-modal-auth__actions">
<a href="<?php echo esc_url($reset_url); ?>" class="aksrt-modal-auth__link"><?php esc_html_e('Forgot password?', 'aksrt'); ?></a>
</div>
<button type="submit" class="aksrt-modal-auth__submit">
<span><?php esc_html_e('Sign In', 'aksrt'); ?></span>
<i class="fas fa-spinner fa-spin" hidden></i>
</button>
</form>
<?php endif; ?>
</div>
<?php if ($registration_open) : ?>
<div class="aksrt-modal-auth__panel" data-panel="register">
<form class="aksrt-modal-auth__form" id="aksrt-modal-register-form">
<div class="aksrt-modal-auth__error" id="aksrt-modal-register-error" hidden></div>
<?php wp_nonce_field('aksrt_register', '_register_nonce'); ?>
<div class="aksrt-modal-auth__field">
<label for="modal-reg-user"><?php esc_html_e('Username', 'aksrt'); ?></label>
<input type="text" id="modal-reg-user" name="user_login" autocomplete="username" required placeholder="<?php esc_attr_e('Please enter a username', 'aksrt'); ?>">
</div>
<div class="aksrt-modal-auth__field">
<label for="modal-reg-email"><?php esc_html_e('Email', 'aksrt'); ?></label>
<input type="email" id="modal-reg-email" name="user_email" autocomplete="email" required placeholder="<?php esc_attr_e('Please enter your email', 'aksrt'); ?>">
</div>
<div class="aksrt-modal-auth__field">
<label for="modal-reg-pass"><?php esc_html_e('Password', 'aksrt'); ?></label>
<div class="aksrt-modal-auth__pass-wrap">
<input type="password" id="modal-reg-pass" name="user_pass" autocomplete="new-password" required minlength="6" placeholder="<?php esc_attr_e('At least 6 characters', 'aksrt'); ?>">
<button type="button" class="aksrt-modal-auth__pass-toggle" aria-label="<?php esc_attr_e('Toggle password visibility', 'aksrt'); ?>">
<i class="far fa-eye"></i>
</button>
</div>
</div>
<div class="aksrt-modal-auth__field">
<label for="modal-reg-pass-confirm"><?php esc_html_e('Confirm Password', 'aksrt'); ?></label>
<div class="aksrt-modal-auth__pass-wrap">
<input type="password" id="modal-reg-pass-confirm" name="user_pass_confirm" autocomplete="new-password" required minlength="6" placeholder="<?php esc_attr_e('Re-enter your password', 'aksrt'); ?>">
<button type="button" class="aksrt-modal-auth__pass-toggle" aria-label="<?php esc_attr_e('Toggle password visibility', 'aksrt'); ?>">
<i class="far fa-eye"></i>
</button>
</div>
</div>
<?php if ($invite_field_mode !== 'hidden') : ?>
<div class="aksrt-modal-auth__field">
<label for="modal-reg-invite">
<?php esc_html_e('邀请码', 'aksrt'); ?>
<?php if ($invite_field_mode === 'optional') : ?>
<small><?php esc_html_e('(选填)', 'aksrt'); ?></small>
<?php endif; ?>
</label>
<input type="text" id="modal-reg-invite" name="invite_code" value="<?php echo esc_attr($invite_prefill); ?>" <?php echo $invite_field_mode === 'required' ? 'required' : ''; ?> placeholder="<?php esc_attr_e('请输入邀请码', 'aksrt'); ?>">
<?php if ($invite_field_hint !== '') : ?>
<p class="aksrt-modal-auth__hint"><?php echo wp_kses_post($invite_field_hint); ?></p>
<?php endif; ?>
</div>
<?php endif; ?>
<label class="aksrt-modal-auth__checkbox aksrt-modal-auth__agreement">
<input type="checkbox" name="agree_terms" value="1" required>
<span><?php esc_html_e('I agree to the Terms of Service', 'aksrt'); ?></span>
</label>
<?php if ($email_verification) : ?>
<p class="aksrt-modal-auth__hint"><?php esc_html_e('Email verification is required after registration.', 'aksrt'); ?></p>
<?php endif; ?>
<?php if (function_exists('aksrt_render_captcha')) : ?>
<?php aksrt_render_captcha('register'); ?>
<?php endif; ?>
<button type="submit" class="aksrt-modal-auth__submit">
<span><?php esc_html_e('Register', 'aksrt'); ?></span>
<i class="fas fa-spinner fa-spin" hidden></i>
</button>
</form>
</div>
<?php endif; ?>
<?php if ($show_qrcode_tab) : ?>
<div class="aksrt-modal-auth__panel" data-panel="qrcode">
<div class="aksrt-modal-auth__form">
<div class="aksrt-modal-auth__error" id="aksrt-modal-qrcode-error" hidden></div>
<div class="aksrt-modal-auth__qr-code"></div>
<p class="aksrt-modal-auth__hint"><?php esc_html_e('Use WeChat to scan the QR code and complete sign-in on your phone.', 'aksrt'); ?></p>
</div>
</div>
<?php endif; ?>
<?php if (!empty($oauth_providers)) : ?>
<div class="aksrt-modal-auth__divider">
<span><?php esc_html_e('Or continue with', 'aksrt'); ?></span>
</div>
<div class="aksrt-modal-auth__oauth">
<?php foreach ($oauth_providers as $provider) :
$provider_name = (string) ($provider['name'] ?? '');
$label = $provider['label'] ?? $provider_name;
$url = $provider['url'] ?? '#';
$icon = $provider['icon'] ?? '';
?>
<a
href="<?php echo esc_url($url); ?>"
class="aksrt-modal-auth__oauth-btn social-login-item <?php echo esc_attr($provider_name); ?>"
data-provider="<?php echo esc_attr($provider_name); ?>"
title="<?php echo esc_attr($label); ?>"
>
<?php echo $icon; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</a>
<?php endforeach; ?>
</div>
<?php endif; ?>
<div class="aksrt-modal-auth__footer">
<span class="aksrt-modal-auth__footer-text" data-for="login">
<?php if ($registration_open) : ?>
<?php esc_html_e('No account yet?', 'aksrt'); ?>
<button type="button" class="aksrt-modal-auth__switch" data-switch="register"><?php esc_html_e('Register now', 'aksrt'); ?></button>
<?php elseif ($show_qrcode_tab) : ?>
<?php esc_html_e('Prefer QR sign-in?', 'aksrt'); ?>
<button type="button" class="aksrt-modal-auth__switch" data-switch="qrcode"><?php esc_html_e('Open QR Login', 'aksrt'); ?></button>
<?php endif; ?>
</span>
<?php if ($registration_open) : ?>
<span class="aksrt-modal-auth__footer-text" data-for="register" hidden>
<?php esc_html_e('Already have an account?', 'aksrt'); ?>
<button type="button" class="aksrt-modal-auth__switch" data-switch="login"><?php esc_html_e('Sign in now', 'aksrt'); ?></button>
</span>
<?php endif; ?>
<?php if ($show_qrcode_tab) : ?>
<span class="aksrt-modal-auth__footer-text" data-for="qrcode" hidden>
<?php esc_html_e('Want to use your password instead?', 'aksrt'); ?>
<button type="button" class="aksrt-modal-auth__switch" data-switch="login"><?php esc_html_e('Back to Sign In', 'aksrt'); ?></button>
</span>
<?php endif; ?>
</div>
</div>
</div>