Bitrix получить кол-во элементов в инфоблоке с фильтрами
1 2 3 4 5 6 |
$count = intval(CIBlockElement::GetList(false, [ "IBLOCK_ID" => 5, "PROPERTY_NAME" => 'VALUE', ], ['IBLOCK_ID'])->Fetch()['CNT']); echo $count; |
1 2 3 4 5 6 |
$count = intval(CIBlockElement::GetList(false, [ "IBLOCK_ID" => 5, "PROPERTY_NAME" => 'VALUE', ], ['IBLOCK_ID'])->Fetch()['CNT']); echo $count; |
Bitrix custom ORDER_LIST письмо заказа CEvent::Send Все изменения происходят в bitrix/php_interface/init.php Создаем AddEventHandler
1 |
AddEventHandler("sale", "OnOrderNewSendEmail", array("EmailHandler", "SendNewOrderCustom")); |
Создадим класс и функцию
1 2 3 4 5 6 7 |
class EmailHandler { function SendNewOrderCustom($ID, &$eventName, &$arFields, $val) { $orders = "Все херня мира" $arFields["ORDER_LIST"] = $orders; } } |
Вдохновитель BitrixApi Event Handler BitrixApi Mail Ключевые слова, шоб поиск находил)) bitrix, custom, event, ordersend, отправка заказа, модификация заказа bitrix order_list, почтовое событие
Удаление элементов из инфоблока Битрикс
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
<?php // устанавливаем лимит выполнения скрипта 120 сек set_time_limit(120); // включаем вывод ошибочек ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); // включаем замер исполнения скрипта $startTime = microtime(true); // логирование pid start $pid = getmypid(); $file = fopen('../logs/detelePid.txt', 'a+'); $message = "pid: [$pid] DELETE : " . date("d.m.Y H:i:s") . PHP_EOL; fwrite($file, $message); fclose($file); // логирование pid end // подключаем prolog bitrix require $_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/include/prolog_before.php'; // подключаем нужные модули CModule::IncludeModule("iblock"); CModule::IncludeModule("sales"); /** * Удаляем картинку элемента * @param int $element_id ID элемента */ function deleteImage($element_id) { $res = CIBlockElement::GetByID($element_id); if ($ar_res = $res->GetNext()) { CFile::Delete($ar_res['DETAIL_PICTURE']); } } /** * Удаляем все элементы из бд * @return [array] */ function deleteElementDisk($block_id, $count) { $arSelect = array("ID"); $arFilter = array("IBLOCK_ID" => $block_id); $res = CIBlockElement::GetList(array(), $arFilter, false, Array("nPageSize"=>$count), $arSelect); $i = 0; while ($r = $res->GetNext()) { $id = $r['ID']; CIBlockElement::Delete($id); // удаляем элемент CCatalogProduct::Delete($id); // удаляем торговое предложение deleteImage($id); // удаляем картинку $i++; } return $i; } $z = deleteElementDisk(7, 10000); $endTime = microtime(true); echo "Удалено записей: {$z}\n"; echo "\nВремя выполнения скрипта: " . ($endTime - $startTime) . " Сек.\n"; //вывод результата |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog")) { $number_coupon = "SL-3JFXM-C33I1U5"; // номер купона $getCoupon = \Bitrix\Sale\DiscountCouponsManager::getData($number_coupon, true); // получаем информацио о купоне if ($getCoupon['ACTIVE'] == "Y" && !$_SESSION['CATALOG_USER_COUPONS']) { $discountName = $getCoupon['DISCOUNT_NAME']; $takeCoupon = \Bitrix\Sale\DiscountCouponsManager::add($number_coupon); // true - купон есть / false - его нет if ($takeCoupon) { echo "Купон Активирован"; } else { echo "Ошибка Активации купона"; } } else if (!$getCoupon['ACTIVE']) { echo "Мы не нашли такого купона :("; } else { echo "Купон уже активирован, попробуйте другой :("; } } |