Exemplo n.º 1
0
 protected function fetchConditions()
 {
     parent::fetchConditions();
     $filter_abandoned = $this->getState('filter.abandoned', 0);
     if ($filter_abandoned) {
         // abandoned carts are only valid when they have items in them
         $this->setCondition('items', array('$not' => array('$size' => 0)));
         // only users
         $this->setCondition('user_id', array('$nin' => array('', null)));
         $settings = \Shop\Models\Settings::fetch();
         $abandoned_time = $settings->get('abandoned_cart_time') * 60;
         // set starting date and time for abandoned carts?
         $filter_abandoned_datetime = $this->getState('filter.abandoned.datetime');
         if (!empty($filter_abandoned_datetime)) {
             $abandoned_time = $filter_abandoned_datetime - $abandoned_time;
         } else {
             // or use current timestamp
             $abandoned_time = time() - $abandoned_time;
         }
         $this->setCondition('metadata.last_modified.time', array('$lt' => $abandoned_time));
         // only newly abandoned carts
         $filter_only_new = $this->getState('filter.abandoned_only_new', 0);
         if ($filter_only_new) {
             // TODO OR NULL
             $this->setCondition('abandoned_notifications', array('$size' => 0));
         }
     }
 }