/**
  * creates default objects
  * 
  * @return void
  *
  * @author Sascha Koehler <*****@*****.**>
  * @copyright 2011 pixeltricks GmbH
  * @since 05.01.2011
  */
 public function requireDefaultRecords()
 {
     parent::requireDefaultRecords();
     $checkInfoMail = DataObject::get_one('SilvercartShopEmail', sprintf("\"Identifier\" = '%s'", 'SilvercartPaymentPrepaymentBankAccountInfo'));
     if (!$checkInfoMail) {
         $infoMail = new SilvercartShopEmail();
         $infoMail->setField('Identifier', 'SilvercartPaymentPrepaymentBankAccountInfo');
         $infoMail->setField('Subject', _t('SilvercartPaymentPrepayment.PAYMENT_INFO'));
         $infoMail->setField('EmailText', '');
         $infoMail->setField('Variables', "\$SilvercartOrder");
         $infoMail->write();
     }
 }
 /**
  * Sends a mail with the given SilvercartOrder object as data provider.
  * 
  * @param SilvercartOrder $order The order object that is used to fill the
  *                               mail template variables.
  * 
  * @return void
  * 
  * @author Sascha Koehler <*****@*****.**>
  * @since 27.10.2011
  */
 public function sendMailFor(SilvercartOrder $order)
 {
     $shopEmails = $this->SilvercartShopEmails();
     if ($shopEmails) {
         foreach ($shopEmails as $shopEmail) {
             SilvercartShopEmail::send($shopEmail->Identifier, $order->CustomersEmail, array('SilvercartOrder' => $order, 'OrderNumber' => $order->OrderNumber, 'CustomersEmail' => $order->CustomersEmail, 'FirstName' => $order->SilvercartInvoiceAddress()->FirstName, 'Surname' => $order->SilvercartInvoiceAddress()->Surname, 'Salutation' => $order->SilvercartInvoiceAddress()->Salutation));
         }
     }
     $this->extend('updateSendMailFor', $order);
 }
示例#3
0
 /**
  * send a confirmation mail with order details to the customer $member
  *
  * @author Roland Lehmann <*****@*****.**>, Sebastian Diel <*****@*****.**>
  * @since 26.08.2011
  * @return void
  */
 public function sendConfirmationMail()
 {
     $params = array('MailOrderConfirmation' => array('Template' => 'MailOrderConfirmation', 'Recipient' => $this->CustomersEmail, 'Variables' => array('FirstName' => $this->SilvercartInvoiceAddress()->FirstName, 'Surname' => $this->SilvercartInvoiceAddress()->Surname, 'Salutation' => $this->SilvercartInvoiceAddress()->getSalutationText(), 'SilvercartOrder' => $this), 'Attachments' => null), 'MailOrderNotification' => array('Template' => 'MailOrderNotification', 'Recipient' => SilvercartConfig::DefaultMailOrderNotificationRecipient(), 'Variables' => array('FirstName' => $this->SilvercartInvoiceAddress()->FirstName, 'Surname' => $this->SilvercartInvoiceAddress()->Surname, 'Salutation' => $this->SilvercartInvoiceAddress()->getSalutationText(), 'SilvercartOrder' => $this), 'Attachments' => null));
     $result = $this->extend('updateConfirmationMail', $params);
     SilvercartShopEmail::send($params['MailOrderConfirmation']['Template'], $params['MailOrderConfirmation']['Recipient'], $params['MailOrderConfirmation']['Variables'], $params['MailOrderConfirmation']['Attachments']);
     SilvercartShopEmail::send($params['MailOrderNotification']['Template'], $params['MailOrderNotification']['Recipient'], $params['MailOrderNotification']['Variables'], $params['MailOrderNotification']['Attachments']);
     $this->extend('onAfterConfirmationMail');
 }
 /**
  * Send the contact message via email.
  *
  * @return void
  *
  * @author Sebastian Diel <*****@*****.**>
  * @since 07.08.2014
  */
 public function send()
 {
     $silvercartPluginCall = SilvercartPlugin::call($this, 'send');
     if (!$silvercartPluginCall) {
         SilvercartShopEmail::send('ContactMessage', SilvercartConfig::DefaultContactMessageRecipient(), array('FirstName' => $this->FirstName, 'Surname' => $this->Surname, 'Street' => $this->Street, 'StreetNumber' => $this->StreetNumber, 'Postcode' => $this->Postcode, 'City' => $this->City, 'SilvercartCountry' => $this->SilvercartCountry(), 'Email' => $this->Email, 'Phone' => $this->Phone, 'Message' => str_replace('\\r\\n', '<br/>', nl2br($this->Message))));
     }
 }
 /**
  * Creates the default SilvercartShopEmails if not exists
  * 
  * @return void
  *
  * @author Sebastian Diel <*****@*****.**>
  * @since 02.05.2012
  */
 public function createDefaultShopEmails()
 {
     $shopEmailRegistrationOptIn = SilvercartShopEmail::get()->filter('Identifier', 'RegistrationOptIn')->first();
     if (!$shopEmailRegistrationOptIn) {
         $shopEmailRegistrationOptIn = new SilvercartShopEmail();
         $shopEmailRegistrationOptIn->setField('Identifier', 'RegistrationOptIn');
         $shopEmailRegistrationOptIn->setField('Subject', _t('SilvercartRegistrationPage.PLEASE_COFIRM', 'please confirm Your registration'));
         $shopEmailRegistrationOptIn->setField('EmailText', _t('SilvercartRegistrationPage.CONFIRMATION_TEXT', '<h1>Complete registration</h1><p>Please confirm Your activation or copy the link to Your Browser.</p><p><a href="$ConfirmationLink">Confirm registration</a></p><p>In case You did not register please ignore this mail.</p><p>Your shop team</p>'));
         $shopEmailRegistrationOptIn->write();
     }
     $shopEmailRegistrationConfirmation = SilvercartShopEmail::get()->filter('Identifier', 'RegistrationConfirmation')->first();
     if (!$shopEmailRegistrationConfirmation) {
         $shopEmailRegistrationConfirmation = new SilvercartShopEmail();
         $shopEmailRegistrationConfirmation->setField('Identifier', 'RegistrationConfirmation');
         $shopEmailRegistrationConfirmation->setField('Subject', _t('SilvercartRegistrationPage.THANKS', 'Many thanks for Your registration'));
         $shopEmailRegistrationConfirmation->setField('EmailText', _t('SilvercartRegistrationPage.SUCCESS_TEXT', '<h1>Registration completed successfully!</h1><p>Many thanks for Your registration.</p><p>Have a nice time on our website!</p><p>Your webshop team</p>'));
         $shopEmailRegistrationConfirmation->write();
     }
     $checkOrderMail = SilvercartShopEmail::get()->filter('Identifier', 'MailOrderConfirmation')->first();
     if (!$checkOrderMail) {
         $orderMail = new SilvercartShopEmail();
         $orderMail->setField('Identifier', 'MailOrderConfirmation');
         $orderMail->setField('Subject', _t('SilvercartShopEmail.ORDER_ARRIVED_EMAIL_SUBJECT'));
         $orderMail->setField('Variables', "\$FirstName\n\$Surname\n\$Salutation\n\$Order");
         $defaultTemplateFile = Director::baseFolder() . '/silvercart/templates/email/SilvercartMailOrderConfirmation.ss';
         if (is_file($defaultTemplateFile)) {
             $defaultTemplate = SilvercartShopEmail::parse(file_get_contents($defaultTemplateFile));
         } else {
             $defaultTemplate = '';
         }
         $orderMail->setField('EmailText', $defaultTemplate);
         $orderMail->write();
     }
     $orderMail = SilvercartShopEmail::get()->filter('Identifier', 'MailOrderNotification')->first();
     if (!$orderMail) {
         $orderMail = new SilvercartShopEmail();
         $orderMail->setField('Identifier', 'MailOrderNotification');
         $orderMail->setField('Subject', _t('SilvercartShopEmail.NEW_ORDER_PLACED'));
         $orderMail->setField('Variables', "\$FirstName\n\$Surname\n\$Salutation\n\$Order");
         $defaultTemplateFile = Director::baseFolder() . '/silvercart/templates/email/SilvercartMailOrderNotification.ss';
         if (is_file($defaultTemplateFile)) {
             $defaultTemplate = SilvercartShopEmail::parse(file_get_contents($defaultTemplateFile));
         } else {
             $defaultTemplate = '';
         }
         $orderMail->setField('EmailText', $defaultTemplate);
         $orderMail->write();
     }
     $contactEmail = SilvercartShopEmail::get()->filter('Identifier', 'ContactMessage')->first();
     if (!$contactEmail) {
         $contactEmail = new SilvercartShopEmail();
         $contactEmail->setField('Identifier', 'ContactMessage');
         $contactEmail->setField('Subject', _t('SilvercartContactFormPage.REQUEST', 'request via contact form'));
         $contactEmail->setField('Variables', "\$FirstName\n\$Surname\n\$Email\n\$Message");
         $contactEmail->setField('EmailText', _t('SilvercartContactMessage.TEXT'));
         $contactEmail->write();
     }
     $shopEmailNewsletterOptIn = SilvercartShopEmail::get()->filter('Identifier', 'NewsletterOptIn')->first();
     if (!$shopEmailNewsletterOptIn) {
         $shopEmailNewsletterOptIn = new SilvercartShopEmail();
         $shopEmailNewsletterOptIn->setField('Identifier', 'NewsletterOptIn');
         $shopEmailNewsletterOptIn->setField('Subject', _t('SilvercartNewsletterOptInConfirmationPage.TITLE'));
         $shopEmailNewsletterOptIn->setField('EmailText', _t('SilvercartNewsletterOptInConfirmationPage.EMAIL_CONFIRMATION_TEXT'));
         $shopEmailNewsletterOptIn->write();
     }
     $shopEmailNewsletterOptInConfirmation = SilvercartShopEmail::get()->filter('Identifier', 'NewsletterOptInConfirmation')->first();
     if (!$shopEmailNewsletterOptInConfirmation) {
         $shopEmailNewsletterOptInConfirmation = new SilvercartShopEmail();
         $shopEmailNewsletterOptInConfirmation->setField('Identifier', 'NewsletterOptInConfirmation');
         $shopEmailNewsletterOptInConfirmation->setField('Subject', _t('SilvercartNewsletterOptInConfirmationPage.TITLE_THANKS'));
         $shopEmailNewsletterOptInConfirmation->setField('EmailText', _t('SilvercartNewsletterOptInConfirmationPage.CONFIRMATIONSUCCESSMESSAGE'));
         $shopEmailNewsletterOptInConfirmation->write();
     }
     $shopEmailForgotPasswordEmail = SilvercartShopEmail::get()->filter('Identifier', 'ForgotPasswordEmail')->first();
     if (!$shopEmailForgotPasswordEmail) {
         $shopEmailForgotPasswordEmail = new SilvercartShopEmail();
         $shopEmailForgotPasswordEmail->Identifier = 'ForgotPasswordEmail';
         $shopEmailForgotPasswordEmail->Subject = _t('SilvercartShopEmail.FORGOT_PASSWORD_SUBJECT');
         $shopEmailForgotPasswordEmail->Variables = "\$FirstName\n\$Surname\n\$Salutation\n\$PasswordResetLink";
         $defaultTemplateFile = Director::baseFolder() . '/silvercart/templates/email/ForgotPasswordEmail.ss';
         if (is_file($defaultTemplateFile)) {
             $defaultTemplate = SilvercartShopEmail::parse(file_get_contents($defaultTemplateFile));
         } else {
             $defaultTemplate = '';
         }
         $shopEmailForgotPasswordEmail->EmailText = $defaultTemplate;
         $shopEmailForgotPasswordEmail->write();
     }
     $shopEmailOrderShippedNotification = SilvercartShopEmail::get()->filter('Identifier', 'OrderShippedNotification')->first();
     if (!$shopEmailOrderShippedNotification) {
         $shopEmailOrderShippedNotification = new SilvercartShopEmail();
         $shopEmailOrderShippedNotification->setField('Identifier', 'OrderShippedNotification');
         $shopEmailOrderShippedNotification->setField('Subject', _t('SilvercartShopEmail.ORDER_SHIPPED_NOTIFICATION_SUBJECT'));
         $shopEmailOrderShippedNotification->setField('Variables', "\$FirstName\n\$Surname\n\$Salutation\n\$SilvercartOrder");
         $defaultTemplateFile = Director::baseFolder() . '/silvercart/templates/email/SilvercartMailOrderShippedNotification.ss';
         if (is_file($defaultTemplateFile)) {
             $defaultTemplate = SilvercartShopEmail::parse(file_get_contents($defaultTemplateFile));
         } else {
             $defaultTemplate = '';
         }
         $shopEmailOrderShippedNotification->setField('EmailText', $defaultTemplate);
         $shopEmailOrderShippedNotification->write();
     }
     $shopEmailRevocationNotification = SilvercartShopEmail::get()->filter('Identifier', 'RevocationNotification')->first();
     if (!$shopEmailRevocationNotification) {
         $shopEmailRevocationNotification = new SilvercartShopEmail();
         $shopEmailRevocationNotification->Identifier = 'RevocationNotification';
         $shopEmailRevocationNotification->Subject = _t('SilvercartMailRevocationNotification.Subject');
         $shopEmailRevocationNotification->Variables = '';
         $defaultTemplateFile = Director::baseFolder() . '/silvercart/templates/email/SilvercartMailRevocationNotification.ss';
         if (is_file($defaultTemplateFile)) {
             $defaultTemplate = SilvercartShopEmail::parse(file_get_contents($defaultTemplateFile));
         } else {
             $defaultTemplate = '';
         }
         $shopEmailRevocationNotification->EmailText = $defaultTemplate;
         $shopEmailRevocationNotification->write();
         $shopEmailRevocationConfirmation = new SilvercartShopEmail();
         $shopEmailRevocationConfirmation->Identifier = 'RevocationConfirmation';
         $shopEmailRevocationConfirmation->Subject = _t('SilvercartMailRevocationConfirmation.Subject');
         $shopEmailRevocationConfirmation->Variables = '';
         $defaultTemplateFile = Director::baseFolder() . '/silvercart/templates/email/SilvercartMailRevocationConfirmation.ss';
         if (is_file($defaultTemplateFile)) {
             $defaultTemplate = SilvercartShopEmail::parse(file_get_contents($defaultTemplateFile));
         } else {
             $defaultTemplate = '';
         }
         $shopEmailRevocationConfirmation->EmailText = $defaultTemplate;
         $shopEmailRevocationConfirmation->write();
     }
     // attribute ShopEmails to order status
     $orderStatus = SilvercartOrderStatus::get()->filter('Code', 'shipped')->sort('ID')->first();
     $orderEmail = SilvercartShopEmail::get()->filter('Identifier', 'OrderShippedNotification')->sort('ID')->first();
     if ($orderStatus && $orderEmail) {
         $orderStatus->SilvercartShopEmails()->add($orderEmail);
     }
 }
 /**
  * sends email to defined address
  *
  * @param string $identifier  identifier for email template
  * @param string $to          recipients email address
  * @param array  $variables   array with template variables that can be called in the template
  * @param array  $attachments absolute filename to an attachment file
  *
  * @return bool
  *
  * @author Sebastian Diel <*****@*****.**>,
  *         Sascha Koehler <*****@*****.**>
  * @since 16.06.2014
  */
 public static function send($identifier, $to, $variables = array(), $attachments = null)
 {
     $mailObj = SilvercartShopEmail::get()->filter('Identifier', $identifier)->first();
     if (!$mailObj) {
         return false;
     }
     $emailText = trim($mailObj->EmailText);
     if (is_null($emailText) || empty($emailText)) {
         return false;
     }
     $emailSubject = trim($mailObj->Subject);
     if (is_null($emailSubject) || empty($emailSubject)) {
         return false;
     }
     if (!is_array($variables)) {
         $variables = array();
     }
     $templateVariables = new ArrayData($variables);
     $emailTextTemplate = new SSViewer_FromString($mailObj->EmailText);
     $emailText = HTTP::absoluteURLs($emailTextTemplate->process($templateVariables));
     $emailSubjectTemplate = new SSViewer_FromString($mailObj->Subject);
     $emailSubject = HTTP::absoluteURLs($emailSubjectTemplate->process($templateVariables));
     $email = new Email(SilvercartConfig::EmailSender(), $to, $emailSubject, $mailObj->EmailText);
     $email->setTemplate('SilvercartShopEmail');
     $email->populateTemplate(array('ShopEmailSubject' => $emailSubject, 'ShopEmailMessage' => $emailText));
     self::attachFiles($email, $attachments);
     $email->send();
     if (SilvercartConfig::GlobalEmailRecipient() != '') {
         $email = new Email(SilvercartConfig::EmailSender(), SilvercartConfig::GlobalEmailRecipient(), $emailSubject, $mailObj->EmailText);
         $email->setTemplate('SilvercartShopEmail');
         $email->populateTemplate(array('ShopEmailSubject' => $emailSubject, 'ShopEmailMessage' => $emailText));
         $email->send();
     }
     //Send the email to additional standard receipients from the n:m
     //relation AdditionalReceipients;
     //Email address is validated.
     if ($mailObj->AdditionalReceipients()->exists()) {
         foreach ($mailObj->AdditionalReceipients() as $additionalReceipient) {
             if ($additionalReceipient->getEmailAddressWithName() && Email::validEmailAddress($additionalReceipient->Email)) {
                 $to = $additionalReceipient->getEmailAddressWithName();
             } elseif ($additionalReceipient->getEmailAddress() && Email::validEmailAddress($additionalReceipient->Email)) {
                 $to = $additionalReceipient->getEmailAddress();
             } else {
                 continue;
             }
             $email = new Email(SilvercartConfig::EmailSender(), $to, $emailSubject, $mailObj->EmailText);
             $email->setTemplate('SilvercartShopEmail');
             $email->populateTemplate(array('ShopEmailSubject' => $emailSubject, 'ShopEmailMessage' => $emailText));
             self::attachFiles($email, $attachments);
             $email->send();
         }
     }
 }
 /**
  * Send confirmation mail to customer
  *
  * @param Customer $salutation Das Kundenobjekt
  * @param string   $firstName  ...
  * @param string   $surName    ...
  * @param string   $email      ...
  *
  * @return void
  *
  * @author Sascha Koehler <*****@*****.**>
  * @since 25.10.2010
  */
 public function sendConfirmationMail($salutation, $firstName, $surName, $email)
 {
     SilvercartShopEmail::send('NewsletterOptInConfirmation', $email, array('Salutation' => $salutation, 'FirstName' => $firstName, 'Surname' => $surName, 'Email' => $email));
 }
 /**
  * executed if there are no valdation errors on submit
  * Form data is saved in session
  *
  * @param SS_HTTPRequest $data     contains the frameworks form data
  * @param Form           $form     not used
  * @param array          $formData contains the modules form data
  *
  * @return void
  *
  * @author Sebastian Diel <*****@*****.**>
  * @since 16.06.2014
  */
 protected function submitSuccess($data, $form, $formData)
 {
     $formData['RevocationOrderData'] = str_replace('\\r\\n', "\n", $formData['RevocationOrderData']);
     $config = SilvercartConfig::getConfig();
     $country = DataObject::get_by_id('SilvercartCountry', $formData['Country']);
     $variables = array('Email' => $formData['Email'], 'Salutation' => $formData['Salutation'], 'FirstName' => $formData['FirstName'], 'Surname' => $formData['Surname'], 'Street' => $formData['Street'], 'StreetNumber' => $formData['StreetNumber'], 'Addition' => $formData['Addition'], 'Postcode' => $formData['Postcode'], 'City' => $formData['City'], 'Country' => $country, 'OrderDate' => $formData['OrderDate'], 'OrderNumber' => $formData['OrderNumber'], 'RevocationOrderData' => str_replace('\\r\\n', '<br/>', nl2br($formData['RevocationOrderData'])), 'CurrentDate' => $this->getCurrentDate(), 'ShopName' => $config->ShopName, 'ShopStreet' => $config->ShopStreet, 'ShopStreetNumber' => $config->ShopStreetNumber, 'ShopPostcode' => $config->ShopPostcode, 'ShopCity' => $config->ShopCity, 'ShopCountry' => $config->ShopCountry());
     SilvercartShopEmail::send('RevocationNotification', SilvercartConfig::DefaultMailOrderNotificationRecipient(), $variables);
     SilvercartShopEmail::send('RevocationConfirmation', $formData['Email'], $variables);
     $revocationPage = SilvercartRevocationFormPage::get()->first();
     $this->Controller()->redirect($revocationPage->Link('success'));
 }
 /**
  * Sends an email with opt-in link to the given address.
  *
  * @param string $salutation       The salutation to use
  * @param string $firstName        The first name to use
  * @param string $surName          The last name to use
  * @param string $email            The email address to use
  * @param string $confirmationHash The hash value to use for identification
  * 
  * @return void
  *
  * @author Sascha Koehler <*****@*****.**>
  * @since 25.08.2011
  */
 public static function sendOptInEmailTo($salutation, $firstName, $surName, $email, $confirmationHash)
 {
     SilvercartShopEmail::send('NewsletterOptIn', $email, array('Salutation' => $salutation, 'FirstName' => $firstName, 'Surname' => $surName, 'Email' => $email, 'ConfirmationLink' => Director::absoluteURL(SilvercartPage_Controller::PageByIdentifierCode("SilvercartNewsletterOptInConfirmationPage")->Link()) . '?h=' . urlencode($confirmationHash)));
 }
 /**
  * Uses DataObject based, editable templates to send the email
  * 
  * @param integer $messageID ???
  * 
  * @return void
  *
  * @author Sebastian Diel <*****@*****.**>
  * @since 25.11.2015
  */
 public function send($messageID = null)
 {
     $variables = $this->template_data->toMap();
     $variables['PasswordResetLink'] = Director::absoluteURL($this->template_data->PasswordResetLink);
     /* @var $member Member */
     $member = singleton('Member');
     foreach ($member->db() as $dbFieldName => $dbFieldType) {
         if (!array_key_exists($dbFieldName, $variables)) {
             $variables[$dbFieldName] = $this->template_data->{$dbFieldName};
         }
     }
     $variables['SalutationText'] = SilvercartTools::getSalutationText($variables['Salutation']);
     SilvercartShopEmail::send('ForgotPasswordEmail', $this->To(), $variables);
 }