2.1 版本文件
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
// 我的订单
|
||||
require __DIR__ . '/includes/init.php';
|
||||
requireLogin('myorders.php');
|
||||
$pageTitle = __('myorders.title');
|
||||
$user = currentUser();
|
||||
|
||||
$paid = $_GET['paid'] ?? '';
|
||||
|
||||
$stmt = db()->prepare('SELECT * FROM ' . tn('orders') . ' WHERE user_id = ? ORDER BY created_at DESC');
|
||||
$stmt->execute([$user['id']]);
|
||||
$orders = $stmt->fetchAll();
|
||||
|
||||
// 预取每笔订单的商品
|
||||
$orderItems = [];
|
||||
foreach ($orders as $o) {
|
||||
$it = db()->prepare('SELECT * FROM ' . tn('order_items') . ' WHERE order_id = ?');
|
||||
$it->execute([$o['id']]);
|
||||
$orderItems[$o['id']] = $it->fetchAll();
|
||||
}
|
||||
|
||||
require 'includes/header.php';
|
||||
?>
|
||||
<section class="section">
|
||||
<h2 class="sec-title"><i class="fas fa-receipt"></i> <?= __('myorders.title') ?></h2>
|
||||
|
||||
<?php if ($paid): ?>
|
||||
<p class="banner-ok"><i class="fas fa-check-circle"></i> <?= str_replace('{no}', '<strong>' . h($paid) . '</strong>', __('myorders.paid_success')) ?></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (empty($orders)): ?>
|
||||
<p class="empty"><?= str_replace('{link}', '<a href="index.php">' . __('myorders.shop_link') . '</a>', __('myorders.no_orders')) ?></p>
|
||||
<?php else: ?>
|
||||
<div class="order-list">
|
||||
<?php foreach ($orders as $o): ?>
|
||||
<div class="order-card">
|
||||
<div class="oc-head">
|
||||
<span class="oc-no"><?= __('myorders.order_no_label') ?><?= h($o['order_no']) ?></span>
|
||||
<span class="badge-status status-<?= h($o['status']) ?>"><?= orderStatusLabel($o['status']) ?></span>
|
||||
</div>
|
||||
<div class="oc-items">
|
||||
<?php foreach (($orderItems[$o['id']] ?? []) as $it): ?>
|
||||
<div class="oc-row">
|
||||
<span><?= str_replace(['{name}', '{qty}'], [h($it['name']), (int)$it['qty']], __('myorders.items_fmt')) ?></span>
|
||||
<span><?= money($it['subtotal']) ?></span>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<div class="oc-foot">
|
||||
<span class="oc-time"><?= date('Y-m-d H:i', strtotime($o['created_at'])) ?></span>
|
||||
<a href="order_detail.php?id=<?= (int)$o['id'] ?>" class="oc-detail"><i class="fas fa-chevron-right"></i> <?= __('myorders.detail_btn') ?></a>
|
||||
<span class="oc-pay pay-<?= h($o['pay_type']) ?>"><?= payTypeLabel($o['pay_type']) ?><?php $o['pay_type']==='points' ? ' ' . str_replace('{pts}', (int)$o['points_used'], __('myorders.pay_points')) : '' ?></span>
|
||||
<span class="oc-total"><?= __('myorders.total_label') ?><strong><?= money($o['total']) ?></strong></span>
|
||||
</div>
|
||||
<?php if ($o['address']): ?>
|
||||
<div class="oc-addr"><?= __('myorders.shipping_label') ?><?= h($o['contact']) ?> · <?= h($o['address']) ?></div>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($o['period_days'])): ?>
|
||||
<div class="oc-period"><?= __('myorders.period_label') ?><?= periodLabel($o['period_days']) ?> · <?= __('myorders.expire_label') ?><?= expiryText($o['expires_at']) ?></div>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($o['period_days']) && in_array($o['status'], ['shipped','completed'], true)): ?>
|
||||
<div class="oc-renew"><a href="ticket.php?order_id=<?= (int)$o['id'] ?>" class="btn btn-ghost btn-sm"><i class="fas fa-rotate"></i> <?= __('myorders.renew_btn') ?></a></div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</section>
|
||||
<?php require 'includes/footer.php'; ?>
|
||||
Reference in New Issue
Block a user