Гравитационная форма загружает динамические значения из function.php - PullRequest
0 голосов
/ 15 января 2019

Я хочу заполнить динамические данные в поле в гравитационной форме из function.php перед отправкой формы. но мой код ниже не работает.

Мой код / ​​шаги не работают:

Я отмечаю гравитационное поле формы «Разрешить динамическое заполнение поля» и даю имя параметра «время», чтобы я мог использовать его как ловушку в function.php. Пожалуйста, смотрите скриншот https://snag.gy/AGQ8CU.jpg

и затем в своем function.php я использую этот код для вычисления текущего времени и передачи его обратно в форму, чтобы форма могла отправлять текущее время.

Код в function.php:

$timespam = "";

add_filter( 'gform_field_value_timestamp', 'timestamp_population_function');

function timestamp_population_function() {
    $timespam = time();
    return $timespam;
}

Но мой код не работает и не берет динамическое время из functions.php и не отправляет текущее время.

Я также хочу повторно использовать это динамическое значение в другой функции, а также хочу загрузить значение поля другой формы в функции ниже. Такие как:

add_filter( 'gform_field_value_hash', 'hash_population_function' );
function hash_population_function($value) {
    $x_amount = $_POST['input_26']; // I am trying to get value from form's field
    $hmac_data = $timespam . "^" . $x_amount;
    $x_fp_hash = hash_hmac('MD5', $hmac_data, $transaction_key);
    return $x_fp_hash;
}

Можете ли вы проверить, хорош ли мой код / ​​шаги? или есть другой способ добиться этого?

1 Ответ

0 голосов
/ 15 января 2019

Вы должны добавить параметр $ value в вашу функцию и изменить значение параметра в соответствии с тем, что вы добавили в форму.

add_filter( 'gform_field_value_time', 'timestamp_population_function');

function timestamp_population_function($value) {
    $timespam = time();
    return $timespam;
}

Вам нужно только динамически заполнять текущее время. ПОСЛЕ того, как форма отправлена, запустите следующий хук, чтобы взять текущее время из формы, вычислить остаток и затем обработать его соответствующим образом.

add_action( 'gform_after_submission_[form ID]', 'calc_post_data_[form ID]', 10, 2 );
function calc_post_data_15($entry, $form){
   $timespam = rgar($entry, '[form field ID for current time]');
   $x_amount =   rgar($entry, '[form field ID for amount]');
   $hmac_data = $timespam . "^" . $x_amount;
   $x_fp_hash = hash_hmac('MD5', $hmac_data, $transaction_key);

   return function_that_deals_with_this_result($x_fp_hash);
 }
...