mysql — заполнение форм Ninja с помощью SQL / переполнение стека

Сценарий:
Я использую 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>,

0

Решение

Это помогает?
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);

Полный кредит Ханнесу.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]