*/ private function pages(): array { return [ 'overview' => [ 'slug' => self::MENU_SLUG, 'title' => __('概览', 'aksrt'), 'callback' => [$this, 'render_overview_page'], ], 'orders' => [ 'slug' => 'aksrt_orders', 'title' => __('订单', 'aksrt'), 'callback' => static function (): void { if (class_exists('AKSRT_Admin_Pay_Orders')) { AKSRT_Admin_Pay_Orders::get_instance()->render_orders_page(); return; } wp_die(esc_html__('订单模块未初始化。', 'aksrt')); }, ], 'products' => [ 'slug' => 'aksrt_pay_products', 'title' => __('付费文章', 'aksrt'), 'callback' => static function (): void { if (class_exists('AKSRT_Admin_Pay_Products')) { AKSRT_Admin_Pay_Products::get_instance()->render_products_page(); return; } wp_die(esc_html__('付费文章模块未初始化。', 'aksrt')); }, ], 'shipping' => [ 'slug' => 'aksrt_shipping', 'title' => __('发货及物流', 'aksrt'), 'callback' => static function (): void { if (class_exists('AKSRT_Admin_Pay_Shipping')) { AKSRT_Admin_Pay_Shipping::get_instance()->render_shipping_page(); return; } wp_die(esc_html__('物流模块未初始化。', 'aksrt')); }, ], 'after_sale' => [ 'slug' => 'aksrt_after_sale', 'title' => __('售后管理', 'aksrt'), 'callback' => static function (): void { if (class_exists('AKSRT_Admin_Pay_After_Sale')) { AKSRT_Admin_Pay_After_Sale::get_instance()->render_after_sale_page(); return; } wp_die(esc_html__('售后模块未初始化。', 'aksrt')); }, ], 'coupons' => [ 'slug' => 'aksrt_coupons', 'title' => __('优惠码', 'aksrt'), 'callback' => static function (): void { if (class_exists('AKSRT_Admin_Pay_Coupons')) { AKSRT_Admin_Pay_Coupons::get_instance()->render_page(); return; } wp_die(esc_html__('优惠码模块未初始化。', 'aksrt')); }, ], 'charge_cards' => [ 'slug' => 'aksrt_charge_cards', 'title' => __('卡密管理', 'aksrt'), 'callback' => static function (): void { if (class_exists('AKSRT_Admin_Pay_Charge_Cards')) { AKSRT_Admin_Pay_Charge_Cards::get_instance()->render_charge_cards_page(); return; } wp_die(esc_html__('卡密模块未初始化。', 'aksrt')); }, ], 'income' => [ 'slug' => 'aksrt_income', 'title' => __('创作分成', 'aksrt'), 'callback' => static function (): void { if (class_exists('AKSRT_Admin_Pay_Income')) { AKSRT_Admin_Pay_Income::get_instance()->render_income_page(); return; } wp_die(esc_html__('分成模块未初始化。', 'aksrt')); }, ], 'rebate' => [ 'slug' => 'aksrt_rebate', 'title' => __('推广返佣', 'aksrt'), 'callback' => static function (): void { if (class_exists('AKSRT_Admin_Pay_Rebate')) { AKSRT_Admin_Pay_Rebate::get_instance()->render_rebate_page(); return; } wp_die(esc_html__('返佣模块未初始化。', 'aksrt')); }, ], 'withdraw' => [ 'slug' => 'aksrt_withdraw', 'title' => __('提现审核', 'aksrt'), 'callback' => static function (): void { if (class_exists('AKSRT_Admin_Pay_Withdrawals')) { AKSRT_Admin_Pay_Withdrawals::get_instance()->render_withdrawals_page(); return; } wp_die(esc_html__('提现模块未初始化。', 'aksrt')); }, ], ]; } public function register_menus(): void { if (!current_user_can(self::CAPABILITY)) { return; } add_menu_page( __('支付中心', 'aksrt'), __('支付中心', 'aksrt'), self::CAPABILITY, self::MENU_SLUG, [$this, 'render_overview_page'], 'dashicons-cart', 36 ); foreach ($this->pages() as $page) { add_submenu_page( self::MENU_SLUG, $page['title'], $page['title'], self::CAPABILITY, $page['slug'], $page['callback'] ); } } public function pending_notices(): void { if (!current_user_can(self::CAPABILITY)) { return; } $page = isset($_GET['page']) ? sanitize_key((string) wp_unslash($_GET['page'])) : ''; if ($page !== 'aksrt_withdraw' && class_exists('AKSRT_Withdrawal')) { $pending = (int) AKSRT_Withdrawal::get_instance()->get_count(['status' => AKSRT_Withdrawal::STATUS_PENDING]); if ($pending > 0) { $url = admin_url('admin.php?page=aksrt_withdraw&status=pending'); echo '
' . esc_html(sprintf( /* translators: %d: pending withdrawal count */ __('您有 %d 个提现申请待处理', 'aksrt'), $pending )) . '
'; echo ''; echo '' . esc_html(sprintf( /* translators: %d: pending after-sale count */ __('您有 %d 个售后工单待处理', 'aksrt'), $pending_as )) . '
'; echo ''; echo '' . esc_html__('运营数据入口(对齐 zibll 商城中心)。配置项仍在 AKSRT 主题设置 SPA。', 'aksrt') . '
'; echo '' . esc_html__('打开支付配置(SPA)', 'aksrt') . '
'; $this->render_footer(); } private function stat_card(string $label, string $value, string $url): void { echo ''; echo '