fix(vip): 会员弹窗支付方式渠道对齐 Zibll initiate_pay_input 组件
支付方式 UI 不再自实现(uc-vip-shop__method 文本 radio),改为与其他 两个弹窗(充值/积分)完全同源的 Zibll zibpay_get_initiate_pay_input 组件结构: - 支付方式行:.payment-method-radio.hollow-radio + logo 图 + data-for/data-value 选中模型(多渠道时展示「请选择支付方式」) - 我的余额盒:data-controller == balance 条件显隐,展示货币符号与余额 (视图模型透传 wallet_balance / currency_mark) - 卡密盒:Zibll password_box 同构(mb10 padding-h10 padding-w6 + desc muted-box + form-control 卡号/卡密输入) - hidden payment_method + initiate-pay 按钮类(mt6 but jb-red btn-block radius) - 服务端 payment_method_logo_url() 统一映射 pay-*-logo.svg - 显隐统一走 data-controller(==/!=)通用匹配,卡密选中隐藏 .charge-box - 清理 uc-vip-shop__method* 死样式与旧 change 监听;契约测试同步锁定 (.gitignore 白名单补 card-pass-modal-redeem.test.cjs)
This commit is contained in:
@@ -64,6 +64,15 @@ trait VipServiceModal {
|
||||
}
|
||||
$points_exchange = is_array($catalog['points_exchange'] ?? null) ? $catalog['points_exchange'] : [];
|
||||
$methods = is_array($catalog['payment_methods'] ?? null) ? $catalog['payment_methods'] : [];
|
||||
// 支付方式 logo(与充值/积分弹窗的 payment-method-radio 组件同源)。
|
||||
$methods = array_map(function ($m) {
|
||||
$id = sanitize_key((string) ($m['id'] ?? ''));
|
||||
return [
|
||||
'id' => $id,
|
||||
'name' => (string) ($m['name'] ?? $id),
|
||||
'logo' => $this->payment_method_logo_url($id),
|
||||
];
|
||||
}, $methods);
|
||||
$card_pass = is_array($catalog['card_pass'] ?? null)
|
||||
? array_merge(['enabled' => false, 'desc' => '', 'only_password' => false], $catalog['card_pass'])
|
||||
: ['enabled' => false, 'desc' => '', 'only_password' => false];
|
||||
@@ -111,6 +120,7 @@ trait VipServiceModal {
|
||||
'currency_name' => (string) ($catalog['currency_name'] ?? ''),
|
||||
'level_packages' => $groups,
|
||||
'points_exchange' => $points_exchange,
|
||||
'wallet_balance' => (string) ($catalog['wallet_balance'] ?? '0.00'),
|
||||
'vip_url' => (string) ($catalog['vip_url'] ?? ''),
|
||||
],
|
||||
'member' => [
|
||||
@@ -128,6 +138,7 @@ trait VipServiceModal {
|
||||
'levels' => $level_view,
|
||||
'payment_methods' => $methods,
|
||||
'card_pass' => $card_pass,
|
||||
'currency_mark' => (string) (\AKSRT\Settings\Settings::get_payment_gateway_settings()['currency']['mark'] ?? '¥'),
|
||||
'allowed_actions' => [
|
||||
'purchase' => $package_ids !== [] && $methods !== [],
|
||||
'renew' => $has_renew && $methods !== [],
|
||||
@@ -146,6 +157,24 @@ trait VipServiceModal {
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付方式 logo 映射(assets/img/pay-*-logo.svg,与充值/积分弹窗一致)。
|
||||
*/
|
||||
private function payment_method_logo_url(string $id): string {
|
||||
$logos = [
|
||||
'balance' => 'pay-balance-logo.svg',
|
||||
'alipay' => 'pay-alipay-logo.svg',
|
||||
'epay_alipay' => 'pay-alipay-logo.svg',
|
||||
'wechatpay' => 'pay-wechat-logo.svg',
|
||||
'epay_wxpay' => 'pay-wechat-logo.svg',
|
||||
'paypal' => 'pay-paypal-logo.svg',
|
||||
'stripe' => 'pay-stripe-logo.svg',
|
||||
'card_pass' => 'pay-card-pass-logo.svg',
|
||||
];
|
||||
$file = $logos[$id] ?? '';
|
||||
return $file === '' ? '' : esc_url_raw(get_template_directory_uri() . '/assets/img/' . $file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mini hover card for header (legacy aksrtpay_get_vip_card).
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user