"\t", "'!!__(!!\'" => "__('", "!!\', !!\'" => "', '", "!!\')!!'" => "')", "array (" => "array(" ); $preg_replace = array( '/([\t\r\n]+?)array/' => 'array', '/[0-9]+ => array/' => 'array' ); ob_start(); echo " array(" $code = preg_replace( array_keys($preg_replace), array_values($preg_replace), $code ); // esc_textarea $code = $code; // echo echo "acf_add_local_field_group({$code});" . "\r\n" . "\r\n"; echo "endif;"; $output = ob_get_clean(); // write file $f = fopen("{$path}/{$file}", 'w'); fwrite($f, $output); fclose($f); // return return true; } /** * Auto Sync: Helper - is field group json desync */ function acfe_is_field_group_json_desync($field_group){ acf_enable_filter('local'); $group = acf_get_local_field_group($field_group['key']); acf_disable_filter('local'); $private = acf_maybe_get($group, 'private', false); $local = acf_maybe_get($group, 'local', false); $modified = acf_maybe_get($group, 'modified', 0); if($private){ return false; } elseif($local !== 'json'){ return false; } elseif($modified && $modified > get_post_modified_time('U', true, $field_group['ID'], true)){ return true; } return false; } /** * Auto Sync: Helper - Has field group autosync */ function acfe_has_field_group_autosync($field_group, $type = false){ $acfe_autosync = acf_maybe_get($field_group, 'acfe_autosync', array()); if(!$type) return acf_is_array($acfe_autosync); if($type == 'json') return is_array($acfe_autosync) && in_array('json', $acfe_autosync); elseif($type == 'php') return is_array($acfe_autosync) && in_array('php', $acfe_autosync); return false; } /** * Auto Sync: Helper - Has field group autosync found register/file */ function acfe_has_field_group_autosync_file($field_group, $type = 'json'){ if($type == 'json'){ // acf_is_local_field_group = true if json file found $found = false; if(acf_is_local_field_group($field_group['key'])){ $local_field_group = acf_get_local_field_group($field_group['key']); $get_local = acf_maybe_get($local_field_group, 'local', false); if($get_local == 'json'){ $found = true; }else{ $paths = acf_get_setting('load_json'); if(!empty($paths)){ foreach($paths as $path){ $path = untrailingslashit($path); $file = $field_group['key'] . '.json'; if(is_readable("{$path}/{$file}")){ $found = true; break; } } } } } else{ $paths = acf_get_setting('load_json'); if(!empty($paths)){ foreach($paths as $path){ $path = untrailingslashit($path); $file = $field_group['key'] . '.json'; if(is_readable("{$path}/{$file}")){ $found = true; break; } } } } return $found; } elseif($type == 'php'){ // acf_is_local_field_group = true if php registered $found = false; if(acf_is_local_field_group($field_group['key'])){ $local_field_group = acf_get_local_field_group($field_group['key']); $get_local = acf_maybe_get($local_field_group, 'local', false); if($get_local == 'php') $found = true; } return $found; } return false; }