Имеется такой код, который в битриксе по api генерирует код скидки и добавляет его в систему.
Мне нужно этот промо-код подсунуть в input формы form, но не могу передать переменную.
Почему то $coupon не хочет равняться $coupon = $codeforform и echo $codeforform дает ошибку.
<?
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
class PaiCouponGeneration{
var $DISCOUNT_ID = 2; // идентификатор скидки
var $PERIOD = '2 days'; // период активности купона если нужен будет 1 день - заменить на '1 day',
// в остальных случаях - просто замена цифры
function __construct()
{
\Bitrix\Main\Loader::includeModule('sale');
}
function GetDiscountID(){
if(intval($this->DISCOUNT_ID)<=0){
$arDiscountFilter = array('ACTIVE'=>'Y','ID'=>$this->DISCOUNT_ID);
// сюда можно прописать любые параметры фильтрации для поиска конктетной скидки по параметрам
// если же нужно просто привязаться к какой-то конкретной скидке - прописываем ее идентификатор
// в переменную $DISCOUNT_ID
$saleDiscountDb = \CSaleDiscount::GetList(array('DATE_CREATE' => 'DESC'),$arDiscountFilter,
false,false,array('ID','ACTIONS','CONDITIONS'));
$saleDiscountId = null;
if ($saleDiscount = $saleDiscountDb->Fetch())
{
$saleDiscountId = $saleDiscount['ID'];
}
$this->DISCOUNT_ID = $saleDiscountId;
}
}
function GenerateCoupon(){
$this->GetDiscountID();
if(intval($this->DISCOUNT_ID)>0){
$activeFrom = new \Bitrix\Main\Type\DateTime();
$activeTo = new \Bitrix\Main\Type\DateTime();
$activeTo = $activeTo->add($this->PERIOD);
$coupon = \Bitrix\Sale\Internals\DiscountCouponTable::generateCoupon(true);
$addDb = \Bitrix\Sale\Internals\DiscountCouponTable::add(array(
'DISCOUNT_ID' => $this->DISCOUNT_ID,
'COUPON' => $coupon,
'TYPE' => \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_ONE_ORDER,
'ACTIVE_FROM' => $activeFrom,
'ACTIVE_TO' => $activeTo,
'MAX_USE' => 1,
'USER_ID' => 0,
'DESCRIPTION' => ''
));
if ($addDb->isSuccess())
{
echo $coupon;
} else {
echo $addDb->getErrorMessages();
}
} else {
echo 'Ошибка генерации купона скидки. Обратитесь к администратору сайта';
}
}
}
$coupon = new PaiCouponGeneration();
$coupon->GenerateCoupon();
?>