Поскольку при изменении вариантов, в TV поле, в самих ресурсах значения не изменяются (остаются старые варианты). Необходимо массово переопределить во всех ресурсах старые варианты.

 

В данном примере переопределяется список с множественным выбором. Заменяются старые названия на новые:

<?php
//echo '<pre>';
$parent = 1782;
$tv_name = "razn";
$pattern = "/old_name/i";
$replacement = 'new_name';
$count = 0;

//массив where для выборки
$w = [
    'parent' => $parent,
    'class_key' => 'modResource',
];

$q = $modx->newQuery('modResource');
$q->where($w);
//$q->limit(1);

$items = $modx->getCollection('modResource', $q);

foreach ($items as $item) {
    $value = $item->getTVValue($tv_name);
    
    if (preg_match($pattern, $value)) {
        $count++;
        echo $new = preg_replace($pattern, $replacement, $value);
        echo '<br>';
        $item->setTVValue($tv_name, $new);
        //раскоментируем ниже, если все ок
        //$item->save();
    }
}

echo $count;
← Сниппет Register. Login. НастройкаAjaxForm и ошибки →