Advertisement
adczk

Forminator - select frrom external DB

Mar 20th, 2023
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. <?php
  2. add_filter( 'forminator_cform_render_fields', 'forminator_select_posts_list', 10, 2 );
  3. function forminator_select_posts_list( $wrappers, $form_id ) {
  4.  
  5. $allowed_forms = array( 16134 ); // IDs of forms to apply to (separated by comma if more)
  6.  
  7. // which select fields to fill in with what post types
  8. // array key (left) = select field ID
  9. // array value (right) = post type name
  10.  
  11. $select_fields_data = array(
  12. 'select-3',
  13. );
  14.  
  15. ##### DO NOT EDIT BELOW #####;
  16.  
  17.  
  18. if ( ! in_array( $form_id, $allowed_forms) ) {
  19. return $wrappers;
  20. }
  21.  
  22.  
  23.  
  24. foreach ( $wrappers as $wrapper_key => $wrapper ) {
  25. if ( ! isset( $wrapper[ 'fields' ] ) ) {
  26. continue;
  27. }
  28.  
  29. if ( isset( $select_fields_data[ $wrapper[ 'fields' ][ 0 ][ 'element_id' ] ] ) ) {
  30.  
  31.  
  32. // here fetch your data from DB
  33. $conn = new mysqli('SERVERIP', 'USERNAME', 'PASSWORD', 'DBNAME') or die ('Cannot connect to db');
  34. $result = $conn->query("SELECT wdt_ID, clientname FROM wp_wpdatatable_2 ORDER BY clientname ASC");
  35.  
  36. $row = $result;
  37.  
  38.  
  39. $new_options = array();
  40.  
  41.  
  42.  
  43. $new_options[] = array(
  44. 'label' => $row['clientname'],
  45. 'value' => $row['wdt_ID'],
  46. 'limit' => '',
  47. 'key' => forminator_unique_key(),
  48. );
  49.  
  50. $opt_data['options'] = $new_options;
  51.  
  52.  
  53. $select_field = Forminator_API::get_form_field( $form_id, $wrapper['fields'][0]['element_id'], true );
  54. if( $select_field && !empty( $opt_data ) ){
  55. Forminator_API::update_form_field( $form_id, $wrapper['fields'][0]['element_id'], $opt_data );
  56. $wrappers[ $wrapper_key ][ 'fields' ][ 0 ][ 'options' ] = $new_options;
  57. }
  58.  
  59. }
  60. }
  61.  
  62. return $wrappers;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement