Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія | Попередня ревізія Наступна ревізія По сторонах наступні версії | ||
discounts [2013/11/04 01:22] |
discounts [2023/01/04 14:46] nightfly |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
+ | |||
+ | ====== Знижки ====== | ||
+ | |||
+ | Механіка знижок доступна починаючи з Ubilling 0.3.4. У версії Ubilling 1.3.4 (ага, після сотні стабільних релізів) її було вдумливо переписано, | ||
+ | |||
+ | * Видобуваються суми усіх позитивних платежів за якийсь період часу (поточний чи попередній місяць, | ||
+ | * У випадку, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ====== Ввімкнення та налаштування ====== | ||
+ | |||
+ | Вся конфігурація, | ||
+ | |||
+ | <file ini alter.ini> | ||
+ | ; Підтримку механіки знижок увімкнено? | ||
+ | DISCOUNTS_ENABLED=1 | ||
+ | ; якщо (чомусь? | ||
+ | ; дана опція може приймати значення ADD | ||
+ | DISCOUNT_OPERATION=" | ||
+ | ; ID типу платежів, | ||
+ | DISCOUNT_CASHTYPEID=1 | ||
+ | ; розкоментування цієї опції, призведе до того, що при розрахунку знижок користувачів, | ||
+ | ; будуть розглядатись оплати за " | ||
+ | ; | ||
+ | ; Ввімкніть дану опцію, для щоденної обробки знижок. В цьому випадку, | ||
+ | DISCOUNT_DAILY=0 | ||
+ | </ | ||
+ | |||
+ | та розміщенням необхідного виклику **discountprocessing** в якийсь певний час, в вашому crontab-і. | ||
+ | |||
+ | У випадку, | ||
+ | |||
+ | < | ||
+ | 59 23 * * * / | ||
+ | </ | ||
+ | |||
+ | Що власне призведе до нарахування знижок, | ||
+ | |||
+ | Також вам може захотітись, | ||
+ | |||
+ | < | ||
+ | 59 23 15 * * / | ||
+ | </ | ||
+ | |||
+ | Ну або ж ви бажаєте нараховувати знижки по всіх платежах попереднього місяця, | ||
+ | |||
+ | <code ini> | ||
+ | DISCOUNT_PREVMONTH=1 | ||
+ | </ | ||
+ | |||
+ | Та використовувати виклик з crontab якось так: | ||
+ | < | ||
+ | 20 1 1 * * /bin/ubapi " | ||
+ | </ | ||
+ | |||
+ | Також, з якоїсь причини, | ||
+ | |||
+ | <code ini> | ||
+ | DISCOUNT_DAILY=1 | ||
+ | </ | ||
+ | |||
+ | та здійснювати виклик з Remote API щоденно, | ||
+ | |||
+ | < | ||
+ | 59 23 * * * / | ||
+ | </ | ||
+ | |||
+ | ====== Використання ====== | ||
+ | |||
+ | Тепер, для того, щоб встановити знижку нашому абоненту в 10%, нам достатньо просто скористатись " | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Клацнути на редагування знижки | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Встановити необхідний нам відсоток | ||
+ | |||
+ | {{: | ||
+ | |||
+ | отримати очікуваний результат | ||
+ | |||
+ | {{: | ||
+ | |||
+ | та забути про це. | ||
+ | |||
+ | При наступних викликах discountprocessing з Remote API кошти будуть самі собі зараховуватись на рахунок абонента згідно нашої конфігурації та відсотків вказаних для абонента. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Слід також зауважити, | ||
+ | |||
+ | ====== Міграція з старих знижок ====== | ||
+ | |||
+ | У випадку, | ||
+ | |||
+ | <code php> | ||
+ | if ($ubillingConfig-> | ||
+ | $discountCfId = $ubillingConfig-> | ||
+ | if ($discountCfId) { | ||
+ | $cfDb = new nya_cfitems(); | ||
+ | $cfDb-> | ||
+ | $allOldDiscounts = $cfDb-> | ||
+ | if (!empty($allOldDiscounts)) { | ||
+ | $discountsDb = new nya_discounts(); | ||
+ | $allDiscounts = $discountsDb-> | ||
+ | foreach ($allOldDiscounts as $eachLogin => $eachOldDiscountData) { | ||
+ | if (is_numeric($eachOldDiscountData[' | ||
+ | if (!isset($allDiscounts[$eachLogin])) { | ||
+ | $newDiscount = ubRouting:: | ||
+ | $loginF = ubRouting:: | ||
+ | $loginF = trim($loginF); | ||
+ | $discountsDb-> | ||
+ | $discountsDb-> | ||
+ | $discountsDb-> | ||
+ | show_success(__(' | ||
+ | } else { | ||
+ | show_warning(__(' | ||
+ | } | ||
+ | } else { | ||
+ | show_error(__(' | ||
+ | } | ||
+ | } | ||
+ | $cache = new UbillingCache(); | ||
+ | $cache-> | ||
+ | } else { | ||
+ | show_error(__(' | ||
+ | } | ||
+ | } else { | ||
+ | show_error(__(' | ||
+ | } | ||
+ | } else { | ||
+ | show_error(__(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Всі ваші старі знижки, |