重力形式从function.php加载动态值

时间:2019-01-14 21:16:36

标签: php wordpress dynamic gravityforms

我想在提交表单之前从function.php将动态数据填充到重力表单中的字段中。 但是我下面的代码无法正常工作。

我的代码/步骤无效:

我正在将重力形式字段标记为“允许动态填充字段”,并指定参数名称“ time”,因此我可以将其用作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 :(得分:1)

您必须将$ 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);
 }