@@ -6735,10 +6735,12 @@ public function duplicate_group( $params, $strict = false ) {
6735
6735
* Duplicate a Field.
6736
6736
*
6737
6737
* $params['pod_id'] int The Pod ID.
6738
- * $params['pod'] string The Pod name.
6738
+ * $params['pod'] string|Whatsit The Pod name or object .
6739
6739
* $params['id'] int The Field ID.
6740
6740
* $params['name'] string The Field name.
6741
6741
* $params['new_name'] string The new Field name.
6742
+ * $params['new_group'] string|Whatsit The new Group name or object.
6743
+ * $params['new_group_id'] string The new Group ID.
6742
6744
*
6743
6745
* @since 2.3.10
6744
6746
*
@@ -6783,10 +6785,28 @@ public function duplicate_field( $params, $strict = false ) {
6783
6785
return false ;
6784
6786
}
6785
6787
6788
+ $ pod_data = $ field ->get_parent_object ();
6789
+
6786
6790
if ( $ field instanceof Field ) {
6787
6791
$ field = $ field ->export ();
6788
6792
}
6789
6793
6794
+ $ new_group = null ;
6795
+
6796
+ $ load_group_params = [];
6797
+
6798
+ if ( ! empty ( $ params ->new_group_id ) ) {
6799
+ $ load_group_params ['pod ' ] = $ pod_data ;
6800
+ $ load_group_params ['id ' ] = $ params ->new_group_id ;
6801
+ } elseif ( ! empty ( $ params ->new_group ) ) {
6802
+ $ load_group_params ['pod ' ] = $ pod_data ;
6803
+ $ load_group_params ['name ' ] = $ params ->new_group ;
6804
+ }
6805
+
6806
+ if ( $ load_group_params ) {
6807
+ $ new_group = $ this ->load_group ( $ load_group_params , $ strict );
6808
+ }
6809
+
6790
6810
if ( isset ( $ params ->new_name ) ) {
6791
6811
$ field ['name ' ] = $ params ->new_name ;
6792
6812
}
@@ -6809,6 +6829,14 @@ public function duplicate_field( $params, $strict = false ) {
6809
6829
$ field ['name ' ] = $ check_name ;
6810
6830
$ field ['label ' ] = $ new_label ;
6811
6831
6832
+ if ( $ new_group ) {
6833
+ $ field ['group ' ] = $ new_group ;
6834
+ }
6835
+
6836
+ if ( $ pod_data ) {
6837
+ $ field ['pod ' ] = $ pod_data ;
6838
+ }
6839
+
6812
6840
unset( $ field ['id ' ], $ field ['object_type ' ], $ field ['object_storage_type ' ] );
6813
6841
6814
6842
return $ this ->save_field ( $ field , true , true );
0 commit comments