Передать переменную в поле формы ниндзя

ЦЕЛЬ
Следующая функция должна предварительно заполнить скрытое поле (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 );
    }     
  }
}

person Tom    schedule 02.03.2017    source источник
comment
Спасибо @Matt за улучшение кода;)   -  person Tom    schedule 03.03.2017


Ответы (2)


Как обновить, заполнить или предварительно заполнить значением по умолчанию любое поле формы Ninja из мета-значения записи WordPress:

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 — это имя поля в форме ниндзя.

_listing_mls — имя мета_ключа из базы данных WP для метаполя поста.

person Mohsin    schedule 13.03.2017

См.: 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;
}
person Thomas CARTER    schedule 15.06.2020