Код |
---|
AddEventHandler("catalog", "OnBeforePriceUpdate", "CheckPriceBeforeSend"); // Найдем изначальную цену AddEventHandler("catalog", "OnPriceUpdate", "SendAfterCheck"); // Проверим изменение количества и цены, отправим письма |
Код |
---|
function CheckPriceBeforeSend (&$id) { CModule::IncludeModule("catalog"); $price = CPrice::GetByID($id); define("OLD_PRICE_".$id, $price['PRICE']); define("OLD_CURRENCY_".$id, $price['CURRENCY']); } |
Код |
---|
function SendAfterCheck (&$id) { $new_price = CPrice::GetByID($id); $all_const = get_defined_constants(); $price = $all_const['OLD_PRICE_'.$id]; if ($price!=$new_price['PRICE']) { // цена изменилась CModule::IncludeModule("iblock"); $rsEl = CIBlockElement::GetByID($new_price['PRODUCT_ID']); $item = $rsEl->Fetch(); $rs = CUser::GetList($by="", $order="", array( 'UF_PRICE_ALERT'=>$item['ID'] ), array('SELECT'=>array("UF_PRICE_ALERT")) ); // Перебираем всех найденных пользователей while ($customer = $rs->GetNext()) { if (in_array($item['ID'], $customer['UF_PRICE_ALERT']) AND $price>$new_price['PRICE']) { CEvent::Send("PRODUCT_PRICE_CHANGE", $item['LID'], array( 'EMAIL' => $customer['EMAIL'], 'USER_NAME' => $customer['NAME'], 'ITEM_NAME' => $item['NAME'], 'ITEM_LINK' => $item['DETAIL_PAGE_URL'], 'ITEM_NEW_PRICE' => $new_price['PRICE'], 'ITEM_OLD_PRICE' => $price, ), "N"); } } } } |
Код |
---|
function SendAfterCheck (&$id) { $new_price = CPrice::GetByID($id); $all_const = get_defined_constants(); $price = $all_const['OLD_PRICE_'.$id]; global $DB; if ($price!=$new_price['PRICE']) { // цена изменилась CModule::IncludeModule("iblock"); $rsEl = CIBlockElement::GetByID($new_price['PRODUCT_ID']); $item = $rsEl->Fetch(); X $query = $DB->Query("SEL ECT E_MAIL FR product_subscribers WHERE ID_PRODUCT=".$new_price['PRODUCT_ID']); $result = $query->Fetch(); mail($result["E_MAIL"], "Уведомление РѕС‚ сайта newpochta.ru", "Сообщение СЃ сайта newpochta.ru. Р’С‹ подписались РЅР° обновления товара."); } } |