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/migrate_images_harmonic.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', './public/' );
define('WP_USE_THEMES', false);

global $wpdb;
require(BASE_PATH . 'wp-load.php');
require(BASE_PATH . 'wp-content/plugins/import/class/Product.php');

$uploads_path = 'wp-content/uploads/images/harmonic/';
$uploads_dir = BASE_PATH . $uploads_path;

$images_mapping = [
    'CHA-A'      => 'CHA_20A_50_H_C1024_3_ISO.jpg',
    'CHA-C'      => 'img_CHA-14A_ISO.jpg',
    'CHM'        => 'CHM_0200A_AR_L_MDH_7_ISO.jpg',
    'FHA-C'      => 'FHA_25C_50_H_C1024_B_3_Seite.jpg',
    'FHA-C mini' => 'FHA_11C_30_D200__E__4_Iso3.jpg',
    'LynxDrive'  => 'Lynxdrive_25c_30_ISO4.jpg',
    'PMA'        => 'img_PMA_11A_50__1_ISO_1.jpg',
    'RSF'        => 'RSF_8_30_F100_24B_2_ISO.jpg',
    'CanisDrive' => 'CanisDrive50A_Iso2.jpg',
    'BDA'        => 'BDA_20_HFUC_ISO-min.jpg',
    'FLA'        => 'FLA_17_FB_ISO-min.jpg',
    'CobaltLine-2A' => 'CSG_20_50_2A_GR_E_2_ISO.jpg',
    'CSG-2A'     => 'img_CSG_20_50_2UH_18_ISO_2.jpg',
    'CPL-2A'     => 'CPL_20A_50_2A_4_ISO.jpg',
    'HFUC-2A'    => 'HFUC_20_50_2A_GR_6b_ISO2.jpg',
    'HFUS-2A'    => 'HFUS_20_50_2A_GR_1_ISO.jpg',
    'CSD-2A'     => 'CSD_20_50_2A_GR_2_ISO.jpg',
    'CobaltLine-CPH' => 'CobaltLine_CP_M_H_S_1_.jpg',
    'CobaltLine-CPS' => 'CobaltLine_CP_M_H_S_1_.jpg',
    'CobaltLine-2UH' => 'img_CSG_20_50_2UH_18_ISO_2.jpg',
    'CSG-2UH'    => 'img_CSG_20_50_2UH_18_ISO_2.jpg',
    'HFUC-2UH'   => 'img_HFUC_20_50_2UH_8_ISO_1.jpg',
    'SHD-2SH '   => 'img_SHD_20_100_2SH_1_ISO_1.jpg',
    'CPU-S'      => 'img_CPU_20_50_M_4_ISO.jpg',
    'CPU-H'      => 'img_CPU_20_50_M_4_ISO.jpg',
    'HFUS-2SO'   => 'SHG_2SO_2UH_2SH_1_.jpg',
    'HFUS-2UH'   => 'SHG_2SO_2UH_2SH_1_.jpg',
    'HFUS-2SH'   => 'SHG_2SO_2UH_2SH_1_.jpg',
    'CSD-2UH'    => 'CSD-2UH_CSD-2UF_01.jpg',
    'CSD-2UF'    => 'CSD-2UH_CSD-2UF_01.jpg',
    'SHG-2UH'    => 'SHG_2SO_2UH_2SH_1_.jpg',
    'PMG'        => 'PMG_M_S_01.jpg',
    'CSF-mini'   => 'CSF_14_30_2XH_F_2_ISO.jpg',
    'CobaltLine-CPM' => 'CobaltLine_CP_M_H_S_1_.jpg',
    'CPU-M'      => 'CPU_20_50_H_5_ISO.jpg',
    'SHG-2SO'    => 'HFUS_20_50_2UH_7_ISO.jpg',
    'SHG-2SH'    => 'HFUS_20_50_2SO_8_ISO.jpg',
    'SHG-2A'     => 'HFUS_20_50_2A_GR_1_ISO.jpg',
];

foreach ($images_mapping as $serie => $image) {

    $image_dir  = $uploads_dir . $image;
    $image_path = '/' . $uploads_path . $image;

    if(!file_exists($image_dir)) continue;

    echo 'Servoactuators' . PHP_EOL . PHP_EOL;
    $query = "SELECT products.* FROM products
              JOIN categories on products.category_id = categories.id
              JOIN params_servoactuator on params_servoactuator.product_id = products.id
              WHERE categories.slug = %s AND params_servoactuator.serie = %s";

    $products = $wpdb->get_results($wpdb->prepare($query, 'servoactuator', $serie));

    echo $serie . ': ' . count($products) . PHP_EOL;

    if ($products) {
        foreach ($products as $product) {
            Product::saveMeta($product->id, [
                'Thumbnail URL' => $image_path,
                'Picture URL' => $image_path
            ]);

            echo 'Image "' . $image . '" is assigned to product with ID "' . $product->id . '"' . PHP_EOL;
        }
    }

    echo 'Gears' . PHP_EOL . PHP_EOL;

    $query = "SELECT products.* FROM products
              JOIN categories on products.category_id = categories.id
              JOIN params_gear on params_gear.product_id = products.id
              WHERE categories.slug = %s AND params_gear.serie = %s";

    $products = $wpdb->get_results($wpdb->prepare($query, 'gear', $serie));

    echo $serie . ': ' . count($products) . PHP_EOL;

    if ($products) {
        foreach ($products as $product) {
            Product::saveMeta($product->id, [
                'Thumbnail URL' => $image_path,
                'Picture URL' => $image_path
            ]);

            echo 'Image "' . $image . '" is assigned to product with ID "' . $product->id . '"' . PHP_EOL;
        }
    }
}

echo 'DONE' . PHP_EOL . PHP_EOL;