/** * Constructor */ public function __construct() { $this->settings = new \SimpleSubscribe\Settings(SUBSCRIBE_KEY); $this->settingsAll = $this->settings->getSettings(); $this->htmlEmail = isset($this->settingsAll['emailType']['source']) ? $this->settingsAll['emailType']['source'] == 0 ? TRUE : FALSE : TRUE; $this->subscribers = \SimpleSubscribe\RepositorySubscribers::getInstance(); $this->log = \SimpleSubscribe\RepositoryLog::getInstance(); $this->mailer = new \Nette\Mail\SendmailMailer(); $this->senderName = isset($this->settingsAll['misc']['senderName']) ? $this->settingsAll['misc']['senderName'] : html_entity_decode(get_option('blogname'), ENT_QUOTES); $this->senderEmail = isset($this->settingsAll['misc']['senderEmail']) ? $this->settingsAll['misc']['senderEmail'] : get_option('admin_email'); }
/** * Do the magic */ public function processActions() { // WP_List_Table export \SimpleSubscribe\TableSubscribes::process(); // settings form if ($this->formSettings->isSubmitted() && $this->formSettings->isValid()) { $values = $this->formSettings->getValues(TRUE); // if there are cateogires selected, and ALL as well, uncheck remaining if (count(array_filter($values['cat'])) > 0 && $values['cat']['0'] == TRUE) { foreach ($values['cat'] as $key => $value) { $values['cat'][$key] = FALSE; $this->formSettings['cat'][$key]->value = FALSE; } $values['cat']['0'] = TRUE; $this->formSettings['cat']['0']->value = TRUE; // if there is other category selected, unselect ALL } elseif (count(array_filter($values['cat'])) > 1) { $values['cat']['0'] = FALSE; $this->formSettings['cat']['0']->value = FALSE; // if there's no category selected, select ALL } elseif (!in_array(TRUE, $values['cat'])) { $values['cat']['0'] = TRUE; $this->formSettings['cat']['0']->value = TRUE; } $this->settings->saveSettings($values); $this->addNotice('updated', 'Settings successfully saved.'); } elseif ($this->formSettings->hasErrors()) { foreach ($this->formSettings->getErrors() as $error) { $this->addNotice('error', $error); } } // email template (saved in settings table tho) if ($this->formEmailTemplate->isSubmitted() && $this->formEmailTemplate->isValid()) { $this->settings->saveSettings($this->formEmailTemplate->getValues(TRUE)); $this->addNotice('updated', 'Settings successfully saved.'); } elseif ($this->formEmailTemplate->hasErrors()) { foreach ($this->formEmailTemplate->getErrors() as $error) { $this->addNotice('error', $error); } } // mass email if ($this->formEmail->isSubmitted() && $this->formEmail->isValid()) { try { $this->email->sendMassEmail($this->formEmail->getValues(TRUE)); $this->addNotice('updated', 'Email successfully sent.'); } catch (EmailException $e) { $this->addNotice('error', $e->getMessage()); } } elseif ($this->formEmail->hasErrors()) { foreach ($this->formEmail->getErrors() as $error) { $this->addNotice('error', $error); } } // subscriber form if ($this->formSubscriber->isSubmitted() && $this->formSubscriber->isValid()) { try { $this->subscribers->addThruAdmin($this->formSubscriber->getValues()); $this->addNotice('updated', 'Subscriber successfully added.'); } catch (RepositarySubscribersException $e) { $this->addNotice('error', $e->getMessage()); } } elseif ($this->formSubscriber->hasErrors()) { foreach ($this->formSubscriber->getErrors() as $error) { $this->addNotice('error', $error); } } // wp subscriber form if ($this->formSubscriberWp->isSubmitted() && $this->formSubscriberWp->isValid()) { try { $users = $this->formSubscriberWp->getValues(TRUE); $this->subscribers->addWpRegistered($users['users']); $this->addNotice('updated', 'Subscriber(s) successfully added.'); } catch (RepositarySubscribersException $e) { $this->addNotice('error', $e->getMessage()); } } elseif ($this->formSubscriberWp->hasErrors()) { foreach ($this->formSubscriberWp->getErrors() as $error) { $this->addNotice('error', $error); } } // email preview form if ($this->formEmailPreview->isSubmitted() && $this->formEmailPreview->isValid()) { try { $this->email->sendEmailPreview($this->formEmailPreview->getValues(TRUE)); $this->addNotice('updated', 'Email Preview successfully sent.'); } catch (EmailException $e) { $this->addNotice('error', $e->getMessage()); } } elseif ($this->formEmailPreview->hasErrors()) { foreach ($this->formEmailPreview->getErrors() as $error) { $this->addNotice('error', $error); } } }