diff --git a/classes/helpers/FrmFieldsHelper.php b/classes/helpers/FrmFieldsHelper.php index 2c0bf810d2..df59f88389 100644 --- a/classes/helpers/FrmFieldsHelper.php +++ b/classes/helpers/FrmFieldsHelper.php @@ -1826,6 +1826,10 @@ public static function switch_field_ids( $val ) { foreach ( $val as $k => $v ) { if ( ! is_string( $v ) ) { + if ( is_array( $v ) ) { + $val[ $k ] = self::switch_field_ids( $v ); + unset( $k, $v ); + } continue; } @@ -1835,9 +1839,15 @@ public static function switch_field_ids( $val ) { continue; } + if ( isset( $frm_duplicate_ids[ $v ] ) ) { + $val[ $k ] = $frm_duplicate_ids[ $v ]; + unset( $k, $v ); + continue; + } + $val[ $k ] = str_replace( $replace, $replace_with, $v ); unset( $k, $v ); - } + }//end foreach return $val; } diff --git a/classes/models/FrmFormAction.php b/classes/models/FrmFormAction.php index 0f0ec7d1f7..27dccad89c 100644 --- a/classes/models/FrmFormAction.php +++ b/classes/models/FrmFormAction.php @@ -402,6 +402,8 @@ public function duplicate_one( $action, $form_id ) { foreach ( $switch[ $key ] as $subkey ) { $action->post_content[ $key ] = $this->duplicate_array_walk( $action->post_content[ $key ], $subkey, $val ); } + } elseif ( is_array( $val ) ) { + $action->post_content[ $key ] = FrmFieldsHelper::switch_field_ids( $val ); } unset( $key, $val );