Files
wordpress-theme-aksrt/templates/pages/page-user-auth.php
T

204 lines
9.6 KiB
PHP

<?php
/**
* Template Name: AKSRT - 用户身份认证
* Template Post Type: page
*
* Zibll pages/user-auth.php 1:1 shell on aksrt_user_verify_* storage.
*
* @package AKSRT
*/
defined('ABSPATH') || exit;
use AKSRT\User\AuthApply;
$settings = class_exists(AuthApply::class) ? AuthApply::settings() : ['enabled' => true, 'allow_apply' => true];
$user_id = get_current_user_id();
$status = $user_id && class_exists(AuthApply::class) ? AuthApply::get_status($user_id) : '';
$info = $user_id && class_exists(AuthApply::class) ? AuthApply::get_auth_info($user_id) : [];
$apply = $user_id && class_exists(AuthApply::class) ? AuthApply::get_apply_payload($user_id) : [];
$login_url = function_exists('aksrt_get_login_url') ? aksrt_get_login_url(aksrt_get_user_auth_page_url()) : wp_login_url(aksrt_get_user_auth_page_url());
get_header();
?>
<main class="container page-template-user-auth">
<div class="content-wrap">
<div class="content-layout">
<?php while (have_posts()) : the_post(); ?>
<div class="nopw-sm box-body theme-box radius8 main-bg main-shadow">
<article class="article wp-posts-content">
<?php
the_content();
wp_link_pages([
'before' => '<p class="text-center post-nav-links radius8 padding-6">',
'after' => '</p>',
]);
?>
</article>
</div>
<?php endwhile; ?>
<div class="theme-box radius8 main-bg main-shadow relative-h aksrt-user-auth-panel">
<?php if (empty($settings['enabled'])) : ?>
<div class="colorful-bg c-blue flex jc" style="min-height:120px;align-items:center;justify-content:center;">
<div class="text-center">
<div class="em2x"><i class="fa fa-id-badge" aria-hidden="true"></i></div>
<div class="mt10 em12"><?php esc_html_e('身份认证功能未启用', 'aksrt'); ?></div>
</div>
</div>
<?php elseif ($status === 'verified') : ?>
<?php
$name = (string) ($info['name'] ?? ($apply['name'] ?? __('官方认证', 'aksrt')));
$desc = (string) ($info['desc'] ?? ($apply['desc'] ?? ''));
$time = (string) ($info['time'] ?? get_user_meta($user_id, 'aksrt_user_verify_reviewed_at', true));
?>
<div class="colorful-bg c-blue flex ac jse aksrt-user-auth-panel__verified" style="padding:30px 16px;gap:20px;flex-wrap:wrap;">
<div class="text-center flex0">
<div class="em3x"><i class="fa fa-id-badge" aria-hidden="true"></i></div>
<div class="mt10 padding-w10"><?php esc_html_e('我的认证信息', 'aksrt'); ?></div>
</div>
<div class="box-body">
<div><i class="fa fa-check-circle" aria-hidden="true"></i> <b class="ml3"><?php echo esc_html($name); ?></b></div>
<?php if ($desc !== '') : ?>
<div class="muted-2-color mt10"><?php echo esc_html($desc); ?></div>
<?php endif; ?>
<?php if ($time !== '') : ?>
<div class="muted-2-color mt10"><?php echo esc_html(sprintf(__('认证时间:%s', 'aksrt'), $time)); ?></div>
<?php endif; ?>
</div>
</div>
<?php elseif (!$user_id) : ?>
<div class="colorful-bg c-blue flex jc" style="min-height:120px;align-items:center;justify-content:center;padding:24px;">
<div class="text-center">
<div class="em2x"><i class="fa fa-id-badge" aria-hidden="true"></i></div>
<div class="em12 padding-w10 mt10"><?php esc_html_e('申请身份认证', 'aksrt'); ?></div>
<p class="mt20">
<a class="but c-blue padding-lg signin-loader" href="<?php echo esc_url($login_url); ?>">
<i class="fa fa-sign-in mr6" aria-hidden="true"></i><?php esc_html_e('登录后申请', 'aksrt'); ?>
</a>
</p>
</div>
</div>
<?php elseif ($status === 'pending') : ?>
<div class="box-body" style="padding:24px;">
<div class="c-red mb10"><?php esc_html_e('您的申请正在审核中,请耐心等待', 'aksrt'); ?></div>
<div><i class="fa fa-id-badge" aria-hidden="true"></i> <b class="ml3"><?php echo esc_html((string) ($apply['name'] ?? '')); ?></b></div>
<?php if (!empty($apply['desc'])) : ?>
<div class="muted-2-color mt10"><?php echo esc_html((string) $apply['desc']); ?></div>
<?php endif; ?>
<?php if (!empty($apply['msg'])) : ?>
<div class="muted-2-color mt10"><?php echo esc_html(sprintf(__('申请说明:%s', 'aksrt'), (string) $apply['msg'])); ?></div>
<?php endif; ?>
<?php if (!empty($apply['time'])) : ?>
<div class="muted-2-color mt10"><?php echo esc_html(sprintf(__('申请时间:%s', 'aksrt'), (string) $apply['time'])); ?></div>
<?php endif; ?>
<?php if (!empty($apply['img']) && is_array($apply['img'])) : ?>
<div class="mt20 aksrt-user-auth-panel__imgs">
<?php foreach ($apply['img'] as $img_url) : ?>
<div class="preview-item"><img src="<?php echo esc_url((string) $img_url); ?>" alt=""></div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
<?php elseif (empty($settings['allow_apply'])) : ?>
<div class="box-body" style="padding:24px;">
<div class="c-red"><i class="fa mr6 fa-info-circle" aria-hidden="true"></i><?php esc_html_e('抱歉!暂时不能申请身份认证', 'aksrt'); ?></div>
<?php if (!empty($settings['disable_desc'])) : ?>
<div class="muted-color mt20"><?php echo wp_kses_post(nl2br(esc_html((string) $settings['disable_desc']))); ?></div>
<?php endif; ?>
</div>
<?php else : ?>
<?php
$blocked_level = false;
$limit = (int) ($settings['limit_level'] ?? 0);
if ($limit > 0 && class_exists('\AKSRT\User\Level')) {
$lv = (int) \AKSRT\User\Level::get_level($user_id);
if ($lv < $limit) {
$blocked_level = true;
}
}
?>
<?php if ($blocked_level) : ?>
<div class="box-body" style="padding:24px;">
<div class="c-red"><i class="fa mr6 fa-info-circle" aria-hidden="true"></i><?php esc_html_e('抱歉!您暂时不能申请身份认证', 'aksrt'); ?></div>
<div class="muted-color mt20">
<?php
printf(
/* translators: %d level */
esc_html__('由于您的等级过低,请升级到 LV.%d 后再来申请', 'aksrt'),
$limit
);
?>
</div>
</div>
<?php else : ?>
<div class="colorful-bg c-blue flex ac" style="height:100px;justify-content:center;gap:10px;">
<div class="em2x"><i class="fa fa-id-badge" aria-hidden="true"></i></div>
<div class="em12 padding-w10"><?php esc_html_e('申请身份认证', 'aksrt'); ?></div>
</div>
<div class="box-body" style="padding:20px;">
<?php if ($status === 'rejected') : ?>
<div class="c-red mb15">
<?php esc_html_e('上次申请未通过,可修改资料后重新提交。', 'aksrt'); ?>
<?php
$reason = (string) get_user_meta($user_id, AuthApply::REASON_META, true);
if ($reason !== '') {
echo '<div class="muted-2-color mt6">' . esc_html(sprintf(__('原因:%s', 'aksrt'), $reason)) . '</div>';
}
?>
</div>
<?php endif; ?>
<?php if (!empty($settings['desc'])) : ?>
<div class="muted-color mb20"><?php echo wp_kses_post(nl2br(esc_html((string) $settings['desc']))); ?></div>
<?php endif; ?>
<form class="aksrt-user-auth-form form-upload" enctype="multipart/form-data">
<?php if (!empty($settings['types'])) : ?>
<div class="mb20">
<div class="em09 muted-2-color mb6"><?php esc_html_e('认证类型', 'aksrt'); ?></div>
<select class="form-control" name="type">
<?php foreach ($settings['types'] as $t) : ?>
<option value="<?php echo esc_attr($t['slug']); ?>"><?php echo esc_html($t['label']); ?></option>
<?php endforeach; ?>
</select>
</div>
<?php endif; ?>
<div class="mb20">
<div class="em09 muted-2-color mb6"><?php esc_html_e('认证身份', 'aksrt'); ?></div>
<input type="text" class="form-control" name="name" required placeholder="<?php esc_attr_e('请输入身份名称', 'aksrt'); ?>" value="<?php echo esc_attr((string) ($apply['name'] ?? '')); ?>">
</div>
<div class="mb20">
<div class="em09 muted-2-color mb6"><?php esc_html_e('身份简介', 'aksrt'); ?></div>
<textarea class="form-control" name="desc" rows="2" placeholder="<?php esc_attr_e('请输入申请的身份简介', 'aksrt'); ?>"><?php echo esc_textarea((string) ($apply['desc'] ?? '')); ?></textarea>
</div>
<div class="mb20">
<div class="em09 muted-2-color mb6"><?php esc_html_e('申请说明', 'aksrt'); ?></div>
<textarea class="form-control" name="msg" rows="2" placeholder="<?php esc_attr_e('请输入申请缘由及说明', 'aksrt'); ?>"><?php echo esc_textarea((string) ($apply['msg'] ?? '')); ?></textarea>
</div>
<div class="mb20">
<div class="em09 muted-2-color mb6"><?php esc_html_e('证明材料', 'aksrt'); ?></div>
<input type="file" name="image[]" accept="image/gif,image/jpeg,image/jpg,image/png" multiple>
<div class="px12 muted-2-color mt6"><?php esc_html_e('最多 3 张图片', 'aksrt'); ?></div>
</div>
<?php wp_nonce_field('aksrt_user_auth_apply', '_wpnonce', false); ?>
<input type="hidden" name="action" value="aksrt_user_auth_apply">
<button type="submit" class="but c-blue padding-lg btn-block">
<i class="fa fa-check" aria-hidden="true"></i> <?php esc_html_e('确认提交', 'aksrt'); ?>
</button>
</form>
</div>
<?php endif; ?>
<?php endif; ?>
</div>
<?php
if (comments_open() || get_comments_number()) {
comments_template();
}
?>
</div>
</div>
<?php get_sidebar(); ?>
</main>
<?php
get_footer();