Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/acfwpcli.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public function __construct() {

public function actions() {
if ( ! defined( 'WP_CLI' ) ) {
add_action( 'plugins_loaded', array( $this, 'add_runtime_fieldgroups' ) );
add_action( 'acf/init', array( $this, 'add_runtime_fieldgroups' ) );
}
}

Expand Down
2 changes: 1 addition & 1 deletion lib/acfwpcli/field.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

class Field {

public static function import( $field, $field_group ) {
public static function import( $field, $field_group, &$order ) {
$order = [];

// add parent
Expand Down
24 changes: 21 additions & 3 deletions lib/acfwpcli/field_group.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,25 @@ class FieldGroup {

public static function import( $file ) {
$field_groups = self::from_json_file( $file );
$order = array();

foreach ( $field_groups as $field_group ) {
$fields = acf_extract_var( $field_group, 'fields' );
$fields = acf_prepare_fields_for_import( $fields );

$db_field_group = self::find_by_key($field_group['key']);

if ($db_field_group) {
$field_group['ID'] = $db_field_group->ID;
}

$field_group = acf_update_field_group( $field_group );

// add to order
$order[ $field_group['ID'] ] = 0;

foreach ( $fields as $field ) {
Field::import( $field, $field_group );
Field::import( $field, $field_group, $order );
}
}

Expand All @@ -44,6 +54,15 @@ public static function find_by_name( $name ) {
return $results;
}

public static function find_by_key( $key ) {
global $wpdb;
$query = "SELECT * FROM {$wpdb->posts} WHERE post_type='acf-field-group' AND post_name = %s";

$results = $wpdb->get_row( $wpdb->prepare( $query, $key ) );

return $results;
}

public static function destroy( $id ) {
global $wpdb;

Expand Down Expand Up @@ -84,8 +103,7 @@ public static function to_array( $id ) {
// prepare fields
$fields = acf_prepare_fields_for_export( $fields );

// extract field group ID
acf_extract_var( $field_group, 'ID' );
$field_group['ID'] = false;

// add to field group
$field_group['fields'] = $fields;
Expand Down