Files
wordpress-theme-aksrt/inc/helpers/user-center-renderers/profile-form.php
T
kate522 487681a6c4 feat(identity): tip QR upload, metrics engine, comment moderate caps
Close identity 1:1 gaps after p1: user-center weixin/alipay tip QR
upload+save, AKSRT_User_Metrics counters for medal get_type and level
XP bridges, forum/revenue/signin hooks, comment moderate via user_caps,
and clearer free-task deep links/status CTAs.
2026-07-17 01:52:35 +08:00

92 lines
4.5 KiB
PHP

<?php
/**
* User center profile form part (orchestrator).
*
* @package AKSRT
*/
defined('ABSPATH') || exit;
$context = is_array($args['context'] ?? null) ? $args['context'] : [];
extract($context, EXTR_SKIP); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
?>
<form class="profile-form" id="profile-form" method="post">
<?php wp_nonce_field('aksrt_profile_save', '_profile_nonce'); ?>
<input type="hidden" name="action" value="aksrt_save_profile">
<input type="hidden" name="user_id" value="<?php echo (int) $user_id; ?>">
<div class="widget-card">
<h3 class="widget-title"><?php esc_html_e('昵称', 'aksrt'); ?></h3>
<input type="text" name="nickname" id="profile-nickname"
value="<?php echo esc_attr($target_user->display_name); ?>"
class="profile-input" maxlength="50" required>
<p class="profile-hint"><?php esc_html_e('修改后会同步更新个人主页地址', 'aksrt'); ?></p>
</div>
<div class="widget-card">
<h3 class="widget-title"><?php esc_html_e('个人简介', 'aksrt'); ?></h3>
<textarea name="description" id="profile-bio" class="profile-input profile-textarea"
rows="4" maxlength="500" placeholder="<?php esc_attr_e('介绍一下自己…', 'aksrt'); ?>"><?php echo esc_textarea($target_user->description); ?></textarea>
<p class="profile-hint"><?php esc_html_e('显示在你的公开用户主页上,最多 500 字', 'aksrt'); ?></p>
</div>
<?php require __DIR__ . '/form-contacts.php'; ?>
<?php
$rewards_on = function_exists('aksrt_rewards_enabled') ? aksrt_rewards_enabled() : false;
$rw = (string) get_user_meta((int) $user_id, 'aksrt_rewards_weixin', true);
$ra = (string) get_user_meta((int) $user_id, 'aksrt_rewards_alipay', true);
$rw_url = '';
$ra_url = '';
if (function_exists('aksrt_get_user_rewards_img_urls')) {
$urls = aksrt_get_user_rewards_img_urls((int) $user_id);
$rw_url = (string) ($urls['weixin'] ?? '');
$ra_url = (string) ($urls['alipay'] ?? '');
}
?>
<?php if ($rewards_on) : ?>
<div class="widget-card">
<h3 class="widget-title"><?php esc_html_e('打赏收款码', 'aksrt'); ?></h3>
<p class="profile-hint"><?php esc_html_e('上传微信/支付宝收款码后,读者可在文章与作者卡赞赏你。留空则不显示赞赏按钮。', 'aksrt'); ?></p>
<div class="aksrt-reward-upload-grid">
<div class="aksrt-reward-upload">
<label class="aksrt-reward-upload__label"><?php esc_html_e('微信收款码', 'aksrt'); ?></label>
<div class="aksrt-reward-upload__preview" data-reward-preview="weixin">
<?php if ($rw_url !== '') : ?>
<img src="<?php echo esc_url($rw_url); ?>" alt="" />
<?php else : ?>
<span class="muted-2-color em09"><?php esc_html_e('未上传', 'aksrt'); ?></span>
<?php endif; ?>
</div>
<input type="hidden" name="rewards_weixin" id="rewards-weixin" value="<?php echo esc_attr($rw); ?>" />
<input type="file" id="rewards-weixin-file" accept="image/*" class="aksrt-reward-upload__file" data-reward-kind="weixin" />
<button type="button" class="btn-primary btn-sm" data-reward-upload="weixin"><?php esc_html_e('选择图片', 'aksrt'); ?></button>
<button type="button" class="btn-sm" data-reward-clear="weixin"><?php esc_html_e('清除', 'aksrt'); ?></button>
</div>
<div class="aksrt-reward-upload">
<label class="aksrt-reward-upload__label"><?php esc_html_e('支付宝收款码', 'aksrt'); ?></label>
<div class="aksrt-reward-upload__preview" data-reward-preview="alipay">
<?php if ($ra_url !== '') : ?>
<img src="<?php echo esc_url($ra_url); ?>" alt="" />
<?php else : ?>
<span class="muted-2-color em09"><?php esc_html_e('未上传', 'aksrt'); ?></span>
<?php endif; ?>
</div>
<input type="hidden" name="rewards_alipay" id="rewards-alipay" value="<?php echo esc_attr($ra); ?>" />
<input type="file" id="rewards-alipay-file" accept="image/*" class="aksrt-reward-upload__file" data-reward-kind="alipay" />
<button type="button" class="btn-primary btn-sm" data-reward-upload="alipay"><?php esc_html_e('选择图片', 'aksrt'); ?></button>
<button type="button" class="btn-sm" data-reward-clear="alipay"><?php esc_html_e('清除', 'aksrt'); ?></button>
</div>
</div>
</div>
<?php endif; ?>
<div class="profile-form__submit">
<button type="submit" class="btn-primary btn-lg" id="profile-save-btn">
<?php esc_html_e('保存修改', 'aksrt'); ?>
</button>
<span id="profile-save-msg" class="profile-form__submit-msg"></span>
</div>
</form>