UK Vehicle Data接口车辆报废每公斤价格功能WordPress小工具实现咨询
WordPress车辆报废公斤价展示小工具实现方案
功能目标:在WordPress小工具中接入UK Vehicle Data的车辆数据接口,结合12p/公斤的报废单价,展示对应车辆的报废估算价格。
界面参考

实现步骤
- 继承WordPress原生WP_Widget类创建自定义小工具,分别实现后台配置表单、前端渲染、配置更新三个核心方法,后台可配置API密钥、报废单价等参数
- 使用WordPress内置
wp_remote_get方法调用第三方数据接口,避免前端跨域问题,沙箱测试可直接使用提供的测试接口地址 - 解析接口返回的JSON数据,提取车辆整备质量字段,乘以12p/公斤的单价计算总报废价格;当前提供的是ValuationData数据包的返回结构,如需获取车辆重量可调整请求的数据包为包含车辆基础参数的对应包
- 前端渲染展示车辆基础信息、重量、报废估算价格,适配当前主题样式
参考代码
接口请求与计算逻辑示例
// 接口请求逻辑(生产环境请将密钥存入站点配置,不要硬编码) $api_key = '6da2f3bb-c911-4adf-9d80-9a09e11f1362'; $vrm = 'KM12AKK'; $api_url = "https://uk1.ukvehicledata.co.uk/api/datapackage/BatteryData?v=2&api_nullitems=1&auth_apikey={$api_key}&key_VRM={$vrm}"; $response = wp_remote_get($api_url, ['timeout' => 15]); if (wp_remote_retrieve_response_code($response) === 200) { $vehicle_data = json_decode(wp_remote_retrieve_body($response), true); // 车辆重量字段请根据实际接口返回结构调整 $weight = $vehicle_data['Response']['DataItems']['VehicleGrossWeight'] ?? 0; $scrap_price = round($weight * 0.12, 2); // 12p每公斤换算为英镑计算 echo '<div class="scrap-price-widget">'; echo '<p>车辆整备质量:' . esc_html($weight) . 'kg</p>'; echo '<p>报废估算价格:£' . esc_html($scrap_price) . '</p>'; echo '</div>'; } else { echo '<p>车辆数据获取失败,请稍后重试</p>'; }
接口返回示例结构
{ "Request": { "ApiKeyId": "6da2f3bb-c911-4adf-9d80-9a09e11f1362", "PackageId": "ValuationData", "PackageVersion": 2, "ResponseVersion": 2 }, "Response": { "StatusCode": "Success", "StatusMessage": "Success", "StatusInformation": {}, "MetaDataForKeys": [ { "Name": "Vrm|Vin", "Type": "String", "IsMandatory": true } ], "MetaDataForItems": { "ExtractNumber": { "Name": "ExtractNumber", "Type": "String" }, "Mileage": { "Name": "Mileage", "Type": "String" }, "PlateYear": { "Name": "PlateYear", "Type": "String" }, "ValuationBook": { "Name": "ValuationBook", "Type": "String" }, "ValuationList": { "Name": "ValuationList", "Type": "List" }, "ValuationTime": { "Name": "ValuationTime", "Type": "System.DateTime" }, "VehicleDescription": { "Name": "VehicleDescription", "Type": "String" }, "Vrm": { "Name": "Vrm", "Type": "String" } } } }
注意事项
- 生产环境请务必将API密钥存储在WordPress选项表中,不要直接写死在代码里,防止密钥泄露被滥用
- 建议添加接口请求缓存,使用WordPress的transient机制将相同VRM的查询结果缓存12~24小时,降低接口调用频率,提升页面加载速度
- 做好异常兜底处理,接口请求失败、字段缺失时展示友好提示,不要直接输出PHP错误信息
内容的提问来源于stack exchange,提问作者Plock
相关产品推荐
相关产品推荐

