OwlCyberSecurity - MANAGER
Edit File: PostMetaToOrderMetaMigrator.php
<?php /** * Migration class for migrating from WPPostMeta to OrderMeta table. */ namespace Automattic\WooCommerce\Database\Migrations\CustomOrderTable; use Automattic\WooCommerce\Database\Migrations\MetaToMetaTableMigrator; use Automattic\WooCommerce\Internal\DataStores\Orders\OrdersTableDataStore; /** * Helper class to migrate records from the WordPress post meta table * to the custom orders meta table. * * @package Automattic\WooCommerce\Database\Migrations\CustomOrderTable */ class PostMetaToOrderMetaMigrator extends MetaToMetaTableMigrator { /** * List of meta keys to exclude from migration. * * @var array */ private $excluded_columns; /** * PostMetaToOrderMetaMigrator constructor. * * @param array $excluded_columns List of meta keys to exclude from migration. */ public function __construct( $excluded_columns ) { $this->excluded_columns = $excluded_columns; parent::__construct(); } /** * Generate config for meta data migration. * * @return array Meta data migration config. */ protected function get_meta_config(): array { global $wpdb; return array( 'source' => array( 'meta' => array( 'table_name' => $wpdb->postmeta, 'entity_id_column' => 'post_id', 'meta_id_column' => 'meta_id', 'meta_key_column' => 'meta_key', 'meta_value_column' => 'meta_value', ), 'entity' => array( 'table_name' => $wpdb->posts, 'source_id_column' => 'ID', 'id_column' => 'ID', ), 'excluded_keys' => $this->excluded_columns, ), 'destination' => array( 'meta' => array( 'table_name' => OrdersTableDataStore::get_meta_table_name(), 'entity_id_column' => 'order_id', 'meta_key_column' => 'meta_key', 'meta_value_column' => 'meta_value', 'entity_id_type' => 'int', 'meta_id_column' => 'id', ), ), ); } }