joe主题再续前缘1.4版增加后台订单统计总额

joe主题再续前缘1.4版增加后台订单统计总额

admin
6小时前发布

title: Joe主题再续前缘1.4版:后台订单统计总额功能详解
date: 2025-09-18 12:00:00
tags: [joe主题, 再续前缘, 订单统计, typecho]
category: 主题教程

cover: https://www.3cym.com/usr/uploads/2025/09/2409291984.jpg

功能一句话

后台「订单管理」顶部实时显示:总订单数、已支付金额、未支付金额等 6 项关键数据,无需插件,开箱即用


效果预览

后台订单统计总额展示图


核心代码(已内置)


📎 点击查看 /admin/orders.php 完整源码(已折叠)

<?php
require_once TYPECHO_ADMIN_ROOT . 'header.php';
require_once TYPECHO_ADMIN_ROOT . 'menu.php';
require_once __DIR__ . '/widget.php';

$orders_url = '../themes/' . THEME_NAME . '/admin/orders.php';
$panel_url  = $options->adminUrl . 'extending.php?panel=' . urlencode($orders_url);

/* ===== 一次性读表 ===== */
$db   = Typecho_Db::get();
$rows = $db->fetchAll($db->select()->from('table.orders'));

$totalOrders = $totalPaidOrders = $totalUnpaidOrders = 0;
$totalAmount = $totalPaidAmount = $totalUnpaidAmount = 0;   // 单位:分

foreach ($rows as $r) {
    $totalOrders++;
    $money  = intval(round(floatval($r['money'])   * 100));
    $pay    = intval(round(floatval($r['pay_price']) * 100));
    $status = (int)$r['status'];   // 1 已支付,0 未支付

    $totalAmount += $money;
    if ($status === 1) {
        $totalPaidOrders++;
        $totalPaidAmount += $pay;
    } else {
        $totalUnpaidOrders++;
        $totalUnpaidAmount += ($money - $pay);
    }
}

/* ===== 转回元 ===== */
$totalAmountYuan       = number_format($totalAmount / 100, 2, '.', '');
$totalPaidAmountYuan   = number_format($totalPaidAmount / 100, 2, '.', '');
$totalUnpaidAmountYuan = number_format($totalUnpaidAmount / 100, 2, '.', '');

$orders = Typecho\Widget::widget('JoeOrders\Widget');
?>

<style>
.stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:15px;padding:10px;background:#f9f9f9;border:1px solid #ddd;font-size:13px}
.stats>div{flex:1 1 110px;text-align:center}
.stats strong{display:block;font-size:15px;color:#333}
</style>

<!-- 统计卡片 -->
<div class="stats">
    <div>总订单 <strong><?php echo $totalOrders; ?></strong></div>
    <div>已支付订单 <strong><?php echo $totalPaidOrders; ?></strong></div>
    <div>未支付订单 <strong><?php echo $totalUnpaidOrders; ?></strong></div>
    <div>订单总额 <strong><?php echo $totalAmountYuan; ?>元</strong></div>
    <div>已支付金额 <strong><?php echo $totalPaidAmountYuan; ?>元</strong></div>
    <div>未支付金额 <strong><?php echo $totalUnpaidAmountYuan; ?>元</strong></div>
</div>

使用零步骤

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
OωO
取消 登录评论
SSL