MigrationHelper
in package
Helper class to assist with migration related operations.
Table of Contents
- $wpdb_placeholder_for_type : array<string|int, string>
- Placeholders that we will use in building $wpdb queries.
- escape_and_add_backtick() : array<string|int, mixed>|string|array<string|int, string>
- Helper method to escape backtick in column and table names.
- escape_schema_for_backtick() : array<string|int, mixed>
- Helper method to escape backtick in various schema fields.
- generate_on_duplicate_statement_clause() : string
- Generates ON DUPLICATE KEY UPDATE clause to be used in migration.
- get_wpdb_placeholder_for_type() : string
- Return $wpdb->prepare placeholder for data type.
- migrate_country_states() : bool
- Migrate state codes in all the required places in the database, needed after they change for a given country.
- migrate_country_states_for_misc_data() : void
- Migrate state codes in all the required places in the database (except orders).
- migrate_country_states_for_orders() : bool
- Migrate state codes for orders in the orders table and in the posts table.
- migrate_country_states_for_shipping_locations() : void
- Migrate state codes in the shipping locations table.
- migrate_country_states_for_store_location() : void
- Migrate the state code for the store location.
- migrate_country_states_for_tax_rates() : void
- Migrate state codes in the tax rates table.
Properties
$wpdb_placeholder_for_type
Placeholders that we will use in building $wpdb queries.
private
static array<string|int, string>
$wpdb_placeholder_for_type
= array('int' => '%d', 'decimal' => '%f', 'string' => '%s', 'date' => '%s', 'date_epoch' => '%s', 'bool' => '%d')
Methods
escape_and_add_backtick()
Helper method to escape backtick in column and table names.
public
static escape_and_add_backtick(string|array<string|int, mixed> $identifier) : array<string|int, mixed>|string|array<string|int, string>
WP does not provide a method to escape table/columns names yet, but hopefully soon in @link https://core.trac.wordpress.org/ticket/52506
Parameters
- $identifier : string|array<string|int, mixed>
-
Column or table name.
Return values
array<string|int, mixed>|string|array<string|int, string> — Escaped identifier.escape_schema_for_backtick()
Helper method to escape backtick in various schema fields.
public
static escape_schema_for_backtick(array<string|int, mixed> $schema_config) : array<string|int, mixed>
Parameters
- $schema_config : array<string|int, mixed>
-
Schema config.
Return values
array<string|int, mixed> — Schema config escaped for backtick.generate_on_duplicate_statement_clause()
Generates ON DUPLICATE KEY UPDATE clause to be used in migration.
public
static generate_on_duplicate_statement_clause(array<string|int, mixed> $columns) : string
Parameters
- $columns : array<string|int, mixed>
-
List of column names.
Return values
string — SQL clause for INSERT...ON DUPLICATE KEY UPDATEget_wpdb_placeholder_for_type()
Return $wpdb->prepare placeholder for data type.
public
static get_wpdb_placeholder_for_type(string $type) : string
Parameters
- $type : string
-
Data type.
Return values
string — $wpdb placeholder.migrate_country_states()
Migrate state codes in all the required places in the database, needed after they change for a given country.
public
static migrate_country_states(string $country_code, array<string|int, mixed> $old_to_new_states_mapping) : bool
Parameters
- $country_code : string
-
The country that has the states for which the migration is needed.
- $old_to_new_states_mapping : array<string|int, mixed>
-
An associative array where keys are the old state codes and values are the new state codes.
Return values
bool — True if there are more records that need to be migrated, false otherwise.migrate_country_states_for_misc_data()
Migrate state codes in all the required places in the database (except orders).
private
static migrate_country_states_for_misc_data(string $country_code, array<string|int, mixed> $old_to_new_states_mapping) : void
Parameters
- $country_code : string
-
The country that has the states for which the migration is needed.
- $old_to_new_states_mapping : array<string|int, mixed>
-
An associative array where keys are the old state codes and values are the new state codes.
Return values
void —migrate_country_states_for_orders()
Migrate state codes for orders in the orders table and in the posts table.
private
static migrate_country_states_for_orders(string $country_code, array<string|int, mixed> $old_to_new_states_mapping) : bool
It will migrate only N2(number of states) records, being N equal to 100 by default but this number can be modified via the woocommerce_migrate_country_states_for_orders_batch_size filter.
Parameters
- $country_code : string
-
The country that has the states for which the migration is needed.
- $old_to_new_states_mapping : array<string|int, mixed>
-
An associative array where keys are the old state codes and values are the new state codes.
Return values
bool — True if there are more records that need to be migrated, false otherwise.migrate_country_states_for_shipping_locations()
Migrate state codes in the shipping locations table.
private
static migrate_country_states_for_shipping_locations(string $country_code, array<string|int, mixed> $old_to_new_states_mapping) : void
Parameters
- $country_code : string
-
The country that has the states for which the migration is needed.
- $old_to_new_states_mapping : array<string|int, mixed>
-
An associative array where keys are the old state codes and values are the new state codes.
Return values
void —migrate_country_states_for_store_location()
Migrate the state code for the store location.
private
static migrate_country_states_for_store_location(string $country_code, array<string|int, mixed> $old_to_new_states_mapping) : void
Parameters
- $country_code : string
-
The country that has the states for which the migration is needed.
- $old_to_new_states_mapping : array<string|int, mixed>
-
An associative array where keys are the old state codes and values are the new state codes.
Return values
void —migrate_country_states_for_tax_rates()
Migrate state codes in the tax rates table.
private
static migrate_country_states_for_tax_rates(string $country_code, array<string|int, mixed> $old_to_new_states_mapping) : void
Parameters
- $country_code : string
-
The country that has the states for which the migration is needed.
- $old_to_new_states_mapping : array<string|int, mixed>
-
An associative array where keys are the old state codes and values are the new state codes.