Automattic\WooCommerce\Api\Utils
SchemaHandle::get_all_metadata
Return every metadata row in the schema (introspection types excluded).
Each row describes one target (a type, a field, an argument, or an enum value) and carries the name=>value entries declared on it. The same row shape is used for every target kind; the three nullable position fields (field, argument, enumValue) discriminate.
Method of the class: SchemaHandle{}
No Hooks.
Returns
list
Usage
$SchemaHandle = new SchemaHandle(); $SchemaHandle->get_all_metadata(): array;
SchemaHandle::get_all_metadata() SchemaHandle::get all metadata code WC 10.9.1
public function get_all_metadata(): array {
$rows = array();
$schema = $this->engine_schema;
foreach ( $schema->getTypeMap() as $type_name => $type ) {
if ( self::is_introspection_name( $type_name ) ) {
continue;
}
$type_metadata = self::read_type_metadata( $type );
$type_authorization = self::read_type_authorization( $type );
if ( ! empty( $type_metadata ) || ! empty( $type_authorization ) ) {
$rows[] = self::make_row( $type_name, null, null, null, $type_metadata, $type_authorization );
}
if ( $type instanceof HasFieldsType ) {
foreach ( $type->getFields() as $field_name => $field ) {
$field_metadata = self::read_element_metadata( $field );
$field_authorization = self::read_element_authorization( $field );
if ( ! empty( $field_metadata ) || ! empty( $field_authorization ) ) {
$rows[] = self::make_row( $type_name, $field_name, null, null, $field_metadata, $field_authorization );
}
foreach ( $field->args as $arg ) {
$arg_metadata = self::read_element_metadata( $arg );
if ( ! empty( $arg_metadata ) ) {
$rows[] = self::make_row( $type_name, $field_name, $arg->name, null, $arg_metadata, array() );
}
}
}
continue;
}
if ( $type instanceof InputObjectType ) {
foreach ( $type->getFields() as $field_name => $field ) {
$field_metadata = self::read_element_metadata( $field );
$field_authorization = self::read_element_authorization( $field );
if ( ! empty( $field_metadata ) || ! empty( $field_authorization ) ) {
$rows[] = self::make_row( $type_name, $field_name, null, null, $field_metadata, $field_authorization );
}
}
continue;
}
if ( $type instanceof EnumType ) {
foreach ( $type->getValues() as $value ) {
$value_metadata = self::read_element_metadata( $value );
if ( ! empty( $value_metadata ) ) {
$rows[] = self::make_row( $type_name, null, null, $value->name, $value_metadata, array() );
}
}
}
}
return $rows;
}