Automattic\WooCommerce\Internal\CLI\Migrator\Platforms\Webflow
WebflowMapper::resolve_variation_attributes
Resolve a SKU's sku-values (property_id => enum_id) into a human-readable attribute_name => option_name array using the property lookup.
Метод класса: WebflowMapper{}
Хуков нет.
Возвращает
array<string,string>.
Использование
// private - только в коде основоного (родительского) класса $result = $this->resolve_variation_attributes( $sku_field, $property_lookup ): array;
- $sku_field(объект) (обязательный)
- SKU fieldData.
- $property_lookup(массив) (обязательный)
- Property lookup map.
Код WebflowMapper::resolve_variation_attributes() WebflowMapper::resolve variation attributes WC 11.2.2
private function resolve_variation_attributes( object $sku_field, array $property_lookup ): array {
$resolved = array();
$values_key = 'sku-values';
if ( ! isset( $sku_field->{$values_key} ) ) {
return $resolved;
}
$values = $sku_field->{$values_key};
if ( ! is_object( $values ) && ! is_array( $values ) ) {
return $resolved;
}
foreach ( (array) $values as $property_id => $enum_id ) {
$property_id = (string) $property_id;
$enum_id = (string) $enum_id;
if ( ! isset( $property_lookup[ $property_id ] ) ) {
continue;
}
$property_name = $property_lookup[ $property_id ]['name'];
$option_name = $property_lookup[ $property_id ]['enums'][ $enum_id ] ?? null;
if ( null === $option_name ) {
continue;
}
$resolved[ sanitize_text_field( $property_name ) ] = sanitize_text_field( $option_name );
}
return $resolved;
}