Dynami c Gravity Forms не работает с переменными сеанса - PullRequest
0 голосов
/ 23 апреля 2020

После отправки формы я проверяю значение поля формы по массиву значений. Если есть совпадение, я устанавливаю переменные сеанса.

session_start();

add_action( 'gform_after_submission', 'validate_the_field', 10, 2 );
function validate_the_field( $entry, $form ) {

    $the_field= $entry["1"];
    if($the_field) {

        $all_fields = explode( ',', get_field('all_fields', 'options') );
        if ( in_array($the_field, $all_fields) ) {
            $_SESSION['authorized'] = 'authorized';
        }

    }
}

Я пытаюсь отобразить динамические c подтверждающие сообщения, основанные на переменных сеанса, но в результате всегда отображается «Вы не авторизованы».

add_filter( 'gform_confirmation', 'custom_confirmation', 10, 4 );
function custom_confirmation( $confirmation, $form, $entry, $ajax ) {

    if ( $_SESSION['authorized'] == 'authorized' ) {
        $confirmation = "You are authorized.";
    } else {
        $confirmation = "You are not authorized.";
    }
    return $confirmation;
}

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 апреля 2020

Действие gform_after_submission запускается после фильтра gform_confirmation. Попробуйте заменить его на действие gform_entry_created, которое срабатывает перед фильтром подтверждения.

Для получения дополнительной информации о порядке запуска крючков Gravity Forms см. Справочник по крючкам Gravity Forms:

https://gravitywiz.com/gravity-forms-hook-reference/

...