OnGenerateCoupon
string функция-обработчик( );
OnGenerateCoupon - событие, вызываемое в функции CatalogGenerateCoupon(). Позволяет заменить стандартный метод генерации кода купона.
Примечание: длина купона не может быть больше 32 символов.
Параметры
Нет.
Возвращаемое значение
Сгенерированный код купона.
Пример
\Bitrix\Main\EventManager::getInstance()->addEventHandler('sale', 'onGenerateCoupon', 'myFunction'); myFunction(\Bitrix\Main\Event $event) { $check = $event->getParameter('CHECK'); $myCoupon = ''; // тут генеришь код купона if ($check) { проверяешь. что такого купона не существует в системе } $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $myCoupon); return $result; }
![]()
Сообщение не промодерировано, возможны ошибки и неточности.
|
\Bitrix\Main\EventManager::getInstance()->addEventHandler('sale', 'onGenerateCoupon', 'myFunctionGenerateCoupon');
function myFunctionGenerateCoupon(\Bitrix\Main\Event $event) { $check = $event->getParameter('CHECK'); $myCoupon = ''; $allchars = 'ABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789'; $charsLen = mb_strlen($allchars) - 1; for ($i = 0; $i < 6; $i++) $myCoupon .= mb_substr($allchars, rand(0, $charsLen), 1); if ($check) { $existCoupon = \Bitrix\Sale\DiscountCouponsManager::isExist($myCoupon); $resultCorrect = empty($existCoupon); } $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $myCoupon); return $result; } |
![]()
Сообщение не промодерировано, возможны ошибки и неточности.
|
[COLOR=#d4d4d4][FONT=Consolas, Courier New, monospace][SIZE=14px][COLOR=#d4d4d4]\Bitrix\Main\[/COLOR][COLOR=#4ec9b0]EventManager[/COLOR][COLOR=#d4d4d4]::[/COLOR][COLOR=#dcdcaa]getInstance[/COLOR][COLOR=#d4d4d4]()->[/COLOR][COLOR=#dcdcaa]addEventHandler[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#ce9178]'sale'[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]'onGenerateCoupon'[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]'myFunctionGenerateCoupon'[/COLOR][COLOR=#d4d4d4]);[/COLOR]
[COLOR=#569cd6]function[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#dcdcaa]myFunctionGenerateCoupon[/COLOR][COLOR=#d4d4d4](\Bitrix\Main\[/COLOR][COLOR=#4ec9b0]Event[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$event[/COLOR][COLOR=#d4d4d4])[/COLOR] [COLOR=#d4d4d4]{[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$check[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#9cdcfe]$event[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]getParameter[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#ce9178]'CHECK'[/COLOR][COLOR=#d4d4d4]);[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$myCoupon[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#ce9178]''[/COLOR][COLOR=#d4d4d4];[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$allchars[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#ce9178]'ABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789'[/COLOR][COLOR=#d4d4d4];[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$charsLen[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#dcdcaa]mb_strlen[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$allchars[/COLOR][COLOR=#d4d4d4]) - [/COLOR][COLOR=#b5cea8]1[/COLOR][COLOR=#d4d4d4];[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]for[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#9cdcfe]$i[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]; [/COLOR][COLOR=#9cdcfe]$i[/COLOR][COLOR=#d4d4d4] < [/COLOR][COLOR=#b5cea8]6[/COLOR][COLOR=#d4d4d4]; [/COLOR][COLOR=#9cdcfe]$i[/COLOR][COLOR=#d4d4d4]++)[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$myCoupon[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#d4d4d4].=[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#dcdcaa]mb_substr[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$allchars[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#dcdcaa]rand[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#9cdcfe]$charsLen[/COLOR][COLOR=#d4d4d4]), [/COLOR][COLOR=#b5cea8]1[/COLOR][COLOR=#d4d4d4]);[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#9cdcfe]$check[/COLOR][COLOR=#d4d4d4])[/COLOR] [COLOR=#d4d4d4] {[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$existCoupon[/COLOR][COLOR=#d4d4d4] = \Bitrix\Sale\[/COLOR][COLOR=#4ec9b0]DiscountCouponsManager[/COLOR][COLOR=#d4d4d4]::[/COLOR][COLOR=#dcdcaa]isExist[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$myCoupon[/COLOR][COLOR=#d4d4d4]);[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$resultCorrect[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#dcdcaa]empty[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$existCoupon[/COLOR][COLOR=#d4d4d4]);[/COLOR] [COLOR=#d4d4d4] }[/COLOR] [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$result[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#569cd6]new[/COLOR][COLOR=#d4d4d4] \Bitrix\Main\[/COLOR][COLOR=#4ec9b0]EventResult[/COLOR][COLOR=#d4d4d4](\Bitrix\Main\[/COLOR][COLOR=#4ec9b0]EventResult[/COLOR][COLOR=#d4d4d4]::SUCCESS, [/COLOR][COLOR=#9cdcfe]$myCoupon[/COLOR][COLOR=#d4d4d4]);[/COLOR] [COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$result[/COLOR][COLOR=#d4d4d4];[/COLOR] [COLOR=#d4d4d4]}[/COLOR][/SIZE][/FONT][/COLOR] |
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.