我有一个自定义帖子类型,并且正在使用Elementor,PAFE和ACF Pro和Gravity Forms。出于视觉原因,我使用了PAFE / Elementor,并且在表单处理结束时,我创建了一个自定义帖子类型“合同”,然后在创建合同后将其重定向到上面带有重力形式的页面(隐藏ACF值) 。我希望与合同关联的“自定义字段值”与重力形式共享,但是我没有成功映射它。
我已经尝试过了,但是没有运气。我不确定我需要在自定义值中加载哪个GravityForms过滤器。
参考: https://docs.gravityforms.com/gform_field_value_parameter_name/
add_filter( 'gform_field_value', 'populate_fields');
function populate_fields( $value, $field, $name ) {
$values = array(
'pc' => get_field('pc',),
'dc' => get_field('dc'),
'tt' => get_field('tt'),
'rd' => get_field('rd'),
'vl' => get_field('vl'),
'on' => get_field('on'),
'fn' => get_field('fn'),
'ln' => get_field('ln'),
'cp' => get_field('cp'),
'ph' => get_field('ph'),
'e' => get_field('e'),
'apd' => get_field('apd'),
'tariff' => get_field('tariff'),
'c2c' => get_field('c2c'),
'tsc' => get_field('tsc'),
'awc' => get_field('awc'),
'pp_address' => get_field('pp_address'),
'pp_fn' => get_field('pp_fn'),
'pp_ln' => get_field('pp_ln'),
'pp_biz' => get_field('pp_biz'),
'pp_ph' => get_field('pp_ph'),
'pp_notes' => get_field('pp_notes'),
'do_address' => get_field('do_address'),
'do_fn' => get_field('do_fn'),
'do_ln' => get_field('do_ln'),
'do_biz' => get_field('do_biz'),
'do_notes' => get_field('do_notes')
);
return isset( $values[ $name ] ) ? $values[ $name ] : $value;
}
答案 0 :(得分:0)
您必须检查ACF字段和重力形式密钥是否有效。您还可以在从get_field()获取数据时传递id,如下所示:
此示例显示了各种$ post_id值,用于从帖子,用户,术语和选项中获取值。
$post_id = false; // current post
$post_id = 1; // post ID = 1
$post_id = "user_2"; // user ID = 2
$post_id = "category_3"; // category term ID = 3
$post_id = "event_4"; // event (custom taxonomy) term ID = 4
$post_id = "option"; // options page
$post_id = "options"; // same as above
$value = get_field( 'my_field', $post_id );
我希望它能对您有所帮助。
答案 1 :(得分:0)
谢谢您的成功,我能够使它像这样工作,但是我没有分配变量来节省一些时间,可能就性能而言,这不是最佳实践,但是它可以工作。 :
function populate_fields( $value, $field, $name ) {
//to use current post
$post_id = false;
$values = array(
'do_notes' => get_field( 'do_notes', $post_id ),
);
return isset( $values[ $name ] ) ? $values[ $name ] : $value;
}