@@ -6735,10 +6735,12 @@ public function duplicate_group( $params, $strict = false ) {
67356735 * Duplicate a Field.
67366736 *
67376737 * $params['pod_id'] int The Pod ID.
6738- * $params['pod'] string The Pod name.
6738+ * $params['pod'] string|Whatsit The Pod name or object .
67396739 * $params['id'] int The Field ID.
67406740 * $params['name'] string The Field name.
67416741 * $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.
67426744 *
67436745 * @since 2.3.10
67446746 *
@@ -6783,10 +6785,28 @@ public function duplicate_field( $params, $strict = false ) {
67836785 return false ;
67846786 }
67856787
6788+ $ pod_data = $ field ->get_parent_object ();
6789+
67866790 if ( $ field instanceof Field ) {
67876791 $ field = $ field ->export ();
67886792 }
67896793
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+
67906810 if ( isset ( $ params ->new_name ) ) {
67916811 $ field ['name ' ] = $ params ->new_name ;
67926812 }
@@ -6809,6 +6829,14 @@ public function duplicate_field( $params, $strict = false ) {
68096829 $ field ['name ' ] = $ check_name ;
68106830 $ field ['label ' ] = $ new_label ;
68116831
6832+ if ( $ new_group ) {
6833+ $ field ['group ' ] = $ new_group ;
6834+ }
6835+
6836+ if ( $ pod_data ) {
6837+ $ field ['pod ' ] = $ pod_data ;
6838+ }
6839+
68126840 unset( $ field ['id ' ], $ field ['object_type ' ], $ field ['object_storage_type ' ] );
68136841
68146842 return $ this ->save_field ( $ field , true , true );
0 commit comments