Esempio n. 1
0
 /**
  * Init payment listeners
  *
  * @param \Zend\EventManager\EventInterface $e
  */
 public function initPaymentListeners(EventInterface $e)
 {
     $model = $this->serviceManager->get('Application\\Model\\ModelManager')->getInstance('Payment\\Model\\PaymentBase');
     // update a user transactions info
     $eventManager = PaymentEvent::getEventManager();
     if ($model->getModuleInfo('Payment')) {
         // init edit and update events for payment modules
         foreach ($model->getPaymentModules() as $module) {
             // get the payment handler
             $paymentHandler = $this->serviceManager->get('Payment\\Handler\\PaymentHandlerManager')->getInstance($module->handler);
             // update items
             $eventManager->attach($module->update_event, function ($e) use($model, $paymentHandler, $module) {
                 $model->updateItemGlobally($e->getParam('object_id'), $paymentHandler, $module);
             });
             // delete items
             $eventManager->attach($module->delete_event, function ($e) use($model, $module) {
                 $model->deleteItemGlobally($e->getParam('object_id'), $module->module);
             });
         }
     }
 }