0

至少几天来,我一直在思考这个问题,在网上搜索,甚至分解代码以确保我没有遗漏任何东西。

目标:我只是从 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;
}
4

1 回答 1

0

您可以尝试将其添加到 $value 变量中,而不是直接在 $_POST 中添加您的 $age 变量。

注意:默认情况下,$form 包含整个 Gravity 表单输入,$value 包含用户传递的所有输入。

如果我能进一步帮助你,请告诉我......

于 2017-04-15T05:09:51.487 回答