From 2f508f8209f70c0916c0a1d49942676d5c024303 Mon Sep 17 00:00:00 2001 From: Mike Letellier Date: Thu, 8 Jan 2026 12:28:00 -0400 Subject: [PATCH] Treat strict in array WP phpcs rule as error --- classes/controllers/FrmEntriesController.php | 1 + classes/helpers/FrmAppHelper.php | 5 +++-- classes/helpers/FrmEntriesHelper.php | 1 + classes/helpers/FrmFieldsHelper.php | 4 ++++ classes/helpers/FrmFormMigratorsHelper.php | 1 + classes/helpers/FrmListHelper.php | 2 ++ classes/helpers/FrmStylesPreviewHelper.php | 5 +++-- classes/helpers/FrmXMLHelper.php | 2 ++ classes/models/FrmAddon.php | 2 +- classes/models/FrmDb.php | 3 ++- classes/models/FrmEntry.php | 1 + classes/models/FrmEntryMeta.php | 1 + classes/models/FrmEntryValues.php | 1 + classes/models/FrmForm.php | 3 ++- classes/models/FrmFormAction.php | 2 +- classes/models/FrmFormMigrator.php | 2 ++ classes/models/FrmSettings.php | 2 +- classes/models/fields/FrmFieldType.php | 1 + classes/views/frm-form-actions/_action_inside.php | 2 +- phpcs.xml | 4 ++++ stripe/helpers/FrmTransLiteListHelper.php | 5 +++-- 21 files changed, 38 insertions(+), 12 deletions(-) diff --git a/classes/controllers/FrmEntriesController.php b/classes/controllers/FrmEntriesController.php index a7fec62b21..43f87cf5a7 100644 --- a/classes/controllers/FrmEntriesController.php +++ b/classes/controllers/FrmEntriesController.php @@ -390,6 +390,7 @@ public static function update_hidden_cols( $meta_id, $object_id, $meta_key, $met $save = false; foreach ( (array) $frm_vars['prev_hidden_cols'] as $prev_hidden ) { + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict if ( empty( $prev_hidden ) || in_array( $prev_hidden, $meta_value ) ) { // Don't add blank cols or process included cols. continue; diff --git a/classes/helpers/FrmAppHelper.php b/classes/helpers/FrmAppHelper.php index 39c9726b50..81a1514b40 100644 --- a/classes/helpers/FrmAppHelper.php +++ b/classes/helpers/FrmAppHelper.php @@ -2308,7 +2308,7 @@ public static function user_has_permission( $needed_role ) { $can = self::current_user_can( $needed_role ); - if ( $can || in_array( $needed_role, array( '-1', 'loggedout' ) ) ) { + if ( $can || in_array( $needed_role, array( '-1', 'loggedout' ), true ) ) { return $can; } @@ -2447,6 +2447,7 @@ public static function check_selected( $values, $current ) { $current = is_null( $current ) ? '' : htmlspecialchars_decode( trim( $current ) ); + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict return ( is_array( $values ) && in_array( $current, $values ) ) || ( ! is_array( $values ) && $values == $current ); } @@ -3565,7 +3566,7 @@ public static function select_current_page( $page, $current_page, $action = arra $frm_action = 'reports'; } - if ( empty( $action ) || ( ! empty( $frm_action ) && in_array( $frm_action, $action ) ) ) { + if ( empty( $action ) || ( ! empty( $frm_action ) && in_array( $frm_action, $action, true ) ) ) { echo ' class="current_page"'; } } diff --git a/classes/helpers/FrmEntriesHelper.php b/classes/helpers/FrmEntriesHelper.php index f0c7c38265..d23711bddc 100644 --- a/classes/helpers/FrmEntriesHelper.php +++ b/classes/helpers/FrmEntriesHelper.php @@ -577,6 +577,7 @@ public static function set_other_validation_val( &$value, $other_vals, $field, & // Multi-select dropdown. if ( is_array( $value ) ) { + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $o_key = array_search( $field->options[ $other_key ], $value ); if ( $o_key !== false ) { diff --git a/classes/helpers/FrmFieldsHelper.php b/classes/helpers/FrmFieldsHelper.php index c45e0302a3..ac9860ca24 100644 --- a/classes/helpers/FrmFieldsHelper.php +++ b/classes/helpers/FrmFieldsHelper.php @@ -698,6 +698,7 @@ public static function show_single_option( $field ) { $field_name = $base_name . ( $default_type === 'checkbox' ? '[' . $opt_key . ']' : '' ); + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $checked = ( isset( $field['default_value'] ) && ( ( ! is_array( $field['default_value'] ) && $field['default_value'] == $field_val ) || ( is_array( $field['default_value'] ) && in_array( $field_val, $field['default_value'] ) ) ) ); // If this is an "Other" option, get the HTML for it. @@ -952,9 +953,11 @@ public static function array_value_condition( $observed_value, $cond, $hide_opt $m = array_intersect( $hide_opt, $observed_value ); $m = $m !== array(); } else { + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $m = in_array( $hide_opt, $observed_value ); } } elseif ( $cond === '!=' ) { + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $m = ! in_array( $hide_opt, $observed_value ); } elseif ( $cond === '>' ) { $min = min( $observed_value ); @@ -1587,6 +1590,7 @@ public static function get_other_val( $args ) { // Multi-select dropdowns - key is not preserved if ( is_array( $field['value'] ) ) { + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $o_key = array_search( $temp_val, $field['value'] ); if ( isset( $field['value'][ $o_key ] ) ) { diff --git a/classes/helpers/FrmFormMigratorsHelper.php b/classes/helpers/FrmFormMigratorsHelper.php index 1e530de405..76b339cb6b 100644 --- a/classes/helpers/FrmFormMigratorsHelper.php +++ b/classes/helpers/FrmFormMigratorsHelper.php @@ -15,6 +15,7 @@ private static function is_dismissed( $form, $dismissed = null ) { if ( $dismissed === null ) { $dismissed = get_option( 'frm_dismissed' ); } + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict return ! empty( $dismissed ) && in_array( $form['class'], $dismissed ); } diff --git a/classes/helpers/FrmListHelper.php b/classes/helpers/FrmListHelper.php index 56d4695929..4312a96a62 100644 --- a/classes/helpers/FrmListHelper.php +++ b/classes/helpers/FrmListHelper.php @@ -976,6 +976,7 @@ public function print_column_headers( $with_id = true ) { $aria_sort_attr = ''; $order_text = ''; + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict if ( in_array( $column_key, $hidden ) ) { $class[] = 'hidden'; } @@ -1229,6 +1230,7 @@ protected function single_row_columns( $item ) { $classes .= ' has-row-actions column-primary'; } + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict if ( in_array( $column_name, $hidden ) ) { $classes .= ' hidden'; } diff --git a/classes/helpers/FrmStylesPreviewHelper.php b/classes/helpers/FrmStylesPreviewHelper.php index 93d33c4a8e..7358e424d9 100644 --- a/classes/helpers/FrmStylesPreviewHelper.php +++ b/classes/helpers/FrmStylesPreviewHelper.php @@ -322,7 +322,7 @@ public static function disable_conflicting_wp_admin_css( $styles ) { $styles->remove( 'edit' ); $wp_admin_dependencies = $styles->registered['wp-admin']->deps; - $edit_key = array_search( 'edit', $wp_admin_dependencies ); + $edit_key = array_search( 'edit', $wp_admin_dependencies, true ); if ( false === $edit_key ) { return; @@ -389,7 +389,8 @@ public static function get_additional_preview_style( $settings, $is_preview = fa */ private static function remove_wp_admin_dependency( $styles, $key ) { $dependencies = $styles->registered['wp-admin']->deps; - $index = array_search( $key, $dependencies ); + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict + $index = array_search( $key, $dependencies ); if ( false === $index ) { return; diff --git a/classes/helpers/FrmXMLHelper.php b/classes/helpers/FrmXMLHelper.php index 14ddd49c1a..c979544169 100644 --- a/classes/helpers/FrmXMLHelper.php +++ b/classes/helpers/FrmXMLHelper.php @@ -2052,9 +2052,11 @@ private static function switch_action_field_ids( $post_content, $basic_fields, $ // Do a str_replace with each item to set the new IDs foreach ( $post_content as $key => $setting ) { + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict if ( ! is_array( $setting ) && in_array( $key, $basic_fields ) ) { // Replace old IDs with new IDs $post_content[ $key ] = str_replace( $old, $new, $setting ); + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict } elseif ( is_array( $setting ) && in_array( $key, $array_fields ) ) { foreach ( $setting as $k => $val ) { // Replace old IDs with new IDs diff --git a/classes/models/FrmAddon.php b/classes/models/FrmAddon.php index 3931c93371..161ef932d8 100644 --- a/classes/models/FrmAddon.php +++ b/classes/models/FrmAddon.php @@ -416,7 +416,7 @@ protected function update_pro_capabilities() { } foreach ( $roles as $role => $details ) { - if ( in_array( $role, $cap_roles ) ) { + if ( in_array( $role, $cap_roles, true ) ) { $wp_roles->add_cap( $role, $cap ); } else { $wp_roles->remove_cap( $role, $cap ); diff --git a/classes/models/FrmDb.php b/classes/models/FrmDb.php index be68a2668c..fd00a0a165 100644 --- a/classes/models/FrmDb.php +++ b/classes/models/FrmDb.php @@ -93,7 +93,8 @@ public static function parse_where_from_array( $args, $base_where, &$where, &$va } foreach ( $args as $key => $value ) { - $where .= empty( $where ) ? $base_where : $condition; + $where .= empty( $where ) ? $base_where : $condition; + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $array_inc_null = ( ! is_numeric( $key ) && is_array( $value ) && in_array( null, $value ) ); if ( is_numeric( $key ) || $array_inc_null ) { diff --git a/classes/models/FrmEntry.php b/classes/models/FrmEntry.php index df54cedb16..e09baf6e01 100644 --- a/classes/models/FrmEntry.php +++ b/classes/models/FrmEntry.php @@ -1145,6 +1145,7 @@ private static function before_update_entry( $id, &$values, $update_type ) { global $frm_vars; + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict if ( isset( $frm_vars['saved_entries'] ) && is_array( $frm_vars['saved_entries'] ) && in_array( (int) $id, $frm_vars['saved_entries'] ) ) { $update = false; } diff --git a/classes/models/FrmEntryMeta.php b/classes/models/FrmEntryMeta.php index 34e6cb10c6..3b814dc8c8 100644 --- a/classes/models/FrmEntryMeta.php +++ b/classes/models/FrmEntryMeta.php @@ -154,6 +154,7 @@ public static function update_entry_metas( $entry_id, $values ) { self::get_value_to_save( compact( 'field', 'field_id', 'entry_id' ), $meta_value ); + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict if ( $previous_field_ids && in_array( $field_id, $previous_field_ids ) ) { if ( $meta_value === array() || ( ! is_array( $meta_value ) && trim( $meta_value ) === '' ) ) { diff --git a/classes/models/FrmEntryValues.php b/classes/models/FrmEntryValues.php index c273d6c16b..aa7f5f4a65 100644 --- a/classes/models/FrmEntryValues.php +++ b/classes/models/FrmEntryValues.php @@ -336,6 +336,7 @@ protected function is_field_included( $field ) { * @return bool */ protected function is_field_in_array( $field, $array ) { + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict return in_array( $field->id, $array ) || in_array( (string) $field->field_key, $array, true ); } diff --git a/classes/models/FrmForm.php b/classes/models/FrmForm.php index 7a8bab47f5..422b5411de 100644 --- a/classes/models/FrmForm.php +++ b/classes/models/FrmForm.php @@ -267,7 +267,7 @@ public static function update( $id, $values, $create_link = false ) { $new_values = self::set_update_options( array(), $values, array( 'form_id' => $id ) ); foreach ( $values as $value_key => $value ) { - if ( $value_key && in_array( $value_key, $form_fields ) ) { + if ( $value_key && in_array( $value_key, $form_fields, true ) ) { $new_values[ $value_key ] = $value; } } @@ -357,6 +357,7 @@ public static function update_fields( $id, $values ) { $existing_keys = array_keys( $values['item_meta'] ); foreach ( $all_fields as $fid ) { + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict if ( ! in_array( $fid->id, $existing_keys ) && ( isset( $values['frm_fields_submitted'] ) && in_array( $fid->id, $values['frm_fields_submitted'] ) ) || isset( $values['options'] ) ) { $values['item_meta'][ $fid->id ] = ''; } diff --git a/classes/models/FrmFormAction.php b/classes/models/FrmFormAction.php index bdc5b4065c..b6f2c85fa9 100644 --- a/classes/models/FrmFormAction.php +++ b/classes/models/FrmFormAction.php @@ -233,7 +233,7 @@ protected function get_group( $action_options ) { $group = $this->id_base; } else { foreach ( $groups as $name => $check_group ) { - if ( isset( $check_group['actions'] ) && in_array( $this->id_base, $check_group['actions'] ) ) { + if ( isset( $check_group['actions'] ) && in_array( $this->id_base, $check_group['actions'], true ) ) { $group = $name; break; } diff --git a/classes/models/FrmFormMigrator.php b/classes/models/FrmFormMigrator.php index cc32dc68e9..97bca6ac83 100644 --- a/classes/models/FrmFormMigrator.php +++ b/classes/models/FrmFormMigrator.php @@ -608,10 +608,12 @@ private function is_imported( $source_id ) { $imported = $this->get_tracked_import(); $new_form_id = 0; + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict if ( ! isset( $imported[ $this->slug ] ) || ! in_array( $source_id, $imported[ $this->slug ] ) ) { return $new_form_id; } + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $new_form_id = array_search( $source_id, array_reverse( $imported[ $this->slug ], true ) ); if ( $new_form_id && ! FrmForm::get_key_by_id( $new_form_id ) ) { diff --git a/classes/models/FrmSettings.php b/classes/models/FrmSettings.php index 82978c0223..7fe9072e40 100644 --- a/classes/models/FrmSettings.php +++ b/classes/models/FrmSettings.php @@ -618,7 +618,7 @@ private function update_roles( $params ) { } foreach ( $roles as $role => $details ) { - if ( in_array( $role, $this->$frm_role ) ) { + if ( in_array( $role, $this->$frm_role, true ) ) { $wp_roles->add_cap( $role, $frm_role ); } else { $wp_roles->remove_cap( $role, $frm_role ); diff --git a/classes/models/fields/FrmFieldType.php b/classes/models/fields/FrmFieldType.php index 9dcaffaf87..2bb958e2e1 100644 --- a/classes/models/fields/FrmFieldType.php +++ b/classes/models/fields/FrmFieldType.php @@ -1872,6 +1872,7 @@ protected function get_new_child_ids( $value, $atts ) { * @return array */ protected function get_multi_opts_for_import( $value ) { + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict if ( ! $this->field || ! $value || in_array( $value, (array) $this->field->options ) ) { return $value; } diff --git a/classes/views/frm-form-actions/_action_inside.php b/classes/views/frm-form-actions/_action_inside.php index d50435bfcc..d4aeb57dcf 100644 --- a/classes/views/frm-form-actions/_action_inside.php +++ b/classes/views/frm-form-actions/_action_inside.php @@ -53,7 +53,7 @@ foreach ( $action_control->action_options['event'] as $event ) { ?> - +

diff --git a/phpcs.xml b/phpcs.xml index f5b7d5f9ad..bcebc5bea5 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -275,6 +275,10 @@ 8 error + + 8 + error + diff --git a/stripe/helpers/FrmTransLiteListHelper.php b/stripe/helpers/FrmTransLiteListHelper.php index 9986eb1a49..c90dc0b307 100755 --- a/stripe/helpers/FrmTransLiteListHelper.php +++ b/stripe/helpers/FrmTransLiteListHelper.php @@ -365,7 +365,7 @@ private function get_form_ids() { private function get_row_classes( $atts ) { $class = 'column-' . $atts['column_name']; - if ( in_array( $atts['column_name'], $atts['hidden'] ) ) { + if ( in_array( $atts['column_name'], $atts['hidden'], true ) ) { $class .= ' frm_hidden'; } @@ -485,7 +485,8 @@ private function supports_edit_link() { * @return string */ private function get_item_id_column( $item ) { - $entry_id = (int) $item->item_id; + $entry_id = (int) $item->item_id; + // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict $entry_is_deleted = ! in_array( $entry_id, $this->valid_entry_ids ); if ( $entry_is_deleted ) {