Перейти к содержимому


Фотография
- - - - -

JBZoo Advert. Изменение свойств на определенное время

advert

Сообщений в теме: 5

#1 woodman

woodman

Отправлено 18 August 2016 - 14:08

Как можно изменить свойство элемента через JBZOO Advert на определенное время?

К примеру, хочу сделать объявление VIP за 20 рублей, но только на 3 дня, при этом снимать с публикации объявление поcле 3х дней нельзя, оно должно оставаться активным.

 

Спасибо


Сообщение отредактировал woodman: 18 August 2016 - 14:08

  • 2

#2 SmetDenis

SmetDenis

Отправлено 22 August 2016 - 07:29

Возврат к предыдущему состоянию можно в этом случае нужно делать только через крон.
Тут только писать собственные обработчики и где-то в элементе хранить время, действие, даты, предыдущий стейт.
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 CB9TOIIIA

CB9TOIIIA

Отправлено 28 November 2016 - 17:07

апну темку, а $item хранит данные оплаты? по сути должна быть информация

 

0_a92b0_be84b073_orig.png
 
На основе нее хочу костыль написать :)

  • 0

#4 SmetDenis

SmetDenis

Отправлено 29 November 2016 - 06:48

апну темку, а $item хранит данные оплаты? по сути должна быть информация
$data = (array)$item->getElement('ELEM_ID')->data();
print_r($data);

Сообщение отредактировал SmetDenis: 30 November 2016 - 08:55
Опечатка

  • 2
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 CB9TOIIIA

CB9TOIIIA

Отправлено 29 November 2016 - 14:42

Маааленькая опечатка :) не deta... Хотя по логике я конечно мог догадаться, что так получить)

$data = (array)$item->getElement('ELEM_ID')->data();
print_r($data);

  • 1

#6 CB9TOIIIA

CB9TOIIIA

Отправлено 29 November 2016 - 15:15

В общем на основе этого кода можно сделать элемент :) смотрим пример:

$nowday = date('Y-m-d H:i:s');
$DataVIP = (array)$item->getElement('02f2fc89-6bd6-4797-bd71-2783220d7d74')->data();
$modifiedFindVIP = $this->app->data->create($DataVIP);
$is_modifiedVIP = $modifiedFindVIP->find('is_modified', NULL);
$ModifiedVIP = $modifiedFindVIP->find('modified', NULL);
$priceVIP = $modifiedFindVIP->find('price', NULL);
// $Order_idVIP = $modifiedFindVIP->find('order_id', NULL);
$EndVIP = date('Y-m-d H:i:s', strtotime("+7 day", strtotime($ModifiedVIP)));
$timesnapend = strtotime($EndVIP);
if (!empty($ModifiedVIP) && $timesnapend != 604800) {
  $elementBoxVIP = $item->getElement('ad722f46-bd0e-4360-8cd1-28b70113d081'); // element id получаем так
  $dataBoxVIP = (array)$elementBoxVIP->data(); // получаем данные
  $changeVIP = $dataBoxVIP['option']['0'];
  if (strtotime($EndVIP) < strtotime($nowday) && !empty($changeVIP) && !empty($priceVIP)) {
    $changeVIP = NULL;
    $elementBoxVIP->bindData($changeVIP);
    $zoo->table->item->save($item);
  }
}

Если вкратце: получаем данные о покупке из JBAdvert - далее сравниваем текущую дату и дату окончания VIP (дополнительное другие поля, что оплата не пустая). Меняем данные в селекте - записываем в БД. При последующем обновлении страницы - у товара уже не будет статуса VIP и условие не будет выполнено.

 

Ждем мнение экспертов.


Сообщение отредактировал CB9TOIIIA: 30 November 2016 - 15:09

  • 2





Темы с аналогичным тегами advert

Click to return to top of page in style!