【问题标题】:How to Pre Populate a Ninja Form hidden field from an Advanced Custom Field?如何从高级自定义字段预填充忍者表单隐藏字段?
【发布时间】:2020-06-06 22:10:31
【问题描述】:

我为 WordPress 安装了 Ninja Forms 和 ACF。我在 Ninja Forms 中有一个隐藏字段,我需要使用 ACF 字段中的值重新填充它。

我尝试了简单的 jQuery,但它不起作用:

$('input[name=nf-field-19]').val('<?php the_field('rsvp_email'); ?>');

如您所知.. 我不是 PHP 或 jQuery 人.. 试图摆弄并找到解决方案。

谢谢!

【问题讨论】:

  • 您是自己创建表单吗?还是简码?
  • 通过NF界面在admin中创建了表单。然后将表单嵌入到模板中:&lt;?php Ninja_Forms()-&gt;display( 3 ); ?&gt;

标签: php advanced-custom-fields ninja-forms


【解决方案1】:

出于某种原因,您是否需要在 JS 中使用它?我正在使用ninja_forms_render_default_value 过滤器挂钩来预填充隐藏的表单字段:

/**
 * Populate hidden input with ACF values
 */
function nf_hidden_field_values( $value, $field_type, $field_settings ) {
    global $post;
    $value = ''
    if ( $field_settings['key'] == 'hidden_field_1' ) {
        $value =  get_field('acf_field_1', $post->ID);
    }

    if ( $field_settings['key'] == 'hidden_field_2' ) {
        $value = get_field('acf_field_2', $post->ID);
    }

    return $value;
}
add_filter( 'ninja_forms_render_default_value', 'nf_hidden_field_values', 10, 3 );

【讨论】:

  • 这个。这就是方法。虽然可能需要在第 6 行加上一个结束分号以避免 PHP 错误。
【解决方案2】:

你可以用 Jquery 来做,你只需要触发一个更改事件:

var fieldID = 197;
var newValue = 'compactpro';
jQuery( '#nf-field-' + fieldID ).val( newValue ).trigger( 'change' );

资源: https://developer.ninjaforms.com/codex/changing-field-values/

【讨论】:

  • 其实自从Ninja Forms 3更新后好像就不行了,你应该使用crObot的解决方案。
猜你喜欢
  • 2018-08-06
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
相关资源
最近更新 更多