CModule::IncludeModule("sale"); // получим всех покупателей $dbRes = CUser::GetList($by = 'ID', $order = 'ASC', array()); while($arUser = $dbRes->Fetch()){ $UserId = $arUser['ID']; // получим последний профиль пользователя $db_sales = CSaleOrderUserProps::GetList( array("DATE_UPDATE" => "DESC"), array("USER_ID" => $UserId), false, array("nTopCount" => 1) ); $profileID = ''; while ($ar_sales = $db_sales->Fetch()) { $profileID = $ar_sales['ID']; } // сопоставим ключ свойства профиля и значение поля пользователя $propsUser = array( 'ZIP' => 'PERSONAL_ZIP', 'LOCATION' => 'PERSONAL_CITY', 'ADDRESS' => 'PERSONAL_STREET', 'PHONE' => 'PERSONAL_PHONE', ); $fieldsUser = array(); // получим свойства профиля $db_propVals = CSaleOrderUserPropsValue::GetList(($b="SORT"), ($o="ASC"), Array("USER_PROPS_ID"=>$profileID)); while ($arPropVals = $db_propVals->Fetch()) { //составим массив для обновления профиля foreach($propsUser as $key => $value) { if($arPropVals['CODE'] == $key && empty($arUser[$value]) ){ $fieldsUser[$value] = $arPropVals['VALUE']; } } } // обновим пользователя взяв данные из профиля $userUpdate = new CUser; $userUpdate->Update($UserId, $fieldsUser); }
Опубликовано: 9 августа 2012
|
|