По определенным нуждам оказался нужен вот такой код:
Вывод в файл сделана только для проверки. При срабатывании в текстовом файле виден ID, содержимое arFields и 2 пустые строки. result содержит данные о базе и т.д, но
ничего не выдает.
На обычной странице
с каким-нибудь существующим ID выдает информацию нормально.
Пытался то же самое проделать с другими событиями, но либо все так же, либо ничего тупо не меняется.
Пробовал через OnBeforeOrderAdd изменять сумму доставки. В самом массиве данные изменялись, но заказ создавался с первоначальной ценой.
Подскажите что я не так делаю или вообще не то?
Код |
---|
AddEventHandler("sale", "OnOrderAdd", "DeliveryPriceEdit"; function DeliveryPriceEdit($ID, $arFields) { CModule::IncludeModule('sale'); $fp = fopen($_SERVER["DOCUMENT_ROOT"]."/tmp.txt", 'w+'); fwrite($fp, $ID."\n"; fwrite($fp, $arFields."\n"; $result = CSaleOrderPropsValue::GetList(array("SORT" => "ASC", array("ORDER_ID" => $ID, "CODE" => "ADDRESS"); fwrite($fp, print_r($result, true)."\n"; while($elem = $result->GetNext()) { fwrite($fp, print_r($elem)."\n"; }; } |
Код |
---|
$result->GetNext() |
На обычной странице
Код |
---|
$result = CSaleOrderPropsValue::GetList(array("SORT" => "ASC", array("ORDER_ID" => $ID, "CODE" => "ADDRESS"); |
Пытался то же самое проделать с другими событиями, но либо все так же, либо ничего тупо не меняется.
Пробовал через OnBeforeOrderAdd изменять сумму доставки. В самом массиве данные изменялись, но заказ создавался с первоначальной ценой.
Подскажите что я не так делаю или вообще не то?
Изменено: fedwlan - 10.06.2013 10:07:49