HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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;