- Overview page: realtime today vs. same time yesterday, 6 KPI cards with period-over-period deltas, trend (paid / net / refund curves + order count line), category curves, payment method donut, top 10 paid content, conversion / close / refund rates, todos and shortcuts - Date presets, custom range and category filter via GET aksrt/v1/admin/pay-overview (manage_options + wp_rest nonce) - Metrics: paid amount by paid date including later-refunded orders, refunds by refund date, net = paid - refund; CNY only, points and recharge excluded, foreign-currency orders listed separately; integer cents internally - Daily records cached per month in transients (today/yesterday live), invalidated on order status change and on purge - ECharts 6.1.0 subset bundled to assets/js/runtime/libs/echarts-pay.min.js (npm run build:pay-charts), loaded only on the overview page - Split payment-attempt methods out of OrderRepositoryCore into OrderRepositoryAttempts; remove dead get_stats(), cash_decimal(), Order::get_stats() and the old .aksrt-native-links styles Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
30 lines
938 B
JavaScript
30 lines
938 B
JavaScript
/**
|
|
* 打包支付中心概览用的 ECharts 子集。
|
|
*
|
|
* cd assets/admin && npm run build:pay-charts
|
|
*
|
|
* echarts 是 assets/admin 的 devDependency;产物入库,部署时无需安装 node 依赖。
|
|
*/
|
|
import { createRequire } from 'node:module';
|
|
import path from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
const adminDir = path.join(repoRoot, 'assets/admin');
|
|
const require = createRequire(path.join(adminDir, 'package.json'));
|
|
const { build } = require('esbuild');
|
|
|
|
const outfile = path.join(repoRoot, 'assets/js/runtime/libs/echarts-pay.min.js');
|
|
|
|
await build({
|
|
entryPoints: [path.join(repoRoot, 'tools/echarts-pay-overview.entry.mjs')],
|
|
outfile,
|
|
bundle: true,
|
|
format: 'iife',
|
|
minify: true,
|
|
target: ['es2018'],
|
|
legalComments: 'inline',
|
|
nodePaths: [path.join(adminDir, 'node_modules')],
|
|
logLevel: 'info',
|
|
});
|