Skip to content

Commit 7e448b4

Browse files
Merge pull request #89 from hoppinger/bugfix/prevent_duplicates_on_import
Prevent duplicate field groups on import
2 parents 2731837 + 9715762 commit 7e448b4

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

lib/acfwpcli/field_group.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ public static function import( $file ) {
1616
$fields = acf_extract_var( $field_group, 'fields' );
1717
$fields = acf_prepare_fields_for_import( $fields );
1818

19+
$db_field_group = self::find_by_key($field_group['key']);
20+
21+
if ($db_field_group) {
22+
$field_group['ID'] = $db_field_group->ID;
23+
}
24+
1925
$field_group = acf_update_field_group( $field_group );
2026

2127
foreach ( $fields as $field ) {
@@ -44,6 +50,15 @@ public static function find_by_name( $name ) {
4450
return $results;
4551
}
4652

53+
public static function find_by_key( $key ) {
54+
global $wpdb;
55+
$query = "SELECT * FROM {$wpdb->posts} WHERE post_type='acf-field-group' AND post_name = %s";
56+
57+
$results = $wpdb->get_row( $wpdb->prepare( $query, $key ) );
58+
59+
return $results;
60+
}
61+
4762
public static function destroy( $id ) {
4863
global $wpdb;
4964

@@ -84,8 +99,7 @@ public static function to_array( $id ) {
8499
// prepare fields
85100
$fields = acf_prepare_fields_for_export( $fields );
86101

87-
// extract field group ID
88-
acf_extract_var( $field_group, 'ID' );
102+
$field_group['ID'] = false;
89103

90104
// add to field group
91105
$field_group['fields'] = $fields;

0 commit comments

Comments
 (0)