fix(settings): 充值套餐选项为数组时不再触发数组转字符串警告
get_payment_recharge_settings() 原先先对 pay_balance_product 做强转、再判 is_array:当该选项以数组保存时会触发 PHP "Array to string conversion" 警告, 且强转结果随即被覆盖,属无效语句。改为按类型二选一转换,输出行为不变。
This commit is contained in:
@@ -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 [
|
||||
|
||||
Reference in New Issue
Block a user