Automattic\WooCommerce\Database\Migrations
MetaToCustomTableMigrator::processs_and_sanitize_meta_data
Helper method to sanitize soure meta data.
Method of the class: MetaToCustomTableMigrator{}
No Hooks.
Returns
null. Nothing (null).
Usage
// private - for code of main (parent) class only $result = $this->processs_and_sanitize_meta_data( $sanitized_entity_data, $error_records, $meta_data ): void;
- $sanitized_entity_data(array) (required)
- Array containing sanitized data for insertion.
- $error_records(array) (required)
- Error records.
- $meta_data(array) (required)
- Original source data.
MetaToCustomTableMigrator::processs_and_sanitize_meta_data() MetaToCustomTableMigrator::processs and sanitize meta data code WC 10.5.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;
}
}
}