Skip to content

Commit fe26ac4

Browse files
committed
Allow setting new group when duplicating field
1 parent d61bed2 commit fe26ac4

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

classes/PodsAPI.php

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)