diff --git a/.gitignore b/.gitignore index 78c0ee49..e5aa37d3 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ !/tests/widget-system/user-features-contract.test.cjs !/tests/widget-system/asset-ledger-contract.test.cjs !/tests/widget-system/financial-flow-contract.test.cjs +!/tests/widget-system/pay-orders-filter-contract.test.cjs !/tests/asset-ledger/ !/tests/asset-ledger/*.php !/tests/visual/docker-compose.zibll.yml diff --git a/src/Admin/Native/PayOrders.php b/src/Admin/Native/PayOrders.php index 45b7d82f..c6ef204f 100644 --- a/src/Admin/Native/PayOrders.php +++ b/src/Admin/Native/PayOrders.php @@ -48,6 +48,20 @@ class PayOrders { return; } + $type_tabs = [ + '' => __('全部类型', 'aksrt'), + \AKSRT\Core\DomainModel::ORDER_PRODUCT_RESOURCE => __('内容付费', 'aksrt'), + \AKSRT\Core\DomainModel::ORDER_PRODUCT_VIP => __('VIP', 'aksrt'), + \AKSRT\Core\DomainModel::ORDER_PRODUCT_RECHARGE => __('充值', 'aksrt'), + \AKSRT\Core\DomainModel::ORDER_PRODUCT_POINTS => __('购买积分', 'aksrt'), + ]; + $method_tabs = [ + '' => __('支付方式', 'aksrt'), + 'balance' => __('余额', 'aksrt'), + 'points' => __('积分', 'aksrt'), + 'gateway' => __('第三方网关支付', 'aksrt'), + ]; + $status = isset($_GET['status']) ? sanitize_key((string) wp_unslash($_GET['status'])) : ''; $search = isset($_GET['s']) ? sanitize_text_field((string) wp_unslash($_GET['s'])) : ''; $product_type = isset($_GET['product_type']) ? sanitize_key((string) wp_unslash($_GET['product_type'])) : ''; @@ -57,6 +71,13 @@ class PayOrders { $page_num = max(1, (int) ($_GET['paged'] ?? 1)); $per_page = 20; + if (!array_key_exists($product_type, $type_tabs)) { + $product_type = ''; + } + if (!array_key_exists($pay_method, $method_tabs)) { + $pay_method = ''; + } + $repo = \AKSRT\Payment\OrderRepository::get_instance(); $args = [ 'limit' => $per_page, @@ -74,8 +95,10 @@ class PayOrders { if ($user_id > 0) { $args['user_id'] = $user_id; } - if ($pay_method !== '') { - $args['payment_method'] = $pay_method; + if ($pay_method === 'gateway') { + $args['payment_methods'] = $this->third_party_gateway_ids(); + } elseif ($pay_method !== '') { + $args['payment_methods'] = [$pay_method]; } $items = $repo->get_orders_admin($args, $search); @@ -86,13 +109,6 @@ class PayOrders { : []; // Type tabs. - $type_tabs = [ - '' => __('全部类型', 'aksrt'), - 'resource' => __('内容付费', 'aksrt'), - 'vip' => __('VIP', 'aksrt'), - 'recharge' => __('充值', 'aksrt'), - 'shop_product' => __('商城商品', 'aksrt'), - ]; echo '
'; // Payment method quick tabs. - $method_tabs = [ - '' => __('全部支付', 'aksrt'), - 'balance' => __('余额', 'aksrt'), - 'points' => __('积分', 'aksrt'), - 'alipay' => __('支付宝', 'aksrt'), - 'wechat' => __('微信', 'aksrt'), - ]; echo '