我的目标是从 WordPress 中定义的自定义字段设置 Google Conversion 值。转换脚本位于登陆页面上,因此我需要将我的自定义字段数据从我的表单中获取到登陆页面。我不能使用 GET 或 POST,因为表单提交是由第三方处理的,并且没有数据返回到实际的登录页面。
所以我尝试使用 PHP 会话,但是这个第三方阻碍了使用 PHP,因为它为自己保留了所有数据。
这是我希望我能开始工作的方法:
- 表单的验证是使用 jQuery 工具完成的。
- 然后,我需要在通过 jQuery/AJAX 验证成功后将变量提交到单独的 php 文件。
- 然后随着登录页面开始加载,我必须从提到的 PHP 文件中获取该变量并将其回显到相关位置。
我想我实际上不需要使用表单在页面上启动会话,因为 jquery 直接从输入中获取数据,而不是任何会话数据。所以这是我的转化价值输入:
<input type="hidden" id="conv" name="conv" value="90">
然后我的表单验证:
$("#course-form-modal").validator().submit(function(e) {
// when data is valid
if (!e.isDefaultPrevented()) {
// this grabs the value from my form
var con_val = $("#conv").val();
// and this sends it...
$.post(
"../../usersession.php",
{ data: con_val }
);
}
});
然后我在 usersession.php 中得到了代码......我发送数据的地方:
// As I'm just trying to echo what was sent to this page, via ajax, I shouldn't need to worry about starting/retrieving a SESSION yet... right?
<?php $var_value = $_POST['data']; ?>
<div id="results">
<?php echo $var_value ?>
</div>
// 我可以稍后再担心。现在我只想在 USERSESSION.PHP 上回应我的结果 //
最后,我在登录页面上有了从 usersession.php 检索数据的代码:
session_start();
$var_value = $_SESSION['conv'];
echo $var_value;
我不完全确定所有这些代码都适合初学者,我更像是一个前端人员......
-编辑-
是的,我很确定代码至少现在是正确的。出于某种原因,它仍然无法正常工作。目前我想知道WordPress是否会阻止我从我的javascript文件中写入usersessions.php(作为参考,该文件路径是在我的工作(不工作)示例中绝对设置的)?我知道当您尝试直接访问文件时,WordPress 有时会抛出 404。另一个潜在问题可能与第三方软件 vanillasoft 有关。我在表单的操作标签中有一个指向他们脚本的链接,这是否可以绕过/杀死表单 > usersession.php > 然后登录页面之间的数据发送/接收?
附带说明一下,如果有人对我如何测试 usersession.php 是否正在接收数据有很好的了解,请告诉我?我最初确实有这段代码,但它什么也不返回,如果我在发送某些东西后直接链接到文件(就像只是将文件 url 粘贴到我的浏览器中),它会返回一个“0”......
if(isset($_POST['conv'])) {
session_start();
$_SESSION['conv'] = $_POST[''conv''];
echo "1";
} else {
echo "0";
}