use*_*297 9 forms wordpress gravity
我的Gravity Forms表格有些问题.这是一个多页面表单,我需要使用第1页的帖子值填充第2页的字段.但它不起作用.当然,第2页上的字段配置为"允许字段动态填充",字段的参数设置为"名称".这是我的代码:
add_filter('gform_field_value_name', 'name_population_function');
function name_population_function($value){
$name = $_POST['input_2'] . ' ' . ( ! empty( $_POST['input_3'] ) ? ( $_POST['input_3'] . ' ' ) : NULL ) . $_POST['input_1'];
return $name;
}
Run Code Online (Sandbox Code Playgroud)
当我$name
使用var_dump($name);
它打印变量的值时,实际上是正确的.
如果我改变$name
到$name = 'Last Middle First';
它的填充字段,因为它应该.
谢谢您的帮助.
编辑:出于测试目的,我将我的代码更改为:
add_filter('gform_field_value_name', 'name_population_function');
function name_population_function($value){
$name = 'Test';
if ( ! empty( $_POST['input_1'] ) && ! empty( $_POST['input_2'] ) ) {
$name = $_POST['input_2'] . ' ' . ( ! empty( $_POST['input_3'] ) ? ( $_POST['input_3'] . ' ' ) : NULL ) . $_POST['input_1'];
//var_dump( $name );
}
return $name;
}
Run Code Online (Sandbox Code Playgroud)
如果我取消注释var_dump
变量值的行$name
再次设置正确,但第2页上的字段预先填充了值Test
.可能在第1页也调用了此过滤器,因此插件可能会缓存此值吗?我不使用缓存插件,所以不知道为什么它不起作用.
小智 -1
试试这个 gform_pre_render 过滤器。它向表单 ID 7 添加一个过滤器。将 7 替换为您的 Gravity 表单的 ID。
add_filter('gform_pre_render_7', 'populate_form_pre_render');
function populate_form_pre_render($form){
$name ='';
foreach ($form['fields'] as &$field)
{
// replace 2 with the actual ID of your form field
if ( 2 == $field['id'] ){
if ( ! empty( $_POST['input_1'] ) && ! empty( $_POST['input_2'] ) ) {
$name = $_POST['input_2'] . ' ' . ( ! empty( $_POST['input_3'] ) ? ($_POST['input_3'] . ' ' ) : NULL ) . $_POST['input_1'];
//var_dump( $name );
}
$field['defaultValue']=$name;
echo '<pre>';
print_r($field);
echo '</pre>';
}
}
return $form;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5486 次 |
最近记录: |