На данный момент, скрипт импорта товара в Woocommerce магазине считывает размеры с SKU. Например, с SKU “MN1001331023/064_L” сначала убирается всё, что слева / и берется Размер L в конце. Итог - товару присвоен размер L, однако,
Есть такие SKU как ADRA0000344_157cm. С ними на данный момент ничего не делается, а надо, чтобы в них обрабатывался 157cm и вносился в размеры. Надо дополнить в скрипт правило, что если в sku есть “/”, то тогда SKU обрабатывается нужным образом. Если нету данного символа, то тогда значение справа после символа “_” пойдет дальше по скрипту так же, как и значение L в первом варианте.
Несколько отвечающих за это строк импорта:
foreach ($products as $k => $p)
{
$r['sku'] = mb_trim(mb_strtoupper(gd($p, 'code')));
$r['sizes'] = [];
$arr = explode('/', $r['sku']);
$r['sku'] = mb_trim(array_shift($arr));
if ($arr)
{
$arr = explode('_', array_pop($arr));
array_shift($arr);
if ($arr)
{
$arr = explode('_', array_shift($arr));
if (sizeof($arr) > 1) [$from, $to] = $arr;
else $from = $to = $arr[0];
$finded_sizes[$from] = $finded_sizes[$to] = true;
$found = false;
foreach ($all_sizes as $size)
{
$size = mb_trim($size);
if ($size == $from) $found = true;
if ($found)
{
$r['sizes'][] = $size;
$used_sizes[slugify($size)] = $size;
}
if ($size == $to) break;
}
}
}
...
Если кто-то действительно может помочь мне и дать рабочее решение, то он будет официально считаться королем php :)