重力形式$ _POST问题

时间:2017-04-15 02:43:45

标签: php wordpress post gravityforms

我已经围绕这个问题缠绕了至少几天,在网上搜索,甚至打破了代码以确保我没有遗漏任何东西。

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

1 个答案:

答案 0 :(得分:0)

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

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

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