至少几天来,我一直在思考这个问题,在网上搜索,甚至分解代码以确保我没有遗漏任何东西。
目标:我只是从 Birthdate 字段中获取值,计算它,然后将其保存到名为“Age”的隐藏字段中。
问题:我能够抓住价值并计算得很好。但是我无法将其存储/保存到该特定字段,正如您将在代码中看到的字段 id=47。每当我运行应用程序时,填写表格并检查条目,#47 会弹出(它与 id# 无关。我进行了一些测试,例如将其保存到另一个字段中,结果是一样的)。我能够“回显” var $age,它给了我我想要的东西。但是,当我尝试保存它时,它给了我前面提到的“47”。
在包含 '$_POST['input_47'] = $age' 的行上,这就是我的问题所在。我知道我可以将整数和字符串传递给 $_POST,但它不会接受 $age。
如果我没有明确提出我的要求,请告诉我。非常感谢任何可以提供一两个提示来解决此问题的人!
这是我放在 functions.php *edited 上的代码
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;
}