Automattic\WooCommerce\Database\Migrations

MetaToCustomTableMigrator::processs_and_sanitize_meta_data()privateWC 1.0

Helper method to sanitize soure meta data.

Метод класса: MetaToCustomTableMigrator{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

// private - только в коде основоного (родительского) класса
$result = $this->processs_and_sanitize_meta_data( $sanitized_entity_data, $error_records, $meta_data ): void;
$sanitized_entity_data(массив) (обязательный)
Array containing sanitized data for insertion.
$error_records(массив) (обязательный)
Error records.
$meta_data(массив) (обязательный)
Original source data.

Код MetaToCustomTableMigrator::processs_and_sanitize_meta_data() WC 8.7.0

private function processs_and_sanitize_meta_data( array &$sanitized_entity_data, array &$error_records, array $meta_data ): void {
	foreach ( $meta_data as $datum ) {
		$column_schema = $this->meta_column_mapping[ $datum->meta_key ];
		if ( isset( $sanitized_entity_data[ $datum->entity_id ][ $column_schema['destination'] ] ) ) {
			// We pick only the first meta if there are duplicates for a flat column, to be consistent with WP core behavior in handing duplicate meta which are marked as unique.
			continue;
		}
		$value = $this->validate_data( $datum->meta_value, $column_schema['type'] );
		if ( is_wp_error( $value ) ) {
			$error_records[ $datum->entity_id ][ $column_schema['destination'] ] = "{$value->get_error_code()}: {$value->get_error_message()}";
		} else {
			$sanitized_entity_data[ $datum->entity_id ][ $column_schema['destination'] ] = $value;
		}
	}
}