Документация для разработчиков
Темная тема

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;
} 


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Андрей Шарай
Сообщение не промодерировано, возможны ошибки и неточности.
\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;
}
0
Андрей Шарай
Сообщение не промодерировано, возможны ошибки и неточности.
[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
Наверх