您如何访问“重力表”字段的预提交?

时间:2019-03-11 18:10:23

标签: forms gravity

我正在尝试提交“重力形式”字段,以检查是否有乱码。我已经尝试了StackOverflow上的几乎所有内容,但是没有运气。

该表单的ID为#1。我尝试过的1000件事包括:

GFFormsModel::get_form_meta(1);
GFFormsModel::get_leads(1);
$_POST['input_1']

并阅读以下内容: https://docs.gravityforms.com/gform_pre_submission/

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您想让垃圾邮件条目静默失败,我建议您使用gform_validation过滤器,如果您确定提交的邮件是垃圾邮件,则可以动态启用蜜罐。然后,重力表单将以静默方式使提交失败。将显示确认,但不会创建条目。

这是我的GP Blacklist插件处理此问题的方式:

$honeypot_field_id = GFFormDisplay::get_max_field_id( $form ) + 1;
$_POST[ "input_{$honeypot_field_id}" ] = true;
$form['enableHoneypot'] = true;
$result['is_valid'] = true;

编辑

要实际检索该值,最简单的方法是仅从$ _POST获取它(FYI,有更彻底的技术)。这是一个更可靠的示例。

add_filter( 'gform_validation', function( $result ) { 
    // Get the value of field ID 1
    $value = rgpost( 'input_1' );
    if( $value == 'gibberish' ) {
        // activate honeypot 
    }
    return $result;
} );