diff --git a/v3/lib/class-acf-to-rest-api-acf-api.php b/v3/lib/class-acf-to-rest-api-acf-api.php index dfea978..d2e4d3e 100755 --- a/v3/lib/class-acf-to-rest-api-acf-api.php +++ b/v3/lib/class-acf-to-rest-api-acf-api.php @@ -61,7 +61,9 @@ public function get_id( $object ) { $this->id = $object->term_id; } } - + if(is_string($this->id)){ + $this->id = preg_replace("/[^0-9,.]/", "", $this->id ); + } if ( 'option' == $this->type ) { $this->id = sanitize_title( $this->id ); } else { @@ -130,8 +132,17 @@ public function get_field_objects( $id ) { $fields_tmp = array(); if ( function_exists( 'acf_get_field_groups' ) && function_exists( 'acf_get_fields' ) && function_exists( 'acf_extract_var' ) ) { - $field_groups = acf_get_field_groups( array( 'post_id' => $id ) ); - + if ( strpos( $id, 'user_' ) !== false ) { + $filter = array('user_id' => str_replace( 'user_', '', $id ) ); + $user = get_userdata( $filter["user_id"] ); + if( ! $user || ! $user->exists() || empty($user->roles) || !user_can($user->ID, $user->roles[0])){ + $filter["user_id"] = "new"; + } + } else { + $filter = array( 'post_id' => $id ); + } + $field_groups = acf_get_field_groups( $filter ); + if ( is_array( $field_groups ) && ! empty( $field_groups ) ) { foreach ( $field_groups as $field_group ) { $field_group_fields = acf_get_fields( $field_group );