WordPress表单跳转API时&被转义为&,PHP如何获取并修复?
解决Elementor表单跳转URL参数转义问题的PHP方案
方案一:直接获取原始表单参数(最可靠)
绕过Elementor的转义问题,直接拿表单提交的原始参数重新拼接正确的API URL:
- 打开Elementor表单设置,将「提交动作」改为「重定向到外部URL」,把目标URL设为你的PHP脚本地址(比如
https://你的域名/fix-rental-url.php)。 - 编写
fix-rental-url.php脚本,放在网站根目录:
<?php // 替换为第三方租车API的基础地址 $api_base = 'https://第三方API域名/租车接口路径'; // 接收表单提交的所有原始参数 $form_data = $_POST; // 自动拼接正确格式的URL(http_build_query会自动用&分隔参数,无转义问题) $correct_url = $api_base . '?' . http_build_query($form_data); // 跳转修复后的URL header("Location: $correct_url"); exit; ?>
这个方法完全避开Elementor的转义逻辑,直接使用表单提交的原始数据,是最稳定的解决方案。
方案二:接收Elementor生成的转义URL并修复
如果无法修改表单提交逻辑,可让Elementor把转义后的URL作为参数传给脚本:
- 在Elementor表单的重定向URL设置中,填入:
https://你的域名/fix-rental-url.php?target=[form_redirect_url]- 这里的
[form_redirect_url]是Elementor的动态标签,选择「表单提交后的重定向URL」(不同版本可能命名略有差异,找对应选项即可)。
- 这里的
- 编写
fix-rental-url.php脚本:
<?php if (isset($_GET['target'])) { // 解码HTML实体,把&还原为& $fixed_url = html_entity_decode($_GET['target']); header("Location: $fixed_url"); exit; } // 无参数时跳转回租车页面 header("Location: https://你的域名/租车页面地址"); exit; ?>
操作提示
- 优先选择方案一,无需依赖Elementor的动态标签,逻辑更简单。
- 上传PHP脚本后,确保文件权限设置为755(大部分主机默认即可),保证PHP能正常执行。
内容的提问来源于stack exchange,提问作者TTT2
相关产品推荐
相关产品推荐

