Completed
Push — develop ( c0a108...d8cd4d )
by Gennady
17:26
created
includes/widgets/search-widget/class-search-widget.php 1 patch
Spacing   +142 added lines, -142 removed lines patch added patch discarded remove patch
@@ -64,7 +64,7 @@  discard block
 block discarded – undo
64 64
 				'type' => 'radio',
65 65
 				'full_width' => true,
66 66
 				'label' => esc_html__( 'Search Mode', 'gravityview' ),
67
-				'desc' => __('Should search results match all search fields, or any?', 'gravityview'),
67
+				'desc' => __( 'Should search results match all search fields, or any?', 'gravityview' ),
68 68
 				'value' => 'any',
69 69
 				'class' => 'hide-if-js',
70 70
 				'options' => array(
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
 
87 87
 			// admin - add scripts - run at 1100 to make sure GravityView_Admin_Views::add_scripts_and_styles() runs first at 999
88 88
 			add_action( 'admin_enqueue_scripts', array( $this, 'add_scripts_and_styles' ), 1100 );
89
-			add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts') );
89
+			add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts' ) );
90 90
 			add_filter( 'gravityview_noconflict_scripts', array( $this, 'register_no_conflict' ) );
91 91
 
92 92
 			// ajax - get the searchable fields
@@ -227,7 +227,7 @@  discard block
 block discarded – undo
227 227
 		$script_min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
228 228
 		$script_source = empty( $script_min ) ? '/source' : '';
229 229
 
230
-		wp_enqueue_script( 'gravityview_searchwidget_admin', plugins_url( 'assets/js'.$script_source.'/admin-search-widget'.$script_min.'.js', __FILE__ ), array( 'jquery', 'gravityview_views_scripts' ), \GV\Plugin::$version );
230
+		wp_enqueue_script( 'gravityview_searchwidget_admin', plugins_url( 'assets/js' . $script_source . '/admin-search-widget' . $script_min . '.js', __FILE__ ), array( 'jquery', 'gravityview_views_scripts' ), \GV\Plugin::$version );
231 231
 
232 232
 		wp_localize_script( 'gravityview_searchwidget_admin', 'gvSearchVar', array(
233 233
 			'nonce' => wp_create_nonce( 'gravityview_ajaxsearchwidget' ),
@@ -249,7 +249,7 @@  discard block
 block discarded – undo
249 249
 	 * @return array Scripts allowed in no-conflict mode, plus the search widget script
250 250
 	 */
251 251
 	public function register_no_conflict( $allowed ) {
252
-		$allowed[] = 'gravityview_searchwidget_admin';
252
+		$allowed[ ] = 'gravityview_searchwidget_admin';
253 253
 		return $allowed;
254 254
 	}
255 255
 
@@ -262,24 +262,24 @@  discard block
 block discarded – undo
262 262
 	 */
263 263
 	public static function get_searchable_fields() {
264 264
 
265
-		if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'gravityview_ajaxsearchwidget' ) ) {
265
+		if ( ! isset( $_POST[ 'nonce' ] ) || ! wp_verify_nonce( $_POST[ 'nonce' ], 'gravityview_ajaxsearchwidget' ) ) {
266 266
 			exit( '0' );
267 267
 		}
268 268
 
269 269
 		$form = '';
270 270
 
271 271
 		// Fetch the form for the current View
272
-		if ( ! empty( $_POST['view_id'] ) ) {
272
+		if ( ! empty( $_POST[ 'view_id' ] ) ) {
273 273
 
274
-			$form = gravityview_get_form_id( $_POST['view_id'] );
274
+			$form = gravityview_get_form_id( $_POST[ 'view_id' ] );
275 275
 
276
-		} elseif ( ! empty( $_POST['formid'] ) ) {
276
+		} elseif ( ! empty( $_POST[ 'formid' ] ) ) {
277 277
 
278
-			$form = (int) $_POST['formid'];
278
+			$form = (int)$_POST[ 'formid' ];
279 279
 
280
-		} elseif ( ! empty( $_POST['template_id'] ) && class_exists( 'GravityView_Ajax' ) ) {
280
+		} elseif ( ! empty( $_POST[ 'template_id' ] ) && class_exists( 'GravityView_Ajax' ) ) {
281 281
 
282
-			$form = GravityView_Ajax::pre_get_form_fields( $_POST['template_id'] );
282
+			$form = GravityView_Ajax::pre_get_form_fields( $_POST[ 'template_id' ] );
283 283
 
284 284
 		}
285 285
 
@@ -329,14 +329,14 @@  discard block
 block discarded – undo
329 329
 		);
330 330
 
331 331
 		if ( gravityview()->plugin->supports( \GV\Plugin::FEATURE_GFQUERY ) ) {
332
-			$custom_fields['is_approved'] = array(
332
+			$custom_fields[ 'is_approved' ] = array(
333 333
 				'text' => esc_html__( 'Is Approved', 'gravityview' ),
334 334
 				'type' => 'boolean',
335 335
 			);
336 336
 		}
337 337
 
338
-		foreach( $custom_fields as $custom_field_key => $custom_field ) {
339
-			$output .= sprintf( '<option value="%s" %s data-inputtypes="%s" data-placeholder="%s">%s</option>', $custom_field_key, selected( $custom_field_key, $current, false ), $custom_field['type'], self::get_field_label( array('field' => $custom_field_key ) ), $custom_field['text'] );
338
+		foreach ( $custom_fields as $custom_field_key => $custom_field ) {
339
+			$output .= sprintf( '<option value="%s" %s data-inputtypes="%s" data-placeholder="%s">%s</option>', $custom_field_key, selected( $custom_field_key, $current, false ), $custom_field[ 'type' ], self::get_field_label( array( 'field' => $custom_field_key ) ), $custom_field[ 'text' ] );
340 340
 		}
341 341
 
342 342
 		// Get fields with sub-inputs and no parent
@@ -358,13 +358,13 @@  discard block
 block discarded – undo
358 358
 
359 359
 			foreach ( $fields as $id => $field ) {
360 360
 
361
-				if ( in_array( $field['type'], $blacklist_field_types ) ) {
361
+				if ( in_array( $field[ 'type' ], $blacklist_field_types ) ) {
362 362
 					continue;
363 363
 				}
364 364
 
365
-				$types = self::get_search_input_types( $id, $field['type'] );
365
+				$types = self::get_search_input_types( $id, $field[ 'type' ] );
366 366
 
367
-				$output .= '<option value="'. $id .'" '. selected( $id, $current, false ).'data-inputtypes="'. esc_attr( $types ) .'">'. esc_html( $field['label'] ) .'</option>';
367
+				$output .= '<option value="' . $id . '" ' . selected( $id, $current, false ) . 'data-inputtypes="' . esc_attr( $types ) . '">' . esc_html( $field[ 'label' ] ) . '</option>';
368 368
 			}
369 369
 		}
370 370
 
@@ -387,7 +387,7 @@  discard block
 block discarded – undo
387 387
 	public static function get_search_input_types( $field_id = '', $field_type = null ) {
388 388
 
389 389
 		// @todo - This needs to be improved - many fields have . including products and addresses
390
-		if ( false !== strpos( (string) $field_id, '.' ) && in_array( $field_type, array( 'checkbox' ) ) || in_array( $field_id, array( 'is_fulfilled' ) ) ) {
390
+		if ( false !== strpos( (string)$field_id, '.' ) && in_array( $field_type, array( 'checkbox' ) ) || in_array( $field_id, array( 'is_fulfilled' ) ) ) {
391 391
 			$input_type = 'boolean'; // on/off checkbox
392 392
 		} elseif ( in_array( $field_type, array( 'checkbox', 'post_category', 'multiselect' ) ) ) {
393 393
 			$input_type = 'multi'; //multiselect
@@ -431,19 +431,19 @@  discard block
 block discarded – undo
431 431
 			$post_id = 0;
432 432
 
433 433
 			// We're in the WordPress Widget context, and an overriding post ID has been set.
434
-			if ( ! empty( $widget_args['post_id'] ) ) {
435
-				$post_id = absint( $widget_args['post_id'] );
434
+			if ( ! empty( $widget_args[ 'post_id' ] ) ) {
435
+				$post_id = absint( $widget_args[ 'post_id' ] );
436 436
 			}
437 437
 			// We're in the WordPress Widget context, and the base View ID should be used
438
-			else if ( ! empty( $widget_args['view_id'] ) ) {
439
-				$post_id = absint( $widget_args['view_id'] );
438
+			else if ( ! empty( $widget_args[ 'view_id' ] ) ) {
439
+				$post_id = absint( $widget_args[ 'view_id' ] );
440 440
 			}
441 441
 
442 442
 			$args = gravityview_get_permalink_query_args( $post_id );
443 443
 
444 444
 			// Add hidden fields to the search form
445 445
 			foreach ( $args as $key => $value ) {
446
-				$search_fields[] = array(
446
+				$search_fields[ ] = array(
447 447
 					'name'  => $key,
448 448
 					'input' => 'hidden',
449 449
 					'value' => $value,
@@ -482,22 +482,22 @@  discard block
 block discarded – undo
482 482
 		/**
483 483
 		 * Include the sidebar Widgets.
484 484
 		 */
485
-		$widgets = (array) get_option( 'widget_gravityview_search', array() );
485
+		$widgets = (array)get_option( 'widget_gravityview_search', array() );
486 486
 
487 487
 		foreach ( $widgets as $widget ) {
488
-			if ( ! empty( $widget['view_id'] ) && $widget['view_id'] == $view->ID ) {
489
-				if( $_fields = json_decode( $widget['search_fields'], true ) ) {
488
+			if ( ! empty( $widget[ 'view_id' ] ) && $widget[ 'view_id' ] == $view->ID ) {
489
+				if ( $_fields = json_decode( $widget[ 'search_fields' ], true ) ) {
490 490
 					foreach ( $_fields as $field ) {
491
-						$searchable_fields [] = $with_full_field ? $field : $field['field'];
491
+						$searchable_fields [ ] = $with_full_field ? $field : $field[ 'field' ];
492 492
 					}
493 493
 				}
494 494
 			}
495 495
 		}
496 496
 
497 497
 		foreach ( $view->widgets->by_id( $this->get_widget_id() )->all() as $widget ) {
498
-			if( $_fields = json_decode( $widget->configuration->get( 'search_fields' ), true ) ) {
498
+			if ( $_fields = json_decode( $widget->configuration->get( 'search_fields' ), true ) ) {
499 499
 				foreach ( $_fields as $field ) {
500
-					$searchable_fields [] = $with_full_field ? $field : $field['field'];
500
+					$searchable_fields [ ] = $with_full_field ? $field : $field[ 'field' ];
501 501
 				}
502 502
 			}
503 503
 		}
@@ -527,7 +527,7 @@  discard block
 block discarded – undo
527 527
 			return $search_criteria; // Return the original criteria, GF_Query modification kicks in later
528 528
 		}
529 529
 
530
-		if( 'post' === $this->search_method ) {
530
+		if ( 'post' === $this->search_method ) {
531 531
 			$get = $_POST;
532 532
 		} else {
533 533
 			$get = $_GET;
@@ -546,14 +546,14 @@  discard block
 block discarded – undo
546 546
 		$get = gv_map_deep( $get, 'rawurldecode' );
547 547
 
548 548
 		// Make sure array key is set up
549
-		$search_criteria['field_filters'] = \GV\Utils::get( $search_criteria, 'field_filters', array() );
549
+		$search_criteria[ 'field_filters' ] = \GV\Utils::get( $search_criteria, 'field_filters', array() );
550 550
 
551 551
 		$searchable_fields = $this->get_view_searchable_fields( $view );
552 552
 
553 553
 		// add free search
554
-		if ( isset( $get['gv_search'] ) && '' !== $get['gv_search'] && in_array( 'search_all', $searchable_fields ) ) {
554
+		if ( isset( $get[ 'gv_search' ] ) && '' !== $get[ 'gv_search' ] && in_array( 'search_all', $searchable_fields ) ) {
555 555
 
556
-			$search_all_value = trim( $get['gv_search'] );
556
+			$search_all_value = trim( $get[ 'gv_search' ] );
557 557
 
558 558
 			/**
559 559
 			 * @filter `gravityview/search-all-split-words` Search for each word separately or the whole phrase?
@@ -578,7 +578,7 @@  discard block
 block discarded – undo
578 578
 			}
579 579
 
580 580
 			foreach ( $words as $word ) {
581
-				$search_criteria['field_filters'][] = array(
581
+				$search_criteria[ 'field_filters' ][ ] = array(
582 582
 					'key' => null, // The field ID to search
583 583
 					'value' => $word, // The value to search
584 584
 					'operator' => 'contains', // What to search in. Options: `is` or `contains`
@@ -591,14 +591,14 @@  discard block
 block discarded – undo
591 591
 			/**
592 592
 			 * Get and normalize the dates according to the input format.
593 593
 			 */
594
-			if ( $curr_start = ! empty( $get['gv_start'] ) ? $get['gv_start'] : '' ) {
595
-				if( $curr_start_date = date_create_from_format( $this->get_datepicker_format( true ), $curr_start ) ) {
594
+			if ( $curr_start = ! empty( $get[ 'gv_start' ] ) ? $get[ 'gv_start' ] : '' ) {
595
+				if ( $curr_start_date = date_create_from_format( $this->get_datepicker_format( true ), $curr_start ) ) {
596 596
 					$curr_start = $curr_start_date->format( 'Y-m-d' );
597 597
 				}
598 598
 			}
599 599
 
600
-			if ( $curr_end = ! empty( $get['gv_start'] ) ? ( ! empty( $get['gv_end'] ) ? $get['gv_end'] : '' ) : '' ) {
601
-				if( $curr_end_date = date_create_from_format( $this->get_datepicker_format( true ), $curr_end ) ) {
600
+			if ( $curr_end = ! empty( $get[ 'gv_start' ] ) ? ( ! empty( $get[ 'gv_end' ] ) ? $get[ 'gv_end' ] : '' ) : '' ) {
601
+				if ( $curr_end_date = date_create_from_format( $this->get_datepicker_format( true ), $curr_end ) ) {
602 602
 					$curr_end = $curr_end_date->format( 'Y-m-d' );
603 603
 				}
604 604
 			}
@@ -633,22 +633,22 @@  discard block
 block discarded – undo
633 633
 			 */
634 634
 			if ( ! empty( $curr_start ) ) {
635 635
 				$curr_start = date( 'Y-m-d H:i:s', strtotime( $curr_start ) );
636
-				$search_criteria['start_date'] = $adjust_tz ? get_gmt_from_date( $curr_start ) : $curr_start;
636
+				$search_criteria[ 'start_date' ] = $adjust_tz ? get_gmt_from_date( $curr_start ) : $curr_start;
637 637
 			}
638 638
 
639 639
 			if ( ! empty( $curr_end ) ) {
640 640
 				// Fast-forward 24 hour on the end time
641 641
 				$curr_end = date( 'Y-m-d H:i:s', strtotime( $curr_end ) + DAY_IN_SECONDS );
642
-				$search_criteria['end_date'] = $adjust_tz ? get_gmt_from_date( $curr_end ) : $curr_end;
643
-				if ( strpos( $search_criteria['end_date'], '00:00:00' ) ) { // See https://github.com/gravityview/GravityView/issues/1056
644
-					$search_criteria['end_date'] = date( 'Y-m-d H:i:s', strtotime( $search_criteria['end_date'] ) - 1 );
642
+				$search_criteria[ 'end_date' ] = $adjust_tz ? get_gmt_from_date( $curr_end ) : $curr_end;
643
+				if ( strpos( $search_criteria[ 'end_date' ], '00:00:00' ) ) { // See https://github.com/gravityview/GravityView/issues/1056
644
+					$search_criteria[ 'end_date' ] = date( 'Y-m-d H:i:s', strtotime( $search_criteria[ 'end_date' ] ) - 1 );
645 645
 				}
646 646
 			}
647 647
 		}
648 648
 
649 649
 		// search for a specific entry ID
650 650
 		if ( ! empty( $get[ 'gv_id' ] ) && in_array( 'entry_id', $searchable_fields ) ) {
651
-			$search_criteria['field_filters'][] = array(
651
+			$search_criteria[ 'field_filters' ][ ] = array(
652 652
 				'key' => 'id',
653 653
 				'value' => absint( $get[ 'gv_id' ] ),
654 654
 				'operator' => '=',
@@ -657,41 +657,41 @@  discard block
 block discarded – undo
657 657
 
658 658
 		// search for a specific Created_by ID
659 659
 		if ( ! empty( $get[ 'gv_by' ] ) && in_array( 'created_by', $searchable_fields ) ) {
660
-			$search_criteria['field_filters'][] = array(
660
+			$search_criteria[ 'field_filters' ][ ] = array(
661 661
 				'key' => 'created_by',
662
-				'value' => $get['gv_by'],
662
+				'value' => $get[ 'gv_by' ],
663 663
 				'operator' => '=',
664 664
 			);
665 665
 		}
666 666
 
667 667
 		// Get search mode passed in URL
668
-		$mode = isset( $get['mode'] ) && in_array( $get['mode'], array( 'any', 'all' ) ) ?  $get['mode'] : 'any';
668
+		$mode = isset( $get[ 'mode' ] ) && in_array( $get[ 'mode' ], array( 'any', 'all' ) ) ? $get[ 'mode' ] : 'any';
669 669
 
670 670
 		// get the other search filters
671 671
 		foreach ( $get as $key => $value ) {
672 672
 
673
-			if ( 0 !== strpos( $key, 'filter_' ) || gv_empty( $value, false, false ) || ( is_array( $value ) && count( $value ) === 1 && gv_empty( $value[0], false, false ) ) ) {
673
+			if ( 0 !== strpos( $key, 'filter_' ) || gv_empty( $value, false, false ) || ( is_array( $value ) && count( $value ) === 1 && gv_empty( $value[ 0 ], false, false ) ) ) {
674 674
 				continue;
675 675
 			}
676 676
 
677 677
 			$filter_key = $this->convert_request_key_to_filter_key( $key );
678 678
 
679 679
 			// could return simple filter or multiple filters
680
-			if ( ! in_array( 'search_all', $searchable_fields ) && ! in_array( $filter_key , $searchable_fields ) ) {
680
+			if ( ! in_array( 'search_all', $searchable_fields ) && ! in_array( $filter_key, $searchable_fields ) ) {
681 681
 				continue;
682 682
 			}
683 683
 
684 684
 			$filter = $this->prepare_field_filter( $filter_key, $value, $view );
685 685
 
686
-			if ( isset( $filter[0]['value'] ) ) {
687
-				$search_criteria['field_filters'] = array_merge( $search_criteria['field_filters'], $filter );
686
+			if ( isset( $filter[ 0 ][ 'value' ] ) ) {
687
+				$search_criteria[ 'field_filters' ] = array_merge( $search_criteria[ 'field_filters' ], $filter );
688 688
 
689 689
 				// if date range type, set search mode to ALL
690
-				if ( ! empty( $filter[0]['operator'] ) && in_array( $filter[0]['operator'], array( '>=', '<=', '>', '<' ) ) ) {
690
+				if ( ! empty( $filter[ 0 ][ 'operator' ] ) && in_array( $filter[ 0 ][ 'operator' ], array( '>=', '<=', '>', '<' ) ) ) {
691 691
 					$mode = 'all';
692 692
 				}
693
-			} elseif( !empty( $filter ) ) {
694
-				$search_criteria['field_filters'][] = $filter;
693
+			} elseif ( ! empty( $filter ) ) {
694
+				$search_criteria[ 'field_filters' ][ ] = $filter;
695 695
 			}
696 696
 		}
697 697
 
@@ -700,7 +700,7 @@  discard block
 block discarded – undo
700 700
 		 * @since 1.5.1
701 701
 		 * @param[out,in] string $mode Search mode (`any` vs `all`)
702 702
 		 */
703
-		$search_criteria['field_filters']['mode'] = apply_filters( 'gravityview/search/mode', $mode );
703
+		$search_criteria[ 'field_filters' ][ 'mode' ] = apply_filters( 'gravityview/search/mode', $mode );
704 704
 
705 705
 		gravityview()->log->debug( 'Returned Search Criteria: ', array( 'data' => $search_criteria ) );
706 706
 
@@ -725,15 +725,15 @@  discard block
 block discarded – undo
725 725
 		 */
726 726
 		$search_criteria = $this->filter_entries( array(), null, array( 'id' => $view->ID ), true /** force search_criteria */ );
727 727
 
728
-		if ( empty( $search_criteria['field_filters'] ) ) {
728
+		if ( empty( $search_criteria[ 'field_filters' ] ) ) {
729 729
 			return;
730 730
 		}
731 731
 
732 732
 		$widgets = $view->widgets->by_id( $this->widget_id );
733 733
 		if ( $widgets->count() ) {
734
-			$widget = $widgets->all()[0];
734
+			$widget = $widgets->all()[ 0 ];
735 735
 			foreach ( $search_fields = json_decode( $widget->configuration->get( 'search_fields' ), true ) as $search_field ) {
736
-				if ( 'created_by' === $search_field['field'] && 'input_text' === $search_field['input'] ) {
736
+				if ( 'created_by' === $search_field[ 'field' ] && 'input_text' === $search_field[ 'input' ] ) {
737 737
 					$created_by_text_mode = true;
738 738
 				}
739 739
 			}
@@ -741,19 +741,19 @@  discard block
 block discarded – undo
741 741
 
742 742
 		$extra_conditions = array();
743 743
 
744
-		foreach ( $search_criteria['field_filters'] as &$filter ) {
744
+		foreach ( $search_criteria[ 'field_filters' ] as &$filter ) {
745 745
 			if ( ! is_array( $filter ) ) {
746 746
 				continue;
747 747
 			}
748 748
 
749 749
 			// Construct a manual query for unapproved statuses
750
-			if ( 'is_approved' === $filter['key'] && in_array( \GravityView_Entry_Approval_Status::UNAPPROVED, $filter['value'] ) ) {
751
-				$_tmp_query       = new GF_Query( $view->form->ID, array(
750
+			if ( 'is_approved' === $filter[ 'key' ] && in_array( \GravityView_Entry_Approval_Status::UNAPPROVED, $filter[ 'value' ] ) ) {
751
+				$_tmp_query = new GF_Query( $view->form->ID, array(
752 752
 					'field_filters' => array(
753 753
 						array(
754 754
 							'operator' => 'in',
755 755
 							'key'      => 'is_approved',
756
-							'value'    => $filter['value'],
756
+							'value'    => $filter[ 'value' ],
757 757
 						),
758 758
 						array(
759 759
 							'operator' => 'is',
@@ -765,17 +765,17 @@  discard block
 block discarded – undo
765 765
 				) );
766 766
 				$_tmp_query_parts = $_tmp_query->_introspect();
767 767
 
768
-				$extra_conditions[] = $_tmp_query_parts['where'];
768
+				$extra_conditions[ ] = $_tmp_query_parts[ 'where' ];
769 769
 
770 770
 				$filter = false;
771 771
 				continue;
772 772
 			}
773 773
 
774 774
 			// Construct manual query for text mode creator search
775
-			if ( 'created_by' === $filter['key'] && ! empty( $created_by_text_mode ) ) {
776
-				$extra_conditions[] = new class( $filter, $view ) extends \GF_Query_Condition {
775
+			if ( 'created_by' === $filter[ 'key' ] && ! empty( $created_by_text_mode ) ) {
776
+				$extra_conditions[ ] = new class( $filter, $view ) extends \GF_Query_Condition {
777 777
 					public function __construct( $filter, $view ) {
778
-						$this->value = $filter['value'];
778
+						$this->value = $filter[ 'value' ];
779 779
 						$this->view = $view;
780 780
 					}
781 781
 
@@ -809,11 +809,11 @@  discard block
 block discarded – undo
809 809
 						$conditions = array();
810 810
 
811 811
 						foreach ( $user_fields as $user_field ) {
812
-							$conditions[] = $wpdb->prepare( "`u`.`$user_field` LIKE %s", '%' . $wpdb->esc_like( $this->value ) .  '%' );
812
+							$conditions[ ] = $wpdb->prepare( "`u`.`$user_field` LIKE %s", '%' . $wpdb->esc_like( $this->value ) . '%' );
813 813
 						}
814 814
 
815 815
 						foreach ( $user_meta_fields as $meta_field ) {
816
-							$conditions[] = $wpdb->prepare( "(`um`.`meta_key` = %s AND `um`.`meta_value` LIKE %s)", $meta_field, '%' . $wpdb->esc_like( $this->value ) .  '%' );
816
+							$conditions[ ] = $wpdb->prepare( "(`um`.`meta_key` = %s AND `um`.`meta_value` LIKE %s)", $meta_field, '%' . $wpdb->esc_like( $this->value ) . '%' );
817 817
 						}
818 818
 
819 819
 						$conditions = '(' . implode( ' OR ', $conditions ) . ')';
@@ -829,11 +829,11 @@  discard block
 block discarded – undo
829 829
 			}
830 830
 
831 831
 			// By default, we want searches to be wildcard for each field.
832
-			$filter['operator'] = empty( $filter['operator'] ) ? 'contains' : $filter['operator'];
832
+			$filter[ 'operator' ] = empty( $filter[ 'operator' ] ) ? 'contains' : $filter[ 'operator' ];
833 833
 
834 834
 			// For multichoice, let's have an in (OR) search.
835
-			if ( is_array( $filter['value'] ) ) {
836
-				$filter['operator'] = 'in'; // @todo what about in contains (OR LIKE chains)?
835
+			if ( is_array( $filter[ 'value' ] ) ) {
836
+				$filter[ 'operator' ] = 'in'; // @todo what about in contains (OR LIKE chains)?
837 837
 			}
838 838
 
839 839
 			/**
@@ -841,10 +841,10 @@  discard block
 block discarded – undo
841 841
 			 * @param string $operator Existing search operator
842 842
 			 * @param array $filter array with `key`, `value`, `operator`, `type` keys
843 843
 			 */
844
-			$filter['operator'] = apply_filters( 'gravityview_search_operator', $filter['operator'], $filter );
844
+			$filter[ 'operator' ] = apply_filters( 'gravityview_search_operator', $filter[ 'operator' ], $filter );
845 845
 		}
846 846
 
847
-		$search_criteria['field_filters'] = array_filter( $search_criteria['field_filters'] );
847
+		$search_criteria[ 'field_filters' ] = array_filter( $search_criteria[ 'field_filters' ] );
848 848
 
849 849
 		/**
850 850
 		 * Parse the filter criteria to generate the needed
@@ -857,12 +857,12 @@  discard block
 block discarded – undo
857 857
 		/**
858 858
 		 * Grab the current clauses. We'll be combining them shortly.
859 859
 		 */
860
-		$query_parts      = $query->_introspect();
860
+		$query_parts = $query->_introspect();
861 861
 
862 862
 		/**
863 863
 		 * Combine the parts as a new WHERE clause.
864 864
 		 */
865
-		$where = call_user_func_array( '\GF_Query_Condition::_and', array_merge( array( $query_parts['where'], $_tmp_query_parts['where'] ), $extra_conditions ) );
865
+		$where = call_user_func_array( '\GF_Query_Condition::_and', array_merge( array( $query_parts[ 'where' ], $_tmp_query_parts[ 'where' ] ), $extra_conditions ) );
866 866
 		$query->where( $where );
867 867
 	}
868 868
 
@@ -885,7 +885,7 @@  discard block
 block discarded – undo
885 885
 		$field_id = str_replace( 'filter_', '', $key );
886 886
 
887 887
 		// calculates field_id, removing 'filter_' and for '_' for advanced fields ( like name or checkbox )
888
-		if ( preg_match('/^[0-9_]+$/ism', $field_id ) ) {
888
+		if ( preg_match( '/^[0-9_]+$/ism', $field_id ) ) {
889 889
 			$field_id = str_replace( '_', '.', $field_id );
890 890
 		}
891 891
 
@@ -920,7 +920,7 @@  discard block
 block discarded – undo
920 920
 
921 921
 			case 'select':
922 922
 			case 'radio':
923
-				$filter['operator'] = 'is';
923
+				$filter[ 'operator' ] = 'is';
924 924
 				break;
925 925
 
926 926
 			case 'post_category':
@@ -934,7 +934,7 @@  discard block
 block discarded – undo
934 934
 
935 935
 				foreach ( $value as $val ) {
936 936
 					$cat = get_term( $val, 'category' );
937
-					$filter[] = array(
937
+					$filter[ ] = array(
938 938
 						'key'      => $filter_key,
939 939
 						'value'    => esc_attr( $cat->name ) . ':' . $val,
940 940
 						'operator' => 'is',
@@ -953,7 +953,7 @@  discard block
 block discarded – undo
953 953
 				$filter = array();
954 954
 
955 955
 				foreach ( $value as $val ) {
956
-					$filter[] = array( 'key' => $filter_key, 'value' => $val );
956
+					$filter[ ] = array( 'key' => $filter_key, 'value' => $val );
957 957
 				}
958 958
 
959 959
 				break;
@@ -962,9 +962,9 @@  discard block
 block discarded – undo
962 962
 				// convert checkbox on/off into the correct search filter
963 963
 				if ( false !== strpos( $filter_key, '.' ) && ! empty( $form_field->inputs ) && ! empty( $form_field->choices ) ) {
964 964
 					foreach ( $form_field->inputs as $k => $input ) {
965
-						if ( $input['id'] == $filter_key ) {
966
-							$filter['value'] = $form_field->choices[ $k ]['value'];
967
-							$filter['operator'] = 'is';
965
+						if ( $input[ 'id' ] == $filter_key ) {
966
+							$filter[ 'value' ] = $form_field->choices[ $k ][ 'value' ];
967
+							$filter[ 'operator' ] = 'is';
968 968
 							break;
969 969
 						}
970 970
 					}
@@ -974,7 +974,7 @@  discard block
 block discarded – undo
974 974
 					$filter = array();
975 975
 
976 976
 					foreach ( $value as $val ) {
977
-						$filter[] = array(
977
+						$filter[ ] = array(
978 978
 							'key'      => $filter_key,
979 979
 							'value'    => $val,
980 980
 							'operator' => 'is',
@@ -995,9 +995,9 @@  discard block
 block discarded – undo
995 995
 					foreach ( $words as $word ) {
996 996
 						if ( ! empty( $word ) && strlen( $word ) > 1 ) {
997 997
 							// Keep the same key for each filter
998
-							$filter['value'] = $word;
998
+							$filter[ 'value' ] = $word;
999 999
 							// Add a search for the value
1000
-							$filters[] = $filter;
1000
+							$filters[ ] = $filter;
1001 1001
 						}
1002 1002
 					}
1003 1003
 
@@ -1011,19 +1011,19 @@  discard block
 block discarded – undo
1011 1011
 
1012 1012
 					foreach ( $searchable_fields as $searchable_field ) {
1013 1013
 
1014
-						if( $form_field->ID !== $searchable_field['field'] ) {
1014
+						if ( $form_field->ID !== $searchable_field[ 'field' ] ) {
1015 1015
 							continue;
1016 1016
 						}
1017 1017
 
1018 1018
 						// Only exact-match dropdowns, not text search
1019
-						if( in_array( $searchable_field['input'], array( 'text', 'search' ), true ) ) {
1019
+						if ( in_array( $searchable_field[ 'input' ], array( 'text', 'search' ), true ) ) {
1020 1020
 							continue;
1021 1021
 						}
1022 1022
 
1023 1023
 						$input_id = gravityview_get_input_id_from_id( $form_field->ID );
1024 1024
 
1025 1025
 						if ( 4 === $input_id ) {
1026
-							$filter['operator'] = 'is';
1026
+							$filter[ 'operator' ] = 'is';
1027 1027
 						};
1028 1028
 					}
1029 1029
 				}
@@ -1050,12 +1050,12 @@  discard block
 block discarded – undo
1050 1050
 						 * @since 1.16.3
1051 1051
 						 * Safeguard until GF implements '<=' operator
1052 1052
 						 */
1053
-						if( !GFFormsModel::is_valid_operator( $operator ) && $operator === '<=' ) {
1053
+						if ( ! GFFormsModel::is_valid_operator( $operator ) && $operator === '<=' ) {
1054 1054
 							$operator = '<';
1055 1055
 							$date = date( 'Y-m-d', strtotime( self::get_formatted_date( $date, 'Y-m-d', $date_format ) . ' +1 day' ) );
1056 1056
 						}
1057 1057
 
1058
-						$filter[] = array(
1058
+						$filter[ ] = array(
1059 1059
 							'key'      => $filter_key,
1060 1060
 							'value'    => self::get_formatted_date( $date, 'Y-m-d', $date_format ),
1061 1061
 							'operator' => $operator,
@@ -1063,7 +1063,7 @@  discard block
 block discarded – undo
1063 1063
 					}
1064 1064
 				} else {
1065 1065
 					$date = $value;
1066
-					$filter['value'] = self::get_formatted_date( $date, 'Y-m-d', $date_format );
1066
+					$filter[ 'value' ] = self::get_formatted_date( $date, 'Y-m-d', $date_format );
1067 1067
 				}
1068 1068
 
1069 1069
 				break;
@@ -1094,7 +1094,7 @@  discard block
 block discarded – undo
1094 1094
 			'ymd_dot' => 'Y.m.d',
1095 1095
 		);
1096 1096
 
1097
-		if ( ! empty( $field->dateFormat ) && isset( $datepicker[ $field->dateFormat ] ) ){
1097
+		if ( ! empty( $field->dateFormat ) && isset( $datepicker[ $field->dateFormat ] ) ) {
1098 1098
 			$format = $datepicker[ $field->dateFormat ];
1099 1099
 		}
1100 1100
 
@@ -1131,7 +1131,7 @@  discard block
 block discarded – undo
1131 1131
 	public function add_template_path( $file_paths ) {
1132 1132
 
1133 1133
 		// Index 100 is the default GravityView template path.
1134
-		$file_paths[102] = self::$file . 'templates/';
1134
+		$file_paths[ 102 ] = self::$file . 'templates/';
1135 1135
 
1136 1136
 		return $file_paths;
1137 1137
 	}
@@ -1150,7 +1150,7 @@  discard block
 block discarded – undo
1150 1150
 		$has_date = false;
1151 1151
 
1152 1152
 		foreach ( $search_fields as $k => $field ) {
1153
-			if ( in_array( $field['input'], array( 'date', 'date_range', 'entry_date' ) ) ) {
1153
+			if ( in_array( $field[ 'input' ], array( 'date', 'date_range', 'entry_date' ) ) ) {
1154 1154
 				$has_date = true;
1155 1155
 				break;
1156 1156
 			}
@@ -1177,7 +1177,7 @@  discard block
 block discarded – undo
1177 1177
 		}
1178 1178
 
1179 1179
 		// get configured search fields
1180
-		$search_fields = ! empty( $widget_args['search_fields'] ) ? json_decode( $widget_args['search_fields'], true ) : '';
1180
+		$search_fields = ! empty( $widget_args[ 'search_fields' ] ) ? json_decode( $widget_args[ 'search_fields' ], true ) : '';
1181 1181
 
1182 1182
 		if ( empty( $search_fields ) || ! is_array( $search_fields ) ) {
1183 1183
 			gravityview()->log->debug( 'No search fields configured for widget:', array( 'data' => $widget_args ) );
@@ -1192,41 +1192,41 @@  discard block
 block discarded – undo
1192 1192
 
1193 1193
 			$updated_field = $this->get_search_filter_details( $updated_field );
1194 1194
 
1195
-			switch ( $field['field'] ) {
1195
+			switch ( $field[ 'field' ] ) {
1196 1196
 
1197 1197
 				case 'search_all':
1198
-					$updated_field['key'] = 'search_all';
1199
-					$updated_field['input'] = 'search_all';
1200
-					$updated_field['value'] = $this->rgget_or_rgpost( 'gv_search' );
1198
+					$updated_field[ 'key' ] = 'search_all';
1199
+					$updated_field[ 'input' ] = 'search_all';
1200
+					$updated_field[ 'value' ] = $this->rgget_or_rgpost( 'gv_search' );
1201 1201
 					break;
1202 1202
 
1203 1203
 				case 'entry_date':
1204
-					$updated_field['key'] = 'entry_date';
1205
-					$updated_field['input'] = 'entry_date';
1206
-					$updated_field['value'] = array(
1204
+					$updated_field[ 'key' ] = 'entry_date';
1205
+					$updated_field[ 'input' ] = 'entry_date';
1206
+					$updated_field[ 'value' ] = array(
1207 1207
 						'start' => $this->rgget_or_rgpost( 'gv_start' ),
1208 1208
 						'end' => $this->rgget_or_rgpost( 'gv_end' ),
1209 1209
 					);
1210 1210
 					break;
1211 1211
 
1212 1212
 				case 'entry_id':
1213
-					$updated_field['key'] = 'entry_id';
1214
-					$updated_field['input'] = 'entry_id';
1215
-					$updated_field['value'] = $this->rgget_or_rgpost( 'gv_id' );
1213
+					$updated_field[ 'key' ] = 'entry_id';
1214
+					$updated_field[ 'input' ] = 'entry_id';
1215
+					$updated_field[ 'value' ] = $this->rgget_or_rgpost( 'gv_id' );
1216 1216
 					break;
1217 1217
 
1218 1218
 				case 'created_by':
1219
-					$updated_field['key'] = 'created_by';
1220
-					$updated_field['name'] = 'gv_by';
1221
-					$updated_field['value'] = $this->rgget_or_rgpost( 'gv_by' );
1222
-					$updated_field['choices'] = self::get_created_by_choices();
1219
+					$updated_field[ 'key' ] = 'created_by';
1220
+					$updated_field[ 'name' ] = 'gv_by';
1221
+					$updated_field[ 'value' ] = $this->rgget_or_rgpost( 'gv_by' );
1222
+					$updated_field[ 'choices' ] = self::get_created_by_choices();
1223 1223
 					break;
1224 1224
 				
1225 1225
 				case 'is_approved':
1226
-					$updated_field['key'] = 'is_approved';
1227
-					$updated_field['input'] = 'checkbox';
1228
-					$updated_field['value'] = $this->rgget_or_rgpost( 'filter_is_approved' );
1229
-					$updated_field['choices'] = self::get_is_approved_choices();
1226
+					$updated_field[ 'key' ] = 'is_approved';
1227
+					$updated_field[ 'input' ] = 'checkbox';
1228
+					$updated_field[ 'value' ] = $this->rgget_or_rgpost( 'filter_is_approved' );
1229
+					$updated_field[ 'choices' ] = self::get_is_approved_choices();
1230 1230
 					break;
1231 1231
 			}
1232 1232
 
@@ -1245,16 +1245,16 @@  discard block
 block discarded – undo
1245 1245
 		 */
1246 1246
 		$gravityview_view->search_fields = apply_filters( 'gravityview_widget_search_filters', $search_fields, $this, $widget_args, $context );
1247 1247
 
1248
-		$gravityview_view->search_layout = ! empty( $widget_args['search_layout'] ) ? $widget_args['search_layout'] : 'horizontal';
1248
+		$gravityview_view->search_layout = ! empty( $widget_args[ 'search_layout' ] ) ? $widget_args[ 'search_layout' ] : 'horizontal';
1249 1249
 
1250 1250
 		/** @since 1.14 */
1251
-		$gravityview_view->search_mode = ! empty( $widget_args['search_mode'] ) ? $widget_args['search_mode'] : 'any';
1251
+		$gravityview_view->search_mode = ! empty( $widget_args[ 'search_mode' ] ) ? $widget_args[ 'search_mode' ] : 'any';
1252 1252
 
1253
-		$custom_class = ! empty( $widget_args['custom_class'] ) ? $widget_args['custom_class'] : '';
1253
+		$custom_class = ! empty( $widget_args[ 'custom_class' ] ) ? $widget_args[ 'custom_class' ] : '';
1254 1254
 
1255 1255
 		$gravityview_view->search_class = self::get_search_class( $custom_class );
1256 1256
 
1257
-		$gravityview_view->search_clear = ! empty( $widget_args['search_clear'] ) ? $widget_args['search_clear'] : false;
1257
+		$gravityview_view->search_clear = ! empty( $widget_args[ 'search_clear' ] ) ? $widget_args[ 'search_clear' ] : false;
1258 1258
 
1259 1259
 		if ( $this->has_date_field( $search_fields ) ) {
1260 1260
 			// enqueue datepicker stuff only if needed!
@@ -1276,10 +1276,10 @@  discard block
 block discarded – undo
1276 1276
 	public static function get_search_class( $custom_class = '' ) {
1277 1277
 		$gravityview_view = GravityView_View::getInstance();
1278 1278
 
1279
-		$search_class = 'gv-search-'.$gravityview_view->search_layout;
1279
+		$search_class = 'gv-search-' . $gravityview_view->search_layout;
1280 1280
 
1281
-		if ( ! empty( $custom_class )  ) {
1282
-			$search_class .= ' '.$custom_class;
1281
+		if ( ! empty( $custom_class ) ) {
1282
+			$search_class .= ' ' . $custom_class;
1283 1283
 		}
1284 1284
 
1285 1285
 		/**
@@ -1323,9 +1323,9 @@  discard block
 block discarded – undo
1323 1323
 
1324 1324
 		if ( ! $label ) {
1325 1325
 
1326
-			$label = isset( $form_field['label'] ) ? $form_field['label'] : '';
1326
+			$label = isset( $form_field[ 'label' ] ) ? $form_field[ 'label' ] : '';
1327 1327
 
1328
-			switch( $field['field'] ) {
1328
+			switch ( $field[ 'field' ] ) {
1329 1329
 				case 'search_all':
1330 1330
 					$label = __( 'Search Entries:', 'gravityview' );
1331 1331
 					break;
@@ -1337,10 +1337,10 @@  discard block
 block discarded – undo
1337 1337
 					break;
1338 1338
 				default:
1339 1339
 					// If this is a field input, not a field
1340
-					if ( strpos( $field['field'], '.' ) > 0 && ! empty( $form_field['inputs'] ) ) {
1340
+					if ( strpos( $field[ 'field' ], '.' ) > 0 && ! empty( $form_field[ 'inputs' ] ) ) {
1341 1341
 
1342 1342
 						// Get the label for the field in question, which returns an array
1343
-						$items = wp_list_filter( $form_field['inputs'], array( 'id' => $field['field'] ) );
1343
+						$items = wp_list_filter( $form_field[ 'inputs' ], array( 'id' => $field[ 'field' ] ) );
1344 1344
 
1345 1345
 						// Get the item with the `label` key
1346 1346
 						$values = wp_list_pluck( $items, 'label' );
@@ -1379,32 +1379,32 @@  discard block
 block discarded – undo
1379 1379
 		$form = $gravityview_view->getForm();
1380 1380
 
1381 1381
 		// for advanced field ids (eg, first name / last name )
1382
-		$name = 'filter_' . str_replace( '.', '_', $field['field'] );
1382
+		$name = 'filter_' . str_replace( '.', '_', $field[ 'field' ] );
1383 1383
 
1384 1384
 		// get searched value from $_GET/$_POST (string or array)
1385 1385
 		$value = $this->rgget_or_rgpost( $name );
1386 1386
 
1387 1387
 		// get form field details
1388
-		$form_field = gravityview_get_field( $form, $field['field'] );
1388
+		$form_field = gravityview_get_field( $form, $field[ 'field' ] );
1389 1389
 
1390 1390
 		$filter = array(
1391
-			'key' => $field['field'],
1391
+			'key' => $field[ 'field' ],
1392 1392
 			'name' => $name,
1393 1393
 			'label' => self::get_field_label( $field, $form_field ),
1394
-			'input' => $field['input'],
1394
+			'input' => $field[ 'input' ],
1395 1395
 			'value' => $value,
1396
-			'type' => $form_field['type'],
1396
+			'type' => $form_field[ 'type' ],
1397 1397
 		);
1398 1398
 
1399 1399
 		// collect choices
1400
-		if ( 'post_category' === $form_field['type'] && ! empty( $form_field['displayAllCategories'] ) && empty( $form_field['choices'] ) ) {
1401
-			$filter['choices'] = gravityview_get_terms_choices();
1402
-		} elseif ( ! empty( $form_field['choices'] ) ) {
1403
-			$filter['choices'] = $form_field['choices'];
1400
+		if ( 'post_category' === $form_field[ 'type' ] && ! empty( $form_field[ 'displayAllCategories' ] ) && empty( $form_field[ 'choices' ] ) ) {
1401
+			$filter[ 'choices' ] = gravityview_get_terms_choices();
1402
+		} elseif ( ! empty( $form_field[ 'choices' ] ) ) {
1403
+			$filter[ 'choices' ] = $form_field[ 'choices' ];
1404 1404
 		}
1405 1405
 
1406
-		if ( 'date_range' === $field['input'] && empty( $value ) ) {
1407
-			$filter['value'] = array( 'start' => '', 'end' => '' );
1406
+		if ( 'date_range' === $field[ 'input' ] && empty( $value ) ) {
1407
+			$filter[ 'value' ] = array( 'start' => '', 'end' => '' );
1408 1408
 		}
1409 1409
 
1410 1410
 		return $filter;
@@ -1428,7 +1428,7 @@  discard block
 block discarded – undo
1428 1428
 
1429 1429
 		$choices = array();
1430 1430
 		foreach ( $users as $user ) {
1431
-			$choices[] = array(
1431
+			$choices[ ] = array(
1432 1432
 				'value' => $user->ID,
1433 1433
 				'text' => $user->display_name,
1434 1434
 			);
@@ -1448,9 +1448,9 @@  discard block
 block discarded – undo
1448 1448
 
1449 1449
 		$choices = array();
1450 1450
 		foreach ( GravityView_Entry_Approval_Status::get_all() as $status ) {
1451
-			$choices[] = array(
1452
-				'value' => $status['value'],
1453
-				'text' => $status['label'],
1451
+			$choices[ ] = array(
1452
+				'value' => $status[ 'value' ],
1453
+				'text' => $status[ 'label' ],
1454 1454
 			);
1455 1455
 		}
1456 1456
 
@@ -1502,7 +1502,7 @@  discard block
 block discarded – undo
1502 1502
 	 */
1503 1503
 	public function add_datepicker_js_dependency( $js_dependencies ) {
1504 1504
 
1505
-		$js_dependencies[] = 'jquery-ui-datepicker';
1505
+		$js_dependencies[ ] = 'jquery-ui-datepicker';
1506 1506
 
1507 1507
 		return $js_dependencies;
1508 1508
 	}
@@ -1546,7 +1546,7 @@  discard block
 block discarded – undo
1546 1546
 			'isRTL'             => is_rtl(),
1547 1547
 		), $view_data );
1548 1548
 
1549
-		$localizations['datepicker'] = $datepicker_settings;
1549
+		$localizations[ 'datepicker' ] = $datepicker_settings;
1550 1550
 
1551 1551
 		return $localizations;
1552 1552
 
@@ -1573,7 +1573,7 @@  discard block
 block discarded – undo
1573 1573
 	 * @return void
1574 1574
 	 */
1575 1575
 	private function maybe_enqueue_flexibility() {
1576
-		if ( isset( $_SERVER['HTTP_USER_AGENT'] ) && preg_match( '/MSIE [8-9]/', $_SERVER['HTTP_USER_AGENT'] ) ) {
1576
+		if ( isset( $_SERVER[ 'HTTP_USER_AGENT' ] ) && preg_match( '/MSIE [8-9]/', $_SERVER[ 'HTTP_USER_AGENT' ] ) ) {
1577 1577
 			wp_enqueue_script( 'gv-flexibility' );
1578 1578
 		}
1579 1579
 	}
@@ -1595,7 +1595,7 @@  discard block
 block discarded – undo
1595 1595
 		add_filter( 'gravityview_js_localization', array( $this, 'add_datepicker_localization' ), 10, 2 );
1596 1596
 
1597 1597
 		$scheme = is_ssl() ? 'https://' : 'http://';
1598
-		wp_enqueue_style( 'jquery-ui-datepicker', $scheme.'ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/themes/smoothness/jquery-ui.css' );
1598
+		wp_enqueue_style( 'jquery-ui-datepicker', $scheme . 'ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/themes/smoothness/jquery-ui.css' );
1599 1599
 
1600 1600
 		/**
1601 1601
 		 * @filter `gravityview_search_datepicker_class`
Please login to merge, or discard this patch.