Files
wordpress-theme-aksrt/templates/parts/user/ban-block.php
T
kate522andClaude Opus 5 35bb96e82f refactor: rename the theme brand and every identifier from AKSRT to Jio
Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.

Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
  cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
  window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)

Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
  so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
  (dropped 3 stale entries, added the 17 missing ones)

Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
  get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
  when it is empty

Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.

Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-11-01 20:05:04 +08:00

66 lines
2.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* 登录后禁封状态页 — 1:1 复刻参考主题 zib_user_ban_restrict_login(zib_die_page):
* 红盒提示 + 禁封信息行 + 申诉权限 + 退出登录/申诉按钮。
* 由 Restriction::restrict_frontend_access()(template_redirect)渲染。
*
* Contract: get_template_part(..., null, $args)
* user WP_User 被封禁用户
* info array Restriction::get_ban_info() 的禁封信息行
*
* @package Jio
*/
defined('ABSPATH') || exit;
$args = is_array($args ?? null) ? $args : [];
$user = $args['user'] ?? null;
$info = is_array($args['info'] ?? null) ? $args['info'] : [];
if (!($user instanceof WP_User)) {
return;
}
$user_id = (int) $user->ID;
$null_img = function_exists('jio_null_image_url') ? jio_null_image_url('null.svg') : '';
$logout_url = wp_logout_url(home_url());
$appeal_link = function_exists('jio_get_user_ban_appeal_link')
? jio_get_user_ban_appeal_link($user_id, 'but c-blue padding-lg hollow')
: '';
$ban_set_row = static function (string $label, string $value): string {
if ($value === '') {
return '';
}
return '<div class="mb10 flex"><div class="author-set-left" style="min-width: 80px;">' . esc_html($label) . '</div><div class="author-set-right mt6">' . esc_html($value) . '</div></div>';
};
?>
<main class="container flex ac">
<div class="f404 flex1">
<?php if ($null_img !== '') : ?>
<img src="<?php echo esc_url($null_img); ?>" alt="">
<?php endif; ?>
<div class="f404-msg mt20">
<div class="c-red box-body separator mb30"><?php esc_html_e('抱歉,您的账号当前处于禁封状态,暂时无法登录', 'jio'); ?></div>
<div class="mb20 muted-box text-left" style="max-width: 600px; margin: auto;">
<?php
echo $ban_set_row(__('用户名', 'jio'), $user->display_name); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- row builder escapes.
echo $ban_set_row(__('状态', 'jio'), (string) ($info['status'] ?? ''));
echo $ban_set_row(__('开始时间', 'jio'), (string) ($info['start'] ?? ''));
echo $ban_set_row(__('结束时间', 'jio'), (string) ($info['end'] ?? ''));
echo $ban_set_row(__('原因', 'jio'), (string) ($info['reason'] ?? ''));
echo $ban_set_row(__('说明', 'jio'), (string) ($info['desc'] ?? ''));
if (!empty($info['no_appeal'])) {
echo $ban_set_row(__('申诉权限', 'jio'), __('本次禁封您将不能发起申诉', 'jio'));
echo $ban_set_row(__('禁止申诉说明', 'jio'), (string) ($info['no_appeal_desc'] ?? ''));
}
?>
</div>
<div class="mt20 text-center">
<a href="<?php echo esc_url($logout_url); ?>" class="but c-yellow padding-lg hollow mr20"><?php esc_html_e('退出登录', 'jio'); ?></a>
<?php echo $appeal_link; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- helper escapes internally. ?>
</div>
</div>
</div>
</main>