Как получить доступ к полям Gravity Form перед отправкой? - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь получить доступ к полям Gravity Forms, чтобы проверить их на наличие записей. Я почти все перепробовал на StackOverflow и не повезло.

Форма № 1. Вот некоторые из 1000 вещей, которые я пробовал:

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

и читает это: https://docs.gravityforms.com/gform_pre_submission/

Как мне это сделать?

1 Ответ

0 голосов
/ 12 марта 2019

Если вы хотите выполнить молчаливый сбой для записей спама, я бы порекомендовал использовать фильтр 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;

EDIT

Чтобы на самом деле получить значение, самый простой способ - просто извлечь его из $ _POST (к вашему сведению, существуют более тщательные методы). Вот более надежный пример.

add_filter( 'gform_validation', function( $result ) { 
    // Get the value of field ID 1
    $value = rgpost( 'input_1' );
    if( $value == 'gibberish' ) {
        // activate honeypot 
    }
    return $result;
} );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...