fix(settings): 充值套餐选项为数组时不再触发数组转字符串警告

get_payment_recharge_settings() 原先先对 pay_balance_product 做强转、再判
is_array:当该选项以数组保存时会触发 PHP "Array to string conversion" 警告,
且强转结果随即被覆盖,属无效语句。改为按类型二选一转换,输出行为不变。
This commit is contained in:
2026-09-17 10:14:21 +08:00
parent 9fffe7b590
commit 537fb97f48
+6 -4
View File
@@ -81,10 +81,12 @@ class PaymentRuntime {
public static function get_payment_recharge_settings(): array {
$settings = Settings::get_all();
$packages = (string) ($settings['pay_balance_product'] ?? "30|30|入门包\n98|108|推荐包");
if (is_array($settings['pay_balance_product'] ?? null)) {
$packages = self::format_product_lines((array) $settings['pay_balance_product']);
}
// 该选项可能存字符串(旧格式)或数组(结构化保存):先判类型再转换,
// 避免对数组做强转触发 "Array to string conversion" 警告。
$raw_packages = $settings['pay_balance_product'] ?? null;
$packages = is_array($raw_packages)
? self::format_product_lines($raw_packages)
: (string) ($raw_packages ?? "30|30|入门包\n98|108|推荐包");
$desc = sanitize_textarea_field((string) ($settings['pay_balance_desc'] ?? ''));
return [