public function unsubscribe() { $email = $this->request->get('email'); // delete from subscriber table $f = new ARDeleteFilter(new EqualsCond(new ARFieldHandle('NewsletterSubscriber', 'email'), $email)); ActiveRecordModel::deleteRecordSet('NewsletterSubscriber', $f); // add user to subscriber table if ($user = User::getInstanceByEmail($email)) { $s = NewsletterSubscriber::getNewInstanceByUser($user); $s->isEnabled->set(false); $s->save(); } return new ActionResponse(); }
protected function insert() { $res = parent::insert(); if ($subscriber = NewsletterSubscriber::getInstanceByEmail($this->email->get())) { $subscriber->user->set($this); } else { $subscriber = NewsletterSubscriber::getNewInstanceByUser($this); $subscriber->isEnabled->set(false); $subscriber->save(); } $subscriber->confirmationCode->set(''); $subscriber->save(); return $res; }