Advertisement
adczk

Nominees cpt acf forminator code

May 18th, 2023
861
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.43 KB | None | 0 0
  1. <?php
  2.  
  3. # POPULATE SELECT FIELD WIH AWARDS TYPES
  4.  
  5. add_filter(
  6.     'forminator_cform_render_fields',
  7.     function( $wrappers, $model_id ) {
  8.         if( $model_id != 263 ){  // SET ID OF THE FORM
  9.             return $wrappers;
  10.         }
  11.  
  12.         $select_fields_data = array(
  13.             'select-1' => 'categories',
  14.         );
  15.  
  16.         foreach ( $wrappers as $wrapper_key => $wrapper ) {
  17.             if ( ! isset( $wrapper[ 'fields' ] ) ) {
  18.                 continue;
  19.             }
  20.  
  21.             if (
  22.                 isset( $select_fields_data[ $wrapper[ 'fields' ][ 0 ][ 'element_id' ] ] ) &&
  23.                 ! empty( $select_fields_data[ $wrapper[ 'fields' ][ 0 ][ 'element_id' ] ] )
  24.             ) {
  25.                
  26.             $p_args = array(
  27.                 'post_type' =>  $select_fields_data[ $wrapper[ 'fields' ][ 0 ][ 'element_id' ] ],
  28.                 'numberposts' => -1,
  29.                 'post__not_in' => array( 2739, 2734 ), // IDs of Awards to be excluded from select
  30.             );
  31.  
  32.                 $posts = get_posts( $p_args );
  33.  
  34.                 if ( ! empty( $posts ) ) {
  35.                     $new_options = array();
  36.                     $opt_data = array();
  37.                     foreach( $posts as $post ) {
  38.                         $new_options[] = array(
  39.                             'label' => $post->post_title,
  40.                             'value' => $post->ID,
  41.                             'limit' => '',
  42.                             'key'   => forminator_unique_key(),
  43.                         );
  44.                         $opt_data['options'] = $new_options;
  45.                     }
  46.                     $select_field = Forminator_API::get_form_field( $model_id, $wrapper['fields'][0]['element_id'], true );
  47.                     if( $select_field ){
  48.                         if( $select_field['options'][0]['label'] != $opt_data['options'][0]['label'] ){
  49.                             Forminator_API::update_form_field( $model_id, $wrapper['fields'][0]['element_id'], $opt_data );
  50.                             $wrappers[ $wrapper_key ][ 'fields' ][ 0 ][ 'options' ] = $new_options;
  51.                         }
  52.                     }
  53.                 }
  54.             }
  55.         }
  56.  
  57.         return $wrappers;
  58.     },
  59.     10,
  60.     2
  61. );
  62.  
  63. add_filter(
  64.     'forminator_replace_form_data',
  65.     function( $content, $data, $fields ) {
  66.         if( $data['form_id'] != 263 ){ // SET ID OF THE FORM
  67.             return $content;
  68.         }
  69.  
  70.         if ( ! empty( $content ) ) {
  71.             return $content;
  72.         }
  73.  
  74.         $form_fields = Forminator_API::get_form_fields( $data['form_id'] );
  75.         $data_field = '';
  76.         foreach($data as $key => $value){
  77.             if ( strpos( $key, 'select' ) !== false ) {
  78.                 $values = '';
  79.                 $field_value = isset( $data[ $key ] ) ? $data[ $key ] : null;
  80.  
  81.                 if ( ! is_null( $field_value ) ) {
  82.                     $fields_slugs  = wp_list_pluck( $form_fields, 'slug' );
  83.                     $field_key     = array_search( $key, $fields_slugs, true );
  84.                     $field_options = false !== $field_key && ! empty( $form_fields[ $field_key ]->raw['options'] )
  85.                             ? wp_list_pluck( $form_fields[ $field_key ]->options, 'label', 'value' )
  86.                             : array();
  87.  
  88.                     if ( ! isset( $field_options[ $field_value ] ) && isset( $_POST[ $key ] ) ) {
  89.                         return sanitize_text_field( $_POST[ $key ] );
  90.                     }
  91.                 }
  92.             }
  93.         }
  94.         return $content;
  95.     },
  96.     10,
  97.     3
  98. );
  99.  
  100. # END OF THE CODE TO POPULATE SELECT FIELD
  101.  
  102.  
  103.  
  104.  # SET AWARD YEAR FOR NOMINEE
  105.  
  106. add_action( 'forminator_post_data_field_post_saved', 'forminator_post_data_field_post_saved_custom_tag', 11, 3 );
  107. function forminator_post_data_field_post_saved_custom_tag( $post_id, $field, $data ) {
  108.  
  109.     $award_year_name = '';
  110.     $csfields = $data['post-custom'];
  111.    
  112.     foreach ( $csfields as $key=>$custom_field ) {
  113.        
  114.         if ( $custom_field['key'] == 'YEAR' ) {
  115.             $award_year_name = $custom_field['value'];
  116.         }      
  117.     }
  118.    
  119.     if ( $award_year_name !== '' ) {
  120.         $taxonomy_name = 'awards_year'; // taxonomy name for Awards Year
  121.         wp_set_post_terms( $post_id, $award_year_name, $taxonomy_name );
  122.     }
  123.            
  124. }
  125.  
  126. # END OF AWARD YEAR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement