File: /var/www/innodrive/migrations/title_translations.php
<?php
if( php_sapi_name() !== 'cli' ) {
die("Meant to be run from command line");
}
if (!empty($argv[1])) {
define('APPLICATION_ENV', $argv[1]);
} else {
define('APPLICATION_ENV', 'production');
}
define( 'BASE_PATH', __DIR__ . '/../public/' );
define('WP_USE_THEMES', false);
global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header, $wpdb;
require(BASE_PATH . 'wp-load.php');
require(BASE_PATH . 'wp-content/plugins/import/class/Product.php');
$wpdb->query('ALTER TABLE products_translations ADD product_id INT NOT NULL');
$products = $wpdb->get_results('SELECT * FROM products');
echo 'Selected products: ' . count($products) . PHP_EOL . PHP_EOL;
foreach($products as $product) {
$product->title = str_replace(' ', ' ', $product->title );
$product->title = str_replace("\n", "", $product->title );
$product->title = str_replace("\r", "", $product->title );
echo 'original: ' . $product->title . PHP_EOL;
$existTranslation = Product::getTranslationObject($product->title);
$translation = [
'en' => Product::translatePartially(!empty($existTranslation->en) ? $existTranslation->en : $product->title, 'en'),
'ru' => Product::translatePartially(!empty($existTranslation->ru) ? $existTranslation->ru : $product->title, 'ru'),
'original' => $product->title,
'product_id' => $product->id,
];
echo 'ru: ' . $translation['ru'] . PHP_EOL;
echo 'en: ' . $translation['en'] . PHP_EOL;
echo PHP_EOL;
Product::storeTranslation($translation);
}
$wpdb->query('alter table products_translations drop primary key');
$wpdb->query('ALTER TABLE products_translations
ADD CONSTRAINT products_translations_pk
primary key (product_id);
');
$wpdb->query('CREATE INDEX product_id ON params_npoat (product_id);');
$wpdb->query('CREATE INDEX product_id ON params_sensor (product_id);');
$wpdb->query('CREATE INDEX product_id ON params_servoactuator (product_id);');
$wpdb->query('CREATE INDEX product_id ON params_blower (product_id);');
$wpdb->query('CREATE INDEX product_id ON params_accessories (product_id);');
echo 'DONE' . PHP_EOL . PHP_EOL;