我想在提交表单之前从function.php将动态数据填充到重力表单中的字段中。 但是我下面的代码无法正常工作。
我正在将重力形式字段标记为“允许动态填充字段”,并指定参数名称“ time”,因此我可以将其用作function.php中的一个钩子。请查看屏幕截图https://snag.gy/AGQ8CU.jpg
然后,在我的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;
}
能否请您检查我的代码/步骤是否正确?还是有其他方法可以实现?
答案 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);
}