Биллинг система - ГЛЮК
получили то за что не платили..
Суть: пользователь оплачивает VIP объявление на 7 дней… само объявление на 7 или 14 дней (другая цифра не разрешена). В итого получает объявление с вип статусом при любом раскладе на 2 недели… это как? как он считает, как это исправить… Код сам я править не могу и искать где глюк, так как он закрыт от глаз смертных.
Кто сталкивался?
Как
еслиобъявление с вип статусом при любом раскладе на 2 недели
На скрине вроде все логично. Срок 7 дней и вип тоже 7 дней. Откуда 2 недели получается, Вы сложили эти два срока?VIP объявление на 7 дней… само объявление на 7 или 14 дней
Судя из скринов это не он сложил:Вы сложили эти два срока?
VIP-статус: до 8 октября
а это через 2 недели, хотя выбрано вроде на 1 неделю.
Поднимаю тему!
Написал письмо в тех.поддержку (как я понял с iMap она одна), заявленные 16 часов на ответ прошли 5 дней назад.Что делать — люди платят, а я руками всё правлю и каждый раз объясняю им, что уменьшаю — на столько сколько они заплатили.
Проблема: увеличивает в 2 раза любое добавленное количество VIP дней 5 дней VIP превращается в 10, а 10 в 20 и т.д.
Кто сталкивался с проблемой? или кто знает как напрямую связаться с разработчиками? пожалуйста отзовитесь — оооочень нужно исправить проблему!!!
/components/board/model.php найти функцию setVip и убрать/закомментировать второй SQL-запрос.
Я, конечно, в глаза не видал компонент "Биллинг", но моя интуиция подсказывает, что необходимо в файле /components/board/model.php найти функцию setVip и убрать/закомментировать второй SQL-запрос.
// если до этого статуса VIP не было
$sql = "UPDATE cms_board_items
SET is_vip = 1, vipdate = DATE_ADD(NOW(), INTERVAL {$days} DAY)
WHERE id='{$id}' AND is_vip=0
LIMIT 1";
разные варианты "может" я уже просмотрел и не вижу с чего вдруг так.может там запросы нужно сменить местами и все будет нормально?
public function setVip($id, $days){ // Установить статус VIP и дату окончания считая от текущей, // если до этого статуса VIP не было $sql = "UPDATE cms_board_items SET is_vip = 1, vipdate = DATE_ADD(NOW(), INTERVAL {$days} DAY) WHERE id='{$id}' AND is_vip=0 LIMIT 1"; $this->inDB->query($sql); // Продлить имеющуюся дату VIP, если VIP-статус уже был $sql = "UPDATE cms_board_items SET vipdate = DATE_ADD(vipdate, INTERVAL {$days} DAY) WHERE id='{$id}' AND is_vip=1 LIMIT 1"; $this->inDB->query($sql); return true; }
1-й ставит вип, а 2-й его продлевает. Тем самым увеличивая в 2-е вип.
Сам не проверял, но думаю все так и есть. Поменяйте местами запросы и проверьте.
public function setVip($id, $days){ // Продлить имеющуюся дату VIP, если VIP-статус уже был $sql = "UPDATE cms_board_items SET vipdate = DATE_ADD(vipdate, INTERVAL {$days} DAY) WHERE id='{$id}' AND is_vip=1 LIMIT 1"; $this->inDB->query($sql); // Установить статус VIP и дату окончания считая от текущей, // если до этого статуса VIP не было $sql = "UPDATE cms_board_items SET is_vip = 1, vipdate = DATE_ADD(NOW(), INTERVAL {$days} DAY) WHERE id='{$id}' AND is_vip=0 LIMIT 1"; $this->inDB->query($sql); return true; }
а вот у нашего уважаемого ТС — один запрос.