fix(vip): let 积分兑换说明 support HTML like the reference theme
The points-exchange desc was stripped at all three layers: no sanitize_type on the schema fields (save ran sanitize_textarea_field), the runtime re-ran the same strip, and the points modal escaped it with esc_html. The reference theme declares sanitize=false and concatenates the value raw into the modal. - Schema (SPA + PHP): sanitize_type html, rows 2, help text noting HTML support - PaymentRuntime: output via wp_kses_post - VipServiceModal points modal: render via wp_kses_post instead of esc_html Verification: new contract test covers schema/runtime/modal layers; node --test tests/**/*.test.cjs 641/641 pass; php -l clean on both PHP files.
This commit is contained in:
1 parent
2e2558e5ce
commit
dcb80cff6e
5 files changed
+18
-4
No files matched your search
@@ -261,7 +261,7 @@ class PaymentRuntime {
|
||||
],
|
||||
'points_exchange' => [
|
||||
'enabled' => !empty($settings['pay_vip_points_exchange_s']),
|
||||
'desc' => sanitize_textarea_field((string) ($settings['pay_vip_points_exchange_desc'] ?? '')),
|
||||
'desc' => wp_kses_post((string) ($settings['pay_vip_points_exchange_desc'] ?? '')),
|
||||
'packages_raw' => sanitize_textarea_field((string) ($settings['payment_vip_points_packages'] ?? "1|500|30|积分月卡\n1|5000|0|积分永久")),
|
||||
],
|
||||
];
|
||||
|
||||
Reference in new issue
Block a user