get_product_detail_view($product_id); } function aksrt_get_product_edit_page_view(int $user_id, int $product_id = 0): array { if ($user_id <= 0 || !class_exists('\AKSRT\Shop\Shop')) { return [ 'allowed' => false, 'is_edit' => false, 'product' => [], ]; } return \AKSRT\Shop\Shop::get_instance()->get_product_edit_view($user_id, $product_id); } function aksrt_get_cart_page_view(int $user_id): array { if ($user_id <= 0 || !class_exists('\AKSRT\Shop\Shop')) { return [ 'payment_methods' => [], 'shipping_methods' => [], 'address_book' => [], 'coupon_enabled' => false, 'currency_symbol' => '¥', 'pending_orders' => [], ]; } return \AKSRT\Shop\Shop::get_instance()->get_cart_page_view($user_id); } function aksrt_get_orders_page_view(int $user_id, int $paged = 1, int $per_page = 20, string $status = ''): array { if ($user_id <= 0 || !class_exists('\AKSRT\Shop\Shop')) { return [ 'items' => [], 'total' => 0, 'total_pages' => 1, 'page' => 1, ]; } return \AKSRT\Shop\Shop::get_instance()->get_order_center_view($user_id, [ 'page' => $paged, 'per_page' => $per_page, 'status' => $status, ]); } function aksrt_get_revenue_page_view(int $user_id): array { $balance = 0.0; $total_earned = 0.0; $total_withdrawn = 0.0; $records = []; if (class_exists('\AKSRT\Credits\Credits')) { $balance = (float) \AKSRT\Credits\Credits::balance($user_id); } if (class_exists('\AKSRT\Payment\Revenue')) { $revenues = \AKSRT\Payment\Revenue::get_instance()->get_user_revenues($user_id, ['limit' => 200]); foreach ($revenues as $rev) { $row = is_array($rev) ? $rev : (array) $rev; $total_earned += (float) ($row['amount'] ?? 0); $records[] = [ 'type' => 'earning', 'title' => (string) ($row['description'] ?? $row['type'] ?? __('创作分成', 'aksrt')), 'amount' => (float) ($row['amount'] ?? 0), 'created_at' => (string) ($row['created_at'] ?? ''), ]; } } if (class_exists('\AKSRT\Payment\Withdrawal')) { $withdrawals = \AKSRT\Payment\Withdrawal::get_instance()->get_user_withdrawals($user_id, ['limit' => 200]); foreach ($withdrawals as $w) { $wrow = is_array($w) ? $w : (array) $w; $total_withdrawn += (float) ($wrow['amount'] ?? 0); $records[] = [ 'type' => 'withdrawal', 'title' => __('提现', 'aksrt'), 'amount' => (float) ($wrow['amount'] ?? 0), 'created_at' => (string) ($wrow['created_at'] ?? ''), 'status' => (string) ($wrow['status'] ?? ''), ]; } } usort($records, static function ($a, $b) { return strcmp($b['created_at'] ?? '', $a['created_at'] ?? ''); }); return [ 'balance' => $balance, 'total_earned' => $total_earned, 'total_withdrawn' => $total_withdrawn, 'records' => $records, ]; }