我已经围绕这个问题缠绕了至少几天,在网上搜索,甚至打破了代码以确保我没有遗漏任何东西。
目标:我只是从Birthdate字段中获取值,计算它,然后将其保存到名为“Age”的隐藏字段。
问题:我能够抓住价值并计算得很好。但是我无法将其存储/保存到该特定字段,正如您将在代码中看到的那样是字段ID = 47.每当我运行应用程序时,填写表单并检查条目,#47弹出(它与id#无关。我运行了一些测试,比如将它保存到另一个字段中,它是相同的)。我能够“回应”var $ age,它给了我我想要的东西。然而,当我试图保存它时,它给了我前面提到的'47'。
在包含'$ _POST ['input_47'] = $ age'的行上,这就是我的问题所在。我知道我可以将整数和字符串传递给$ _POST,但它不会接受$ age。
如果我没有明确要求,请告诉我。非常感谢能够提供一两个提示来解决问题的任何人!
这是我在functions.php *编辑
上的代码add_filter( 'gform_pre_submission_filter_1', 'pre_submission', 10, 4 );
function pre_submission ($form) {
// Calculate the age based on incoming variable $fsmConvert
$ageTime = strtotime($_POST['input_26']);
$t = time(); // current timestamp
$ageConvert = ($ageTime < 0) ? ( $t + ($ageTime * -1) ) : $t - $ageTime;
$year = 60 * 60 * 24 * 365;
$ageYears = $ageConvert / $year; // if you want exact estimate, STOP HERE
$age = floor($ageYears); //this is calculated age
foreach($form['fields'] as $field2) {
if(strpos($field2['id'], 47) === false) {
continue;
$field2['defaultValue'] = $age;
}
}
// return $form;
return $form;
}
答案 0 :(得分:0)
您可以尝试将其添加到$ value变量中,而不是直接在$ _POST中添加$ age变量。
注意:默认情况下,$ form包含整个Gravity表单输入,$ value包含用户传递的所有输入。
如果我能帮助你,请告诉我....