如何使表单隐藏字段输出完整提交页面URL而非仅REQUEST_URI值?
如何在Formidable Forms隐藏字段中获取完整的提交来源URL?
你当前的代码只提取了请求的路径部分($_SERVER['REQUEST_URI']),所以邮件里只能看到/tour/australia这类相对路径。要生成包含协议、域名的完整URL,我们需要把几个服务器环境变量拼接起来,替换原来的赋值逻辑即可。
修改后的代码如下:
add_filter('frm_get_default_value', 'my_custom_default_value', 10, 2); function my_custom_default_value($new_value, $field){ if($field->id == 84){ // 隐藏字段ID // 判断当前协议(HTTP/HTTPS) $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http'; // 获取域名(包含端口,如果非默认端口的话) $domain = $_SERVER['HTTP_HOST']; // 拼接完整URL $new_value = $protocol . '://' . $domain . $_SERVER['REQUEST_URI']; } return $new_value; }
代码说明:
$protocol:通过检查$_SERVER['HTTPS']变量判断当前使用的是HTTP还是HTTPS协议,确保链接的协议部分正确。$domain:$_SERVER['HTTP_HOST']会返回请求的域名(比如yourwebsite.com,如果是非80/443端口的话还会包含端口号,比如yourwebsite.com:8080)。- 最后把协议、域名和原路径拼接起来,就能得到类似
https://yourwebsite.com/tour/australia的完整URL了。
这样修改后,你的邮件里就能收到带完整协议和域名的来源链接啦。
内容的提问来源于stack exchange,提问作者MK-DK
相关产品推荐
相关产品推荐

