Сценарий:
Я использую WordPress в сочетании с Ninja Forms, и я хотел бы заполнить список выбора с помощью PHP / SQL.
Я создал простую форму с полем выбора, которую я хотел бы заполнить, используя PHP и SQL без jQuery, если это возможно.
Просматривая API форм Ninja и другие ресурсы, я не нашел своего ответа.
Используя эти фрагменты кода, я могу заполнить поля textbox и textarea, но не поле select.
Если нужна дополнительная информация, я могу опубликовать ее!
И этот, который работает с пользовательскими типами сообщений
// filter
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, $default_option, $field_id ) {
if( $fh = fopen( "/var/www/virtual/wp-content/themes/xxxx/error.log", "a+" ) ){ fwrite ( $fh,$field_type."\n"); fclose( $fh ); }
if( 'textarea' == $field_type ){
$default_value = 'fooBARRRRRRRRR';
$options = 'foo';
}
return $default_value;
}
apply_filters(‘ninja_forms_render_default_value’, $default_value, $field_type, $field_settings, $field_id, $default_option);
//Function
function cpt_prepopulate_forms($options, $settings) {
global $post;
if( $fh = fopen( "/var/www/virtual/wp-content/themes/xxxx/error.log", "a+" ) ){ fwrite ( $fh,var_export($data,true)); fclose( $fh ); }
if( $settings['id'] == 152 ) // change to your field ID
{
$args = array(
'post_type' => 'cash', // Change to your Custom Post type
);
$query = new WP_Query( $args );
if ( $query->have_posts() )
{
$options = array();
while ( $query->have_posts() )
{
$query->the_post();
$options[] = array(
'label' => get_the_title(),
'value' => $post->post_name,
'calc' => null,
'selected' => 0
);
}
}
wp_reset_postdata();
}
return $options;
$conn->close();
}
add_filter('ninja_forms_render_options','cpt_prepopulate_forms', 10, 2);
// end
Это работает, но я могу только заполнить текстовое поле или текстовое поле / адрес электронной почты, но не выбрать / выпадающий. Формы генерируются Ninjaforms при загрузке, поэтому невозможно поставить пользовательский Php между <select></select>
,
Это помогает?
https://etzelstorfer.com/en/create-dynamic-ninja-forms-lists-post-types/
/******************************************
* SHOW ALL ROOMS IN FIELD WITH KEY "ROOMS"******************************************/
add_filter( 'ninja_forms_render_options', function($options,$settings){
if( $settings['key'] == 'rooms' ){
$args = array(
'post_type' => 'room',
'orderby' => 'menu_order',
'order' => 'ASC',
'posts_per_page' => 100,
'post_status' => 'publish'
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ){
global $post;
while ( $the_query->have_posts() ){
$the_query->the_post();
$options[] = array('label' => get_the_title( ), 'value' => get_the_title( ));
}
wp_reset_postdata();
}
}
return $options;
},10,2);
Полный кредит Ханнесу.
Других решений пока нет …