将变量传递给 Ninja 表单字段
Pass a variable to a Ninja Form field
目标
以下函数应使用变量在我的表单上预填充隐藏字段 (hidden_email...)。
怀疑
然而,我需要传递给该字段的变量“$cust_email”已经在加载页面时声明了。此时它包含一个电子邮件地址。
当前结果
问题是,当下面这段代码运行时,变量似乎已经是空的了。没有任何内容被传递到表单的字段。
function create_page() {
$cust_email = $json->emailAddress;
function ninja_forms_handler() {
add_action ( 'ninja_forms_pre_process', 'add_customers_email' );
}
add_action( 'init', 'ninja_forms_handler' );
function add_customers_email() {
global $ninja_forms_processing;
$form_id = $ninja_forms_processing->get_form_ID();
if( $form_id == 3 ){
$ninja_forms_processing->update_field_settings( ‘hidden_email_1488454108179’, $cust_email );
}
}
}
如何更新或填充或预填充来自 WordPress 的任何 Ninja 表单字段的默认值 Post 元值:
add_filter( 'ninja_forms_render_default_value', 'wm_the_value' , 10 , 3);
function wm_the_value( $default_value, $field_type, $field_settings ) {
if( 'textbox' == $field_type && in_array('ref' , $field_settings)){
$default_value = get_post_meta(get_the_ID(),'_listing_mls', true);
}
return $default_value;
}
ref 是 Ninja 形式的字段名称。
_listing_mls 是 meta_key WP 数据库中 post 元字段的名称。
参见:https://developer.ninjaforms.com/codex/pre-populating-fields-on-display/
我在处理日期和列表时遇到了问题,但发现这行得通:
add_filter( 'ninja_forms_render_default_value', 'my_change_nf_default_value', 10, 3 );
function my_change_nf_default_value( $default_value, $field_type, $field_settings ) {
if ( ( 'date' == $field_type ) && (33 == $field_settings['id'])){
$default_value = '03/06/2020';
}
return $default_value;
}
add_filter( 'ninja_forms_localize_field_settings_listselect', 'my_settings_listselect', 10, 2 );
function my_settings_listselect( $settings, $form ) {
if ($settings['id'] == 49){
$settings['options'][6]['selected'] = 1;
}
return $settings;
}
目标
以下函数应使用变量在我的表单上预填充隐藏字段 (hidden_email...)。
怀疑
然而,我需要传递给该字段的变量“$cust_email”已经在加载页面时声明了。此时它包含一个电子邮件地址。
当前结果
问题是,当下面这段代码运行时,变量似乎已经是空的了。没有任何内容被传递到表单的字段。
function create_page() {
$cust_email = $json->emailAddress;
function ninja_forms_handler() {
add_action ( 'ninja_forms_pre_process', 'add_customers_email' );
}
add_action( 'init', 'ninja_forms_handler' );
function add_customers_email() {
global $ninja_forms_processing;
$form_id = $ninja_forms_processing->get_form_ID();
if( $form_id == 3 ){
$ninja_forms_processing->update_field_settings( ‘hidden_email_1488454108179’, $cust_email );
}
}
}
如何更新或填充或预填充来自 WordPress 的任何 Ninja 表单字段的默认值 Post 元值:
add_filter( 'ninja_forms_render_default_value', 'wm_the_value' , 10 , 3);
function wm_the_value( $default_value, $field_type, $field_settings ) {
if( 'textbox' == $field_type && in_array('ref' , $field_settings)){
$default_value = get_post_meta(get_the_ID(),'_listing_mls', true);
}
return $default_value;
}
ref 是 Ninja 形式的字段名称。
_listing_mls 是 meta_key WP 数据库中 post 元字段的名称。
参见:https://developer.ninjaforms.com/codex/pre-populating-fields-on-display/
我在处理日期和列表时遇到了问题,但发现这行得通:
add_filter( 'ninja_forms_render_default_value', 'my_change_nf_default_value', 10, 3 );
function my_change_nf_default_value( $default_value, $field_type, $field_settings ) {
if ( ( 'date' == $field_type ) && (33 == $field_settings['id'])){
$default_value = '03/06/2020';
}
return $default_value;
}
add_filter( 'ninja_forms_localize_field_settings_listselect', 'my_settings_listselect', 10, 2 );
function my_settings_listselect( $settings, $form ) {
if ($settings['id'] == 49){
$settings['options'][6]['selected'] = 1;
}
return $settings;
}