false, 'akismet_enabled' => false, 'akismet_site_url' => '', 'akismet_blog_lang' => 'zh-CN', 'akismet_api_key' => '', 'ai_enabled' => false, 'ai_provider' => 'baidu', 'baidu_api_key' => '', 'baidu_secret_key' => '', 'baidu_token_url' => 'https://aip.baidubce.com/oauth/2.0/token', 'baidu_censor_url' => 'https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined', 'baidu_img_censor_url' => 'https://aip.baidubce.com/rest/2.0/solution/v1/img_censor/v2/user_defined', 'ai_moderate_comments' => true, 'ai_moderate_background' => true, 'auto_approve_low_risk' => true, 'auto_reject_high_risk' => true, 'low_risk_max_score' => 35, 'high_risk_min_score' => 80, 'blocked_keywords' => '', 'rate_limit_enabled' => false, 'rate_limit_min_interval' => 8, 'rate_limit_max_per_hour' => 15, 'geoip_enabled' => false, 'geoip_provider' => 'ipapi', 'geoip_api_key' => '', 'geoip_block_countries' => [], ]); } /** * 获取 IP 归属地设置 */ public static function get_ip_geo_settings(): array { $settings = AKSRT_Settings::get_all(); $provider = sanitize_key((string) ($settings['ip_addr_sdk'] ?? ($settings['ip_geo_provider'] ?? 'null'))); $allowed = ['polling', 'qq', 'amap', 'null']; if (!in_array($provider, $allowed, true)) { $provider = 'null'; } $display_raw = $settings['ip_geo_display'] ?? ['comment']; $display = is_array($display_raw) ? $display_raw : [$display_raw]; $format = sanitize_key((string) ($settings['ip_geo_format'] ?? 'province_city')); if (!in_array($format, ['province_city', 'province', 'country_province'], true)) { $format = 'province_city'; } return [ 'ip_geo_enabled' => !empty($settings['ip_geo_enabled']), 'ip_addr_sdk' => $provider, 'ip_geo_provider' => $provider, 'ip_geo_cache_ttl' => max(3600, (int) ($settings['ip_geo_cache_ttl'] ?? 86400)), 'ip_geo_display' => $display, 'ip_geo_format' => $format, 'ip_geo_fallback_text' => (string) ($settings['ip_geo_fallback_text'] ?? ''), 'ip_addr_sdk_qq_appkey' => (string) ($settings['ip_addr_sdk_qq_appkey'] ?? ''), 'ip_addr_sdk_qq_secretkey' => (string) ($settings['ip_addr_sdk_qq_secretkey'] ?? ''), 'ip_addr_sdk_amap_appkey' => (string) ($settings['ip_addr_sdk_amap_appkey'] ?? ''), 'ip_addr_sdk_amap_secretkey' => (string) ($settings['ip_addr_sdk_amap_secretkey'] ?? ''), 'ip_geo_verified' => !empty($settings['ip_geo_verified']), ]; } /** * 获取内容审核设置 */ public static function get_content_audit_settings(): array { $settings = AKSRT_Settings::get_all(); $provider = sanitize_key((string) ($settings['content_audit_provider'] ?? 'baidu')); $allowed = ['baidu', 'null']; if (!in_array($provider, $allowed, true)) { $provider = 'baidu'; } $on_failure = sanitize_key((string) ($settings['content_audit_on_failure'] ?? 'allow')); if (!in_array($on_failure, ['allow', 'block'], true)) { $on_failure = 'allow'; } return [ 'content_audit_enabled' => !empty($settings['content_audit_enabled']), 'content_audit_provider' => $provider, 'content_audit_api_key' => (string) ($settings['content_audit_api_key'] ?? ''), 'content_audit_api_secret' => (string) ($settings['content_audit_api_secret'] ?? ''), 'content_audit_text_enabled' => !isset($settings['content_audit_text_enabled']) || !empty($settings['content_audit_text_enabled']), 'content_audit_image_enabled' => !empty($settings['content_audit_image_enabled']), 'content_audit_on_failure' => $on_failure, 'content_audit_log_enabled' => !isset($settings['content_audit_log_enabled']) || !empty($settings['content_audit_log_enabled']), 'content_audit_baidu_token_url' => (string) ($settings['content_audit_baidu_token_url'] ?? ''), 'content_audit_baidu_text_url' => (string) ($settings['content_audit_baidu_text_url'] ?? ''), 'content_audit_baidu_img_url' => (string) ($settings['content_audit_baidu_img_url'] ?? ''), 'content_audit_verified' => !empty($settings['content_audit_verified']), ]; } /** * 获取搜索引擎推送设置 */ public static function get_search_push_settings(): array { $settings = AKSRT_Settings::get_all(); $enabled = !empty($settings['baidu_push_enabled']) || !empty($settings['seo_baidu_push']); $token = (string) ($settings['baidu_push_token'] ?? ''); if ($token === '' && !empty($settings['seo_baidu_token'])) { $token = (string) $settings['seo_baidu_token']; } return [ 'baidu_push_enabled' => $enabled, 'baidu_push_token' => $token, 'baidu_push_auto' => !isset($settings['baidu_push_auto']) || !empty($settings['baidu_push_auto']), 'baidu_push_on_publish' => !isset($settings['baidu_push_on_publish']) || !empty($settings['baidu_push_on_publish']), 'baidu_push_on_update' => !empty($settings['baidu_push_on_update']), 'baidu_push_batch_size' => max(1, min(500, (int) ($settings['baidu_push_batch_size'] ?? 50))), 'baidu_push_log_enabled' => !isset($settings['baidu_push_log_enabled']) || !empty($settings['baidu_push_log_enabled']), 'baidu_push_verified' => !empty($settings['baidu_push_verified']), 'xzh_on' => !empty($settings['xzh_on']), 'xzh_appid' => (string) ($settings['xzh_appid'] ?? ''), 'xzh_render_tail' => !isset($settings['xzh_render_tail']) || !empty($settings['xzh_render_tail']), 'xzh_jsonld_single' => !isset($settings['xzh_jsonld_single']) || !empty($settings['xzh_jsonld_single']), 'xzh_jsonld_page' => !empty($settings['xzh_jsonld_page']), 'xzh_jsonld_img' => !empty($settings['xzh_jsonld_img']), 'seo_baidu_normal' => !empty($settings['seo_baidu_normal']), 'seo_baidu_fast' => !empty($settings['seo_baidu_fast']), ]; } /** * 获取短信接口设置 * * 注意:所有供应商共用 sms_access_key / sms_access_secret(通用凭证字段)。 * 各供应商特有的额外字段使用各自的命名空间(sms_tencent_*, sms_huawei_*, sms_custom_*)。 * sms_sign_name / sms_template_code 为所有供应商共用。 */ public static function get_sms_settings(): array { $settings = AKSRT_Settings::get_all(); $provider = sanitize_key((string) ($settings['sms_provider'] ?? 'aliyun')); $allowed_providers = ['aliyun', 'tencent', 'huawei', 'custom']; if (!in_array($provider, $allowed_providers, true)) { $provider = 'aliyun'; } $ali_api_type = sanitize_key((string) ($settings['sms_ali_api_type'] ?? 'sms')); if (!in_array($ali_api_type, ['sms', 'verify'], true)) { $ali_api_type = 'sms'; } $code_length = max(4, min(8, (int) ($settings['sms_code_length'] ?? 6))); $code_expire = max(60, min(600, (int) ($settings['sms_code_expire'] ?? 300))); $rate_limit = max(10, (int) ($settings['sms_rate_limit'] ?? 60)); $daily_limit = max(1, (int) ($settings['sms_daily_limit'] ?? 10)); return [ 'sms_enabled' => !empty($settings['sms_enabled']), 'sms_provider' => $provider, 'sms_number_limit_ch' => !isset($settings['sms_number_limit_ch']) || !empty($settings['sms_number_limit_ch']), 'sms_access_key' => (string) ($settings['sms_access_key'] ?? ''), 'sms_access_secret' => (string) ($settings['sms_access_secret'] ?? ''), 'sms_sign_name' => (string) ($settings['sms_sign_name'] ?? ''), 'sms_template_code' => (string) ($settings['sms_template_code'] ?? ''), 'sms_code_length' => $code_length, 'sms_code_expire' => $code_expire, 'sms_rate_limit' => $rate_limit, 'sms_daily_limit' => $daily_limit, 'sms_notify_bind' => !isset($settings['sms_notify_bind']) || !empty($settings['sms_notify_bind']), 'sms_notify_login' => !empty($settings['sms_notify_login']), 'sms_notify_register' => !isset($settings['sms_notify_register']) || !empty($settings['sms_notify_register']), 'sms_notify_reset_password' => !isset($settings['sms_notify_reset_password']) || !empty($settings['sms_notify_reset_password']), // 阿里云特有 'sms_ali_api_type' => $ali_api_type, 'sms_region_id' => (string) ($settings['sms_region_id'] ?? 'cn-hangzhou'), 'sms_aliyun_verified' => !empty($settings['sms_aliyun_verified']), // 腾讯云特有 'sms_tencent_app_id' => (string) ($settings['sms_tencent_app_id'] ?? ''), 'sms_tencent_app_key' => (string) ($settings['sms_tencent_app_key'] ?? ''), 'sms_tencent_secret_id' => (string) ($settings['sms_tencent_secret_id'] ?? ''), 'sms_tencent_secret_key' => (string) ($settings['sms_tencent_secret_key'] ?? ''), 'sms_tencent_region' => (string) ($settings['sms_tencent_region'] ?? 'ap-guangzhou'), 'sms_tencent_verified' => !empty($settings['sms_tencent_verified']), // 华为云特有 'sms_huawei_sender' => (string) ($settings['sms_huawei_sender'] ?? ''), 'sms_huawei_signature' => (string) ($settings['sms_huawei_signature'] ?? ''), 'sms_huawei_endpoint' => (string) ($settings['sms_huawei_endpoint'] ?? ''), 'sms_huawei_verified' => !empty($settings['sms_huawei_verified']), // 自定义接口特有 'sms_custom_url' => (string) ($settings['sms_custom_url'] ?? ''), 'sms_custom_method' => (string) ($settings['sms_custom_method'] ?? 'POST'), 'sms_custom_auth_type' => (string) ($settings['sms_custom_auth_type'] ?? 'header'), 'sms_custom_auth_key' => (string) ($settings['sms_custom_auth_key'] ?? ''), 'sms_custom_auth_value' => (string) ($settings['sms_custom_auth_value'] ?? ''), 'sms_custom_headers' => (string) ($settings['sms_custom_headers'] ?? ''), 'sms_custom_body' => (string) ($settings['sms_custom_body'] ?? ''), 'sms_custom_success_rule' => (string) ($settings['sms_custom_success_rule'] ?? ''), 'sms_custom_verified' => !empty($settings['sms_custom_verified']), ]; } }