diff --git a/classes/helpers/FrmAppHelper.php b/classes/helpers/FrmAppHelper.php index 4288f3fbb4..1babdebfce 100644 --- a/classes/helpers/FrmAppHelper.php +++ b/classes/helpers/FrmAppHelper.php @@ -2117,6 +2117,20 @@ public static function array_flatten( $array, $keys = 'keep' ) { return $return; } + /** + * Flatten an array before imploding it to avoid Array to string conversion warnings. + * + * @since x.x + * + * @param string $sep + * @param array $array + * @return string + */ + public static function safe_implode( $sep, $array ) { + $array = self::array_flatten( $array ); + return implode( $sep, $array ); + } + /** * @param string $text * @param bool $is_rich_text diff --git a/classes/helpers/FrmFieldsHelper.php b/classes/helpers/FrmFieldsHelper.php index 3fdb962a5c..41930e33dc 100644 --- a/classes/helpers/FrmFieldsHelper.php +++ b/classes/helpers/FrmFieldsHelper.php @@ -1036,7 +1036,7 @@ private static function get_field_shortcode_value( $atts ) { $string_value = $replace_with; if ( is_array( $replace_with ) ) { $sep = isset( $atts['sep'] ) ? $atts['sep'] : ', '; - $string_value = implode( $sep, $replace_with ); + $string_value = FrmAppHelper::safe_implode( $sep, $replace_with ); } if ( empty( $string_value ) && $string_value != '0' ) { diff --git a/classes/models/fields/FrmFieldType.php b/classes/models/fields/FrmFieldType.php index 5648a79739..82cff69aa9 100644 --- a/classes/models/fields/FrmFieldType.php +++ b/classes/models/fields/FrmFieldType.php @@ -1440,11 +1440,11 @@ public function get_display_value( $value, $atts = array() ) { $value = $this->prepare_display_value( $value, $atts ); if ( is_array( $value ) ) { - if ( isset( $atts['show'] ) && $atts['show'] && isset( $value[ $atts['show'] ] ) ) { + if ( ! empty( $atts['show'] ) && isset( $value[ $atts['show'] ] ) ) { $value = $value[ $atts['show'] ]; - } elseif ( ! isset( $atts['return_array'] ) || ! $atts['return_array'] ) { + } elseif ( empty( $atts['return_array'] ) ) { $sep = isset( $atts['sep'] ) ? $atts['sep'] : ', '; - $value = implode( $sep, $value ); + $value = FrmAppHelper::safe_implode( $sep, $value ); } }