File "PostMetaToOrderMetaMigrator.php"
Full Path: /home/warrior1/public_html/wp-content/plugins/woocommerce/src/Database/Migrations/CustomOrderTable/PostMetaToOrderMetaMigrator.php
File size: 2.04 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Migration class for migrating from WPPostMeta to OrderMeta table.
*/
namespace Automattic\WooCommerce\Database\Migrations\CustomOrderTable;
use Automattic\WooCommerce\Database\Migrations\MetaToMetaTableMigrator;
/**
* 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;
// TODO: Remove hardcoding.
$this->table_names = array(
'orders' => $wpdb->prefix . 'wc_orders',
'addresses' => $wpdb->prefix . 'wc_order_addresses',
'op_data' => $wpdb->prefix . 'wc_order_operational_data',
'meta' => $wpdb->prefix . 'wc_orders_meta',
);
return array(
'source' => array(
'meta' => array(
'table_name' => $wpdb->postmeta,
'entity_id_column' => 'post_id',
'meta_key_column' => 'meta_key',
'meta_value_column' => 'meta_value',
),
'entity' => array(
'table_name' => $this->table_names['orders'],
'source_id_column' => 'id',
'id_column' => 'id',
),
'excluded_keys' => $this->excluded_columns,
),
'destination' => array(
'meta' => array(
'table_name' => $this->table_names['meta'],
'entity_id_column' => 'order_id',
'meta_key_column' => 'meta_key',
'meta_value_column' => 'meta_value',
'entity_id_type' => 'int',
'meta_id_column' => 'id',
),
),
);
}
}