Задать вопрос
@anton99zel
29а класс средней школы №7

Как промо код вставить в форму form?

Имеется такой код, который в битриксе по 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();
?>
  • Вопрос задан
  • 165 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
не могу передать переменную
откуда куда?

Почему то $coupon не хочет равняться $coupon = $codeforform и echo $codeforform дает ошибку.

потому что, судя по вашему коду, $coupon - это объект
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы